JVM
老白酒,用心酿
这个作者很懒,什么都没留下…
展开
-
JVM-垃圾收集算法
怎么判断一个对象是垃圾 判断算法 引用计数法 当别的对象引用该对象时,该对象内部计数器会加1,失效时计数器会减1,当计数器为0时,对象就会被回收 当栈中的obj引用堆中的obj1时,obj1内部计数器会加1, obj1引用obj2时,obj2内部计数器也会加1,而同时obj2引用obj1,obj1内部计数器将会再加1。 引用计数器的问题: 哪怕是栈里面的obj对堆里面obj1进行了释放,那么obj1的计数器还是不为零,如果两个对象相互依赖,导致内部的计数器用于不会0,导致永远不能被回收原创 2020-06-08 19:27:52 · 147 阅读 · 0 评论 -
JVM-堆
堆:java堆是所有线程所共享的一块内存,在虚拟机启动时创建,几乎所有的对象实例都在这里创建,因此该区域经常发生垃圾回收操作。 新生代: . eden区 . S区 s0区 s1区 老年代 jdk1.8为什么要把永久代干掉,取而代之的是元空间呢 1.永久代:空间大小是固定的 2.元空间:自动扩容,扩容堆外内存 新生代 对象创建发生在什么区? 一般情况都会创建在eden区,一些大对象分配到老年代 可以通过参数配置 -XX:PretenureSizeThreshold=6M ,例如超原创 2020-06-07 17:39:55 · 211 阅读 · 0 评论