1.对象的内存
Student student = new student();
过程:
1.加载class文件
2.声明局部变量
3.在堆内存中开辟一块空间(new关键字 开辟空间)
4.默认初始化(成员变量没有赋值就会默认是初始化的值)
5.显示初始化(赋值是多少 初始化就是多少)
6.构造方法初始化(无参构造方法)
7.将堆中的地址值赋值给左边的局部变量student
整个过程栈内存压栈出栈 最后一行代码执行完后 main方法出栈 堆中的空间没有引用 被标记为垃圾 由jvm的GC处理
2.关于为什么会存在基本数据类型和引用数据类型
两种数据类型的存储和运用场景不同 使得开发者编写代码更加灵活
基本类型的数据的值是属于他自己的 并且初始化大小是固定的 每个基本类型的大小有明确的范围
引用数据类型的值是存储在堆空间中的 引用的其他空间的地址值 大小是动态的 便于封装对象
3.this的内存原理
本质:指代的是方法调用者的地址值
谁调用这个方法 this就指代谁的地址值(引用)
作用:区分局部变量和成员变量
成员变量:类中方法外的变量
局部变量:方法中的变量