第二章 万事万物皆对象
{
String s = new String(“a string”);
}/*end of scope*/
s 这个reference在生存空间之外消失的无影无踪,但是s先前所指的那个String对象,仍然继续占用内存。
第三章 控制程序流程
当你对对象进行赋值时,你所操作的实际上是他们的refrence,如:C = D这个式子,实际上会将C 和D都指向D原先所指的对象。
Math.random() 会产生介于0到1之间的值(double)
第四章 初始化和清理
每个重载函数都有唯一的引数列。
在Java中可以赋予this一个引数列,从而我们能够在构造函数中直接调用其他构造函数(C++不能如此)。
第五章 隐藏实现细目
第六章 重复运用Classes
如果你未指定成员函数的访问权限,默认为friendly。
对base class 构造函数的调用必须是drivered class构造函数所做的第一件事。
向上转型(upcasting)
Final Data
1. 可以是永不改变的”编译期常量”;
2. 可以在执行期被初始化,但你却不想再改变它.
final 用于reference时,此reference不能指向其他对象,但此时对象的值还是可以改变的。
Final methods
1. 锁住这个函数,使drivered classes无法改变其意义。
2. 效率。
Final classes
第七章 多态
Method-call 是后期绑定。(C++是前期绑定)
在继承关系中,如果你有某些特殊的清理活动在垃圾回收时进行,你就得覆写finalize(),千万记得调用base class的 finalize(),如果不是这样,base class的终止动作就不会发生。
执行期型别辨识(RTTI)
第八章 接口与内隐类
Java的多重继承(实现多个接口)接口也可以继承多个接口
inteface 内的数据成员会自动成为static 和 final ,可被非常量表达式初始化。
静态内隐类可以写main用于测试该class之用。
第九章 持有你的对象
返回一个array(c/c++不行)
Arrays 提供重载版的equals()
List 会以安插次序安置元素,Set 不接受重复元素,使用自己内部的一个排列,Map不接受重复元素(以key判断),使用自己内部的一个排列。