-
内存区域的划分
方法区:保存加载的类信息
堆区:保存数组实体,对象实体
栈区:1.保存引用类型变量(保存了地址。比如对象的引用,数组名)
2.基本类型变量:直接保存值
2.Java类对象生命周期
(1)装载
读取class文件,在方法区保存该类的数据结构
(2)验证
检验代码是否规范,ex:是否有覆盖final修饰的方法
(3)准备
为类变量分配内存,设置默认值
(4)解析
对类的字段,方法等进行转换
(5)初始化
初始化类变量的值
(7)实例化(new了一个对象)
在堆中分配实体,保存对象实体
(8)垃圾收集
对象的实体没有被引用,不再使用时,回收
(9)卸载
整个类不再使用时,从方法区,堆中回收内存
3.为什么main方法必须修饰为static