不会吧!不会吧!还有人不知道JVM的内存管理吧??

不会吧!不会吧!还有人不知道JVM的内存管理吧??

1.JVM( Java虚拟机)主要包括三块内存空间,分别是:
栈内存;
堆内存;
方法区内存

2.堆内存和方法区内存各有1个,一个线程一个栈内存

3.方法调用的时候,该方法所需要的内存空间在栈内存中分配,称为压视。方法执行结束之后,该方法所属的内存空间释放,称为弹栈。

4.栈中主要存储的是方法体当中的局部变量

5.方法的代码片段以及整个类的代码片段都板存储到方法区内存当中,在启动类加载器的时候这些代码片段会赋入。

6.在程序执行过程中使用new运算符创建的java对象 。存储在堆内存当中。对象内部有实例变量。所以实例交量存储在堆内存当中。

7.变量分类:.
—局部变量[方法体中声明]
—成员变量[方法体外声明]

  • 实例变量[前边修饰符没有static]
  • 静志变量[前边修饰符中有static]

8.静志变量存储在方法区内存当中。

9.三块内存当中变化最须解的是找内存.最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。

10.垃圾回收器[自动垃圾回收机制GC机制] 什么时候会考虑将某个java对象的内存回收呢?
—当堆内存当中的java对象成为垃圾数据的时候。会破垃圾回收器回收。

  • 什么时候堆内存中的jeva对象会变成垃圾呢?
    —没有更多的引用指向它的时候。
    —这个对象无法被访问。因为访问对象只能遇时引用的方式访问。