java编程思想读书笔记(1)

来源:互联网 发布:java工程师职业发展 编辑:程序博客网 时间:2024/05/29 07:57
  • java为所有没有构造方法的类提供了一个默认的无参构造方法,让大家去创建这个对象。但是当类中定义的构造方法,就不能使用默认构造方法去创建对象。

  • 在构造方法中,可用this关键字去调用其他构造方法,但是只能调用一次。无法在其他方法的内部使用this调用构造方法。

  • finalize()方法会在对象被回收时调用,垃圾回收器什么时间去回收一个对象是不确定的。

  • 所有的类最终都继承自单一的基类-Object类,这就是单根继承结构,那么所有的接口是不是都继承自单一的基接口呢??

  • BigInteger支持任何经度的整数。也就是说,在运算中,可以准确地表示任何大小的整数值而不会丢失任何信息。BigDecimal支持任何精度的定点数。

  • 当创建一个数组对象时,实际上就是创建一个引用数组,并且每个引用都会自动被初始化为一个特定值,该值拥有自己的关键字null。一旦java看到null,就知道这个引用还没有指向某个对象。在使用任何引用前,必须为其指定一个对象;如果试图使用一个还是null的引用,在运行时将会报错。因此,常犯的数组错误在java中就可以避免。

  • 若某个类的数据成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值。注:当变量作为类的成员使用时,java才确保给定其默认值。然而上述确保初始化的方法并不适用“局部”变量(即并非某个类的字段),如果是这种情况,变量没初始化,java会报错。在类里定义一个对象引用(类的数据成员)时,如果不将其初始化,此引用就会获得一个特殊值null。通过此对象引用调用对象方法就会出现运行时错误。

  • java消除了所谓的“向前引用”问题,但是是方法和类消除了,以下是非法的

  • 在java对象中,执行new来创建对象时,数据存储空间才被分配,其方法才供外界调用。

  • 基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方。例如,对基本数据类型使用a=b,那么b的内容就复制给a。若接着又修改了a,而b根本不会受这种修改的影响。
    但是在对象“赋值”的时候,情况却发生了变化。对一个对象进行操作时,我们真正操作的是对对象的引用。所以倘若“将一个对象赋值给另一个对象”,实际是将“引用”从一个地方复制到另一个地方。这意味着假若对对象使用c=d,那么c和d都指向原本只有d指向的那个对象。

  • 能够对布尔型值进行的运算非常有限。我们只能赋予它true和false值,并测试它为真还是为假,而不能将布尔值相加,或对布尔值进行其它任何运算。
    除boolean以外,任何一种基本类型都可通过类型转换变为其它基本类型。



原创粉丝点击