第四章

1.构造方法:与类名相同的类方法,为类的数据成员指定初始值。
抽象:指将一类事物的共同特点用属性概括出来

2.对象可能位于堆内存中,也可能位于方法栈内存中。
声明能引用对象的实质是将对象的引用指向用new生成的新对象的空间

3.对象作为参数传递时,传递的是对象的地址,基本数据类型作为参数传递时,传递的是值

4.将没有任何引用的垃圾对象回收时finalize会被调用。

5.对象在没有任何引用的条件下成为垃圾,虚拟机在系统资源不足时会释放垃圾对象,当系统对一个对象使用finalize方法时,证明该对象被释放。

6.final修饰变量时,该变量成为常量;修饰方法时,方法成为最终方法,在子类中不能被覆盖。

7.static修饰的属性成为类的静态数据成员,该类的任何对象都能访问它,且获取的是相同的值;它修饰的方法成为类的静态方法,可以被类的所有对象访问,但该方法只能访问该类的static属性和方法。

8.Application程序执行时,输入文件名后,Java虚拟机会自动在文件名后加上.java的后缀,例如,执行HelloJava文件时,虚拟机会自动寻找后缀为.java的名为HelloJava的文件,若输入的文件名为HelloJava.java,则虚拟机会寻找后缀为.java的名为HelloJava.java的文件,而这个文件并不存在,系统会报错。

第五章
1.封装、继承、多态

2.封装是通过public(接口访问权限)、protected(包访问 权限、继承访问权限)、“默认”(包访问权限)、private(无法直接访问)三个访问控制来实现的。

3.对象之间通过访问其他对象的方法实现相互作用,作用的条件是对象相互间拥有访问权限

4.protected修饰的方法和属性,能够被该类的子类访问,同时也能被与该类同在一个包内的其他类访问。

5.Object是所有类的共同祖先,常用方法如下:
protected Object clone() 创建并返回此对象的一个副本。
boolean equals(Object obj) 指示某个其他对象是否与此对象“相等”。
protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
Class<?extendsObject> getClass() 返回一个对象的运行时类。
int hashCode() 返回该对象的哈希码值。
void notify() 唤醒在此对象监视器上等待的单个线程。
void notifyAll() 唤醒在此对象监视器上等待的所有线程。
String toString() 返回该对象的字符串表示。
void wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。
void wait(long timeout) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。
void wait(long timeout, int nanos) 导致当前的线程等待,直到其他线程调用此对象的 notify()

6.重载的方法之间一般是父类中的方法和子类中的方法关系

7.子类覆盖父类方法时需要与父类方法名称、参数、返回类型都相同,子类中定义与父类同名的方法不一定是覆盖,还有可能是重载

8.封装对外屏蔽内部细节,增加安全性,继承能减少代码的冗余及程序员的工作量,多态则能够为继承关系增添更多的灵活性。