美文网首页我爱编程程序员
潭州学院百战程序员之java对象的几种引用方式

潭州学院百战程序员之java对象的几种引用方式

作者: 启示录是真的 | 来源:发表于2018-05-28 10:27 被阅读25次

在看java的ThreadLocal的源码实现时,涉及到了弱引用,对于这种引用方式,并不太常用到,翻看各种博客文档,将java的各种引用总结如下:

1.强引用

User user = new User();

· 1

在我们日常编码中,使用最广的引用方式。

只要强引用还存在,对象就不会被垃圾回收器回收。

可以通过将引用置空的方式,让JVM回收该对象。

2.软引用

SoftReference ref = new SoftReference(new User();

· 1

有用但是并非必须的对象可以使用弱引用。

对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。

因此,这一点可以很好地用来解决OOM的问题。

3.弱引用

WeakReference ref = new WeakReference(new User();

· 1

只具有弱引用的生命周期较软引用更加短暂。

垃圾回收器线程扫描发现了只具有弱引用的对象,不管当前内存空间是否足够,都会回收它的内存。

因此,弱引用更适合想缓存数据,又不想影响对象收集的地方。ThreadLocal中的ThreadLocalMap采用的即是弱引用作为Key。

4.虚引用(幻影引用)

PhantomReference ref = new PhantomReference(new User(), referenceQueue);

· 1

顾名思义,该应用并不能获取到任何对象,也不会影响对象生命周期。

虚引用必须和引用队列联合使用,虚引用主要用来跟踪对象被垃圾回收的活动。

相关文章

  • 潭州学院百战程序员之java对象的几种引用方式

    在看java的ThreadLocal的源码实现时,涉及到了弱引用,对于这种引用方式,并不太常用到,翻看各种博客文档...

  • 第八周 Java基础知识学习(引用,单例)

    话题:Java基础知识学习 1、Java中有哪几种引用?它们的含义和区别是什么? 强引用 只要某个对象有强引用与之...

  • Java四种引用方式

    Java引用方式包括: 强引用、软引用、虚引用、弱引用 java的对象位于heap中,heap中的对象有强可及对象...

  • Java对象创建与内存分布

    本文主要讲述Java对象在虚拟机中创建,分配内存,初始化的过程,以及分配内存,引用对象的几种常见方式。 对象创建 ...

  • JVM的垃圾收集器策略

    说明:本篇属于读书笔记,大量参考《深入理解Java虚拟机》 判断对象不可用的几种方式 引用计数量法 通过计算对象被...

  • Java拾遗:005 - Java的四种引用类型

    简介 Java中为了让程序员可以自己控制对象生命周期,提供了四种引用方式,都继承自java.lang.ref.Re...

  • 【JAVA基础】函数知识

    1.函数参数传递方式 虽然java通过引用操作对象,所有的对象变量都是引用,然而,java不能通过引用传递方法参数...

  • 16、Java创建对象有几种方式?

    Java创建对象有几种方式? java中提供了以下四种创建对象的方式: 1、new创建新对象; 2、通过反射机制;...

  • Weather-java引用

    强引用、软引用、弱引用、虚引用的概念 在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象...

  • Java对象的引用方式

    系统对对象的引用方式 1. 强引用(StrongReference) 这是java最常见的引用方式。 程序创建一个...

网友评论

    本文标题:潭州学院百战程序员之java对象的几种引用方式

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