JVM结构

2020-02-20  本文已影响0人  caichenor

垃圾回收(GC)

  1. 引用计数算法(引用如果互相持有,那么不会被回收)
  2. 可达性算法(通过图路径算法,通过GCRoot开始搜索引用,不可达节点则被回收)
  3. 标记清除算法(坏处容易造成内存碎片,好处对象比较多的时候,很容易处理,是不用移动对象)
  4. 复制算法(可达的引用进行复制到新内存空间,坏处是浪费一块空间进行交换)
  5. 标记整理算法(消除内存碎片问题)

引用的类型

强引用,软引用,弱引用,虚引用

弱引用的创建

  1. Object obj = new Object();
    WeakReference<Object> wf= new Weakreference(obj);
    obj = null;
    wf.get();

触发回收

  1. Java虚拟机无法再为新的对象分配新的内存空间
  2. System.gc() (十分不推荐,java虚拟机不会立马执行,加大虚拟机压力)
  3. 低优先级的GC线程被运行就会触发
上一篇下一篇

猜你喜欢

热点阅读