JAVA面試題(39)

    本文首發於cartoon的博客
    轉載請註明出處:cartoonyu.github.io/cartoon-blo…java

  • 怎麼判斷對象是否能夠被回收
    • 根搜索法
      • 判斷是否有finalize方法或是否進行過finalize
        • 知足上面判斷條件直接回收
        • 若不知足則進行篩選
      • 執行對象的finalize方法,判斷對象是否和GC Roots是否有直接或間接關聯
    • 引用計數法
      • 每次引用計數加1
      • 回收時查看計數是否爲0
  • Java 中都有哪些引用類型
    • 強引用
      • 內存空間不足也不會回收
    • 軟引用
      • 內存空間不足會回收該引用
    • 弱引用
      • 在垃圾回收期掃描時,無論內存是否不足都會回收引用
    • 虛引用
      • 在任什麼時候候均可能被回收
  • 說一下 JVM 有哪些垃圾回收算法
    • 標記-清除
      • 標記可回收對象進行清理
    • 標記整理
      • 標記可回收對象
      • 將存活對象整理到連續內存空間,清除邊界外內存
    • 複製算法
      • 將不可回收對象複製到另外一內存空間中
      • 清理原有內存空間
    • 分代收集算法
      • 根據對象存活週期不一樣劃份內存塊
      • 垃圾回收機制根據代數不一樣回收對象
  • 說一下 JVM 有哪些垃圾回收器
    • serial
    • parnew
    • parallel Scavenge
    • serial old
    • parallel old
    • cms
    • G1
    • 因爲是初步接觸JVM,因此不是很瞭解JVM垃圾回收器的工做原理
相關文章
相關標籤/搜索