创建对象的内存分析
创建对象的内存分析
创建一个类
package oop.demo02;
public class Demo01 {
String name;
int age;
public void shout(){
System.out.println("叫了一声");
}
}
创建一个主方法类
package oop.demo02;
public class Application {
public static void main(String[] args) {
Demo01 Demo01 = new Demo01();
Demo01.name = "小狗";
Demo01.age = 3;
}
}
创建对象的内存流程分析如下:
在主方法Application中new一个Demo01,由main方法调用Demo01的类,Demo01中的变量生成一个Demo01的引用类型,引用类型类似一把钥匙,没有储存任何东西,真正的对象,是用Demo01引用类型去"堆"中生成,然后Application中的值(name = "小狗;age = 3;)"赋值给这个Demo01对象。此时,这个对象中的值才会从初始值变为Application中的值。
当再在Application中new一个Demo01,栈中又会再次生成一个引用类型,然后再次在堆中加载出一个对象,由Application中对这个对象赋的值传输给这个对象。
静态方法: