美文网首页技术栈
2019-03-03——Java引用包 引用类型

2019-03-03——Java引用包 引用类型

作者: 烟雨乱平生 | 来源:发表于2019-03-03 23:33 被阅读0次

Java的java.lang.ref包下面有7个类,这7个类与Java的垃圾回收有关系。这7个类可以分为三部分。

Java的引用类型

第一部分可以归结为Java的引用类型。Java的引用分为四种,分别是:强引用,软引用,弱引用和虚引用。

  • 强引用:只要某个对象有强引用与之关联,JVM必定不会回收这个对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误也不会回收
    这种对象。
String s = "wang";
  • 软引用:软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示。对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。
SoftReference<String> s = new SoftReference<>("wang");
  • 弱引用: 弱引用也是用来描述非必需对象的,当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。在java中,用java.lang.ref.WeakReference类来表示。
WeakReference<String> s = new WeakReference<>("wang");
  • 虚引用:虚引用和前面的软引用、弱引用不同,它并不影响对象的生命周期。在java中用java.lang.ref.PhantomReference类表示。如果一个对象与虚引用关联,则跟没有引用与之关联一样,在任何时候都可能被垃圾回收器回收。
PhantomReference<String> s = new PhantomReference<>("wang",new ReferenceQueue<>());

https://www.cnblogs.com/dolphin0520/p/3784171.html

相关文章

网友评论

    本文标题:2019-03-03——Java引用包 引用类型

    本文链接:https://www.haomeiwen.com/subject/fmkvuqtx.html