要点一
- 我们关心栈(stack)与堆(heap)这两种内存空间
- 实例变量是声明在类中方法之外的地方
- 局部变量声明在方法或方法的参数上
- 所有局部变量都存在与栈上相对应的堆栈块中
- 对象引用变量与primitive主数据类型变量都放在栈上
- 不管是实例变量或局部变量,对象本身都会在堆上
要点二
- 实例变量保存在所属的对象中,位于堆上
- 如果实例变量是个对对象的引用,则引用与对象都是在堆上
- 构造函数是个会在新建对象的时候执行程序代码
- 构造函数必须与类同名且没有返回类型
- 你可以用构造函数来初始被创建对象的状态
- 如果你没有写构造函数,编译器会帮你安排一个
- 默认的构造函数是没有参数的
- 如果你写了构造函数,则编译器就不会调用
- 最好能有无参数的构造函数让人可以选择使用默认值
- 重载的构造函数必须有不同的参数
- 两个构造函数的参数必须不同
- 实例变量有默认值,原始的默认值是0/0.0/false,引用的默认值是null