long blogs

进一步有进一步惊喜


  • Home
  • Archive
  • Tags
  •  

© 2025 long

Theme Typography by Makito

Proudly published with Hexo

jvm相关

Posted at 2019-09-11 笔记 java 

堆的分代

  • 新生代(Young Generation)
    使用newSize和MaxNewSize来控制新生代的初始大小和最大大小
  • 老年代(Old Generation)
  • 永生代(Permanent Generation) 1.8之后使用元空间,不在堆中了.

对象是否被引用判断(能不能被回收)

  • 引用计数法
    核心思想:当对象被引用的时候就加1,引用失效的时候就减1。当值为0时就可以回收了。
    优点:简单高效
    缺点:如果两个对象循环依赖,各自的引用数都不为0.但是应该是被回收的才对。
  • 可达性分析算法
    从GC Roots为起始点。当从根节点开始遍历依赖树,无法到达某个对象的时候。则该对象是可以被回收了。

回收算法(怎么回收)

  • 标记/清除算法
    给GC ROOTS 依赖树上的节点打上标记。发身份标识。然后去找没有身份标识的对象进行回收。
  • 复制算法
    将内存分成两个块,每次只使用其中的一块。当这块内存用完的时候。将GC ROOTS树拎到另一块内存(复制)。然后将掉落的叶子给清掉。
  • 标记/整理算法
    将还在树上的叶子整理得紧凑起来。然后就腾出空间了。

Share 

 Previous post: element使用javascript触发表单校验 Next post: java基础 

© 2025 long

Theme Typography by Makito

Proudly published with Hexo