1. 成员与初始化
- 对象是一些数据与行为的集合。
- 一切对象都是new运算符创建的:
- new Object()
- 特例:自动装箱 new Integer() / new String()
- 特例:字面量 new Object[]
- 对象都在堆上分配
2. 方法重载Overload
- 重载(overload)与重写/覆盖(override)的区别
- 重载的顺序:按参数的匹配的顺序
3. 对象的初始化顺序
public class Cat {
private static String name;
{
f();
}
public Cat(String name) {
this.name = name;
}
public static void f() {
System.out.printf("f");
}
public static void main(String[] args) {
Cat cat = new Cat("meow");
}
}
4. 对象生命周期
- 对象的内存如何被回收
- JVM怎么知道哪个对象没有被用到
- 通过引用链(GC Roots)
- 沿着GC Root向下,可达的数据都是活对象(强引用)
- 不可达的数据回不回收取决于JVM