读书笔记——thinking in java

时间:2023-04-22 09:40:14

1、一切都是对象,用引用操作对象

  1.1程序存储的地方

    引用存放在堆栈区(通用的RAM),所有对象存储在堆(一种通用的内存池)。堆和堆栈的区别:堆栈中的这些引用,java系统是要知道确切的生命周期,堆里面的对象数据java系统就不需要知道。堆里面的数据的分配和清理可能会更耗费时间。

  1.2高精度数字

    java中提供了BigInteger和BigDecimal。方法调用的方式来取代运算符的方式。所以速度会慢了许多。

2、复用类

  2.1组合——has-a

  2.2继承——is-a

  2.3代理

  2.4名称屏蔽

    父类中有一个被重载多次的函数,在导出类中又被重载了,此时,导出类中支持所有的重载函数,这与C++不一样。C++自动屏蔽基类的方法。

3、final关键字

  static final 代表编译期常量

  3.1final基本类型——值不变

  3.2final对象引用——引用不变,对象可修改

  3.3final方法——      不能被覆盖

    两个作用:①把方法锁定,以防止任何继承类修改他的含义。想要确保在继承中方法行为保持不变且不会被覆盖②效率,因为可以讲final方法转内嵌调用,内嵌的话就应该适合代码量小的函数。

  类中的所有private方法都隐式的指定为final。由于无法继承private方法,所以也就无法覆盖它。

  3.4final类——         不能被继承(所以final类的方法全被隐式指定为final方法),出于某种考虑,对该类的设计永远不需要做任何改动。

4、多态(动态绑定或者运行时期绑定)

  4.1多态的作用

  4.2java中除了static、final方法(private属于final方法)其余都是运行期绑定。

  4.3返回值不一样在java高德版本中并不影响多态的实现。