一.堆与栈内的存放
不管是类的对象还是类中方法的引用对象,都是存放在堆上的;(方法中的引用变量出栈释放,但是对象还在堆上)
局部变量存放在方法中,而方法是存放在栈上的,也就是说局部变量会随着方法的释放而释放;
对象只有在被创建时才会存放在堆上,标识符 是 new。
二.构造器的实现
构造器的实现是通过构造方法实现的。
构造方法注意点:
当类中没有写构造方法,编译器会自动生成一个构造方法,但是当你写了一个或多个构造方法,编译器不会自动生成无参的构造方法。
三.子类与父类构造函数的关系
在创建子类的对象时,以栈的方式运行继承关系的构造函数 :
book() paper() Object()
-> book() -> paper() ,然后再一步步退下来....
book()
注意:对super()的调用必须是构造函数的第一个语句。
对本身构造器的调用用this(),this()只能用在构造函数中(this...可以用在其他地方);
但是2个不能同时使用,this()中也有super(),那不是2个初始化父类了,会冲突。