1.全部的对象都存在于可垃圾回收的堆上。方法调用和局部变量存在于栈中。 函数
2.全部局部变量都存在于栈上相对应的堆栈块中。。实例变量保存在所属的对象中,位于堆上,若是实例变量是个对对象的引用,则引用与对象都是在堆上。 this
3.对象引用变量与primitive主数据类型变量都放在栈上。(2.3两条有点疑问,不大明白) 对象
4.无论是实例变量仍是局部变量,对象自己都会在堆上。 it
5.构造函数的一项关键特征是它会在对象可以被赋值以前给引用以前就调用。也就让你有机会介入new的过程。即构造函数会在新建对象的时候执行程序代码。能够用构造函数初始建立对象的特征。 变量
6.构造函数能够是共有、私有或不指定的,私有不是彻底不能存取,它表明该类以外不能存取。 垃圾回收
7.调用父类构造函数的惟一方法是调用super(); 构造函数
8.使用this()来从某个构造函数调用同一个类的另一个构造函数。this()只能在构造函数中,且必须是第一行语句。super()和this()不能兼得。 数据类型
9.局部变量只会存活在声明该变量的方法中。实例变量的寿命与对象相同。若是对象还活着,则实例变量也会是活着的。引用变量在下列三种状况下会被回收: 引用
<1>引用永久性的离开它的范围 程序
void go(){
Life a=new Life();
}
//a会在方法结束时消失
<2>引用被赋值到别处时挂掉
Life a=new Life();
a=new Life();
<3>直接将引用赋值为null.
Life a=new Life();
a=null;