zoukankan      html  css  js  c++  java
  • 一切都是对象

        Java既支持面向过程编程,又支持面向对象编程,但Java假定你只进行面向对象编程。在Java中几乎一切都是对象,这些对象通过引用进行操纵。最佳实践是创建引用的时候就进行初始化,即创建一个对象并将其绑定到引用上。

        数据存储位置:

        (1)寄存器:寄存器位于CPU内部,是速度最快的存储,但数量极其有限,它对于Java而言是透明的。

        (2)栈:位于RAM中,但通过栈指针(stack pointer)可从CPU直接获得支持。栈指针下移创建内存,上移释放空间。速度仅次于寄存器,但在编译期就需要知道栈里所有元素的确切生命周期,对象引用位于栈内。

        (3)堆:也位于RAM中,不需要在编译期就知道存储的生命周期,但分配和释放存储空间需要更长时间(Java的分配策略已经非常快,所以一般不需要担心)。

        (4)常量存储:所有字符串常量和字符串常量表达式都位于常量存储中。

        (5)非RAM存储:可以脱离程序控制,主要有两种,一种是serialized objects(streamed objects),用于发送到另一台机器上;第二种是persisted objects,用于将对象存放在磁盘上。Java提供了轻量级的持久化,JDBC和Hibernate提供了更复杂的支持用于将对象信息存放在数据库中,以及从数据库中重新获取对象信息。

        对于原始数据类型,Java并不创建对象,而是变量直接存储值,因为创建许多小对象会导致非常低效。Java基本数据类型大小:

        

        boolean类型没有指定大小,可以持有true和false两个值即可。

        BigInteger和BigDecimal提供任意精度的整数和浮点数运算,代价是速度会更慢一些。

        Java保证会初始化数组,创建对象数组时,实际上创建的是对象引用数组,引用会被初始化为null,原始数据类型的数组元素会被初始化为0或false,char被初始化为'u0000'(null)(打印出来是一个空格)。

        Java数组会使用额外的空间保存数组的大小,并在运行时检查每次数组访问是否超出范围。

        程序员需要创建所有对象,但不需要销毁任何对象。作用域决定了在其内定义的变量名的可见性和生命周期,作用域由花括号决定。Java对象与基本类型生命周期不同,基本类型出作用域即失效,对象出作用域后仍然存在。

        Java中有两种注释:第一种多行注释以/*开头,以*/结束;第二种单行注释以//开头。单行注释更易于使用,因为两次输入的按键相同,另外IDE快捷键更易于操作。

        field(data member)、method(member function)。

        Java使用域名反转对包进行命名,并将包名对应到路径上,缺点是导致路径很深,许多顶层目录几乎是空的,目的仅仅是反应URL。

        使用import最好将所有的类都明确指出,IDE可以设置某个包引用超过多少个类后自动改为impot *。

        静态域只有1份,非静态域每个对象都有相应的存储。但无论静态还是非静态方法都只存储1份,区别在于是否能够不创建对象即可调用。

        Sytem.getProperties.list(System.out);

        System.getProperty("user.name");

  • 相关阅读:
    蓝桥杯 十六进制转八进制
    蓝桥杯 字母图形
    2017.12.13T19_B2_5mianshiti
    2017.11.21T19_B2_6.2讲义
    2017.12.13T19_B2_6zuoye
    2017.12.1T19_B2_5zuoye
    2017.12.1T19_B2_4zuoye
    2017.12.1T19_B2_4——2
    2017.12.1T19_B2_4.3kehouzuoye
    2017.12.1T19_B2_4.2
  • 原文地址:https://www.cnblogs.com/cbkun/p/11055151.html
Copyright © 2011-2022 走看看