乐趣区

JAVA面试题39

    本文首发于 cartoon 的博客
     转载请注明出处:https://cartoonyu.github.io/c…

  • 怎么判断对象是否可以被回收

    • 根搜索法

      • 判断是否有 finalize 方法或是否进行过 finalize

        • 满足上面判断条件直接回收
        • 若不满足则进行筛选
      • 执行对象的 finalize 方法,判断对象是否和 GC Roots 是否有直接或间接关联
    • 引用计数法

      • 每次引用计数加 1
      • 回收时查看计数是否为 0
  • Java 中都有哪些引用类型

    • 强引用

      • 内存空间不足也不会回收
    • 软引用

      • 内存空间不足会回收该引用
    • 弱引用

      • 在垃圾回收期扫描时,不管内存是否不足都会回收引用
    • 虚引用

      • 在任何时候都可能被回收
  • 说一下 JVM 有哪些垃圾回收算法

    • 标记 - 清除

      • 标记可回收对象进行清理
    • 标记整理

      • 标记可回收对象
      • 将存活对象整理到连续内存空间,清除边界外内存
    • 复制算法

      • 将不可回收对象复制到另一内存空间中
      • 清理原有内存空间
    • 分代收集算法

      • 根据对象存活周期不同划分内存块
      • 垃圾回收机制根据代数不同回收对象
  • 说一下 JVM 有哪些垃圾回收器

    • serial
    • parnew
    • parallel Scavenge
    • serial old
    • parallel old
    • cms
    • G1
    • 由于是初步接触 JVM,所以不是很了解 JVM 垃圾回收器的工作原理
退出移动版