内存分析总结:
JVM(java虚拟机)主要包括三块内存空间分别是:栈内存,堆内存,方法区内存 堆内存和方法区内存各有一个,一个线程一个栈内存
方法调用的时候,该方法需要的内存空间在栈内存中分配,称为压栈,方法执行结束之后,该方法所属的内存空间释放,称为弹栈
栈内存中主要存储的是方法体中的局部变量 方法中的代码片段以及整个类的代码片段都被存储到方法区内存中,在类加载的时候这些代码片段会载入
在程序执行过程中使用new运算符创建的java对象存储在堆内存中,对象内部有实例变量,所以实例变量存储在堆内存中
变量分类: 局部变量(方法体中声明) 成员变量(方法体外声明) 实例变量(前面修饰符没有static) 静态变量(前面修饰符中有static)
静态变量存储在方法区内存中 三块内存中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对堆内存
垃圾回收器(自动垃圾回收机制GC机制)什么时候回收? 当堆内存中的java对象成为垃圾数据的时候。
什么时候堆内存中的java对象会变成垃圾? 没有更多引用指向的时候 这个对象无法被访问,因为访问对象只能通过引用的方式访问