初步学习
面向对象
JDK8以前,堆内存和方法区相连,创建的字节码文件会储存在方法区中,而JDK8以后,则分为堆内存与元空间
不过由于此处只涉及基本的对象内存问题,所以用方法区来记录
一个对象的内存图
创建一个对象一般会执行以下步骤:
1.加载class文件
2.申明局部变量
3.在堆内存中开辟一个空间
4.默认初始化
5.显示初始化
6.构造方法初始化
7.将堆内存当中的地址值赋值给对象
详细步骤
加载class方法:即将class方法及其对应的方法与变量加载到方法区中
申明局部变量:指将所创建的对象中的局部变量创建在方法区中所对应的class文件中
在堆内存中开辟一个空间:在堆内存中开辟一个空间,储存新建对象
默认初始化:给堆内存中的所对应的对象中的变量赋默认值(如String类型的“null”)
显示初始化:给堆内存中的所对应的对象中的变量赋在class文件中定义的值
构造方法初始化:即将新建对象的构造方法的值赋给方法区中所对应的变量
最后再将堆内存中的地址值赋给所对应的新建对象
运行
而之后得到运行自然就和数组有些许相似
体现在运用变量都是根据对象的地址值找到相应的变量
而调用方法则是先根据对象的地址值找到堆内存中储存的成员变量的方法,再去方法区中找到对应的方法