方法,内部类是如何分配内存的:
类在加载时,会把类的信息加载到方法区。new一个对象时,将分配内存空间来存放属性,当调用方法时,会根据方法区的类信息来进行操作,(栈帧)局部变量存放在栈。 当用创建内部类对象时,根据类信息创建内部类对象,在堆分配空间。
创建一个子类对象时,内存怎么分配:
- 创建子类对象时,会用构造器中的super()来加载父类信息,然后在加载自己的类信息,所以一个类的子类对象是有所有父类的属性和方法的(私有权限的也有,只是对于子类来说不可见而已),但是只创建了一个子类对象,子类可以重写父类的方法,写自己的属性和方法。如果想调用父类的被重写的方法可以用super来调用,调用自己的属性和方法则可以用this调用
- this:当前对象或当前正在创建的对象;super:父类的