关闭

JVM学习笔记(三)JAVA中四种引用浅析

标签: JVM引用强引用
261人阅读 评论(0) 收藏 举报
分类:

       JAVA中的引用分成4种,分别是强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)。这四种引用强度依次逐渐减弱。

  强引用:类似Object obj = new Object()这类的引用,只要强引用还存在,垃圾收集器永远不会回收。如果内存空间不够了,JVM会抛出OutOfMemoryError异常,也不会轻易回收这类引用对象。

      软引用:一些还有用但并非必须的对象。对于软引用关联着的对象,在系统将要发生内存溢出之前,将会把这些对象列进回收范围之中进行第二次回收。如果这次回收还没有足够的内存,才会抛出内存溢出异常。

     弱引用:用来描述非必须对象的,强度比软引用更弱一些。被弱引用关联的对象只能生存到下一次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会被回收掉。

     虚引用:最弱的一种引用关系,一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用的唯一目的,就是该对象被收集器回收时,能收到一个系统通知。

0
0
查看评论

4种Java引用浅解

最近研究Java Cache实现,发现使用到了软引用(SoftReference),不太理解,查阅了JDK文档、代码以及几篇文章。做个小结,如有错误,欢迎指正。 之所以想学习一下Java的几种引用类型,原因有两个: 理解Java Cache实现、学习Java引用与Java垃圾回收机制的关系 内存资...
  • kimylrong
  • kimylrong
  • 2014-04-28 12:56
  • 13008

Java四种引用类型

Java从1.2版本开始引入了4种引用,这四种引用的级别由高到低依次为:强引用>软引用>弱引用>虚引用。 一、强引用(StrongReference):         强引用是使用最普遍的引用,一般我们将对象初始化之后就是一个强引用。当...
  • qq924862077
  • qq924862077
  • 2015-08-26 00:12
  • 1041

深入JVM之Java引用类型

深入JVM之Java引用类型引用类型可以说是整个Java开发的灵魂所在,如果没有合理的引用操作,那么就有可能产生垃圾问题,但是对于引用也需要有一些合理化的设计。在很多的时候并不是所有的对象都需要被我们一直使用,那么就需要对引用的问题做进一步的思考。从JDK1.2之后关于引用提出了四种方案: ●强引...
  • qq_34280276
  • qq_34280276
  • 2016-10-19 21:36
  • 525

java的四种引用,强弱软虚,用到的场景

1、强引用(StrongReference)           强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: ?       &#...
  • heminghung
  • heminghung
  • 2016-05-11 22:59
  • 5505

Java的四种引用,强弱软虚,用到的场景

http://droidyue.com/blog/2014/10/12/understanding-weakreference-in-java/ java中的4种reference的差别和使用场景(含理论.代码和执行结果) 我们知道java语言提供了4种引用类型:强引用、...
  • u011860731
  • u011860731
  • 2015-09-24 17:51
  • 12038

Java对象与JVM(三) Java对象在Java虚拟机中的引用访问方式

在前面两篇文章中了解到Java对象实例是如何在HotSpot虚拟机的Java堆中创建的,以及创建后的内存布局是怎样的。下面详细了解在Java堆中的Java对象是如何访问定位的:先来了解reference类型数据是什么,再来了解两种访问方式:使用句柄或者使用直接指针(HotSpot虚拟机使用直接指针)...
  • tjiyu
  • tjiyu
  • 2016-12-29 21:14
  • 2372

Java中的四种引用类型 Strong, Soft, Weak And Phantom

前言总所周知, java不同于c/c++,它不需要程序员自已来管理内存(分配,释放内存),java 会自己来管理内存,比如销毁某些不再被使用的对象。这些操作都是在一个后台线程默默进行(Garbage Collector Thread),也就是垃圾收集器线程,根据jvm实现的策略来释放对象内存。但是程...
  • rodbate
  • rodbate
  • 2017-06-04 14:18
  • 714

深入JVM对象引用

在jdk 1.2以前,创建的对象只有处在可触及(reachaable)状态下,才能被程序所以使用,垃圾回收器一旦发现无用对象,便会对其进行回收。但是,在某些情况下,我们希望有些对象不需要立刻回收或者说从全局的角度来说并没有立刻回收的必要性。
  • dd864140130
  • dd864140130
  • 2015-11-17 12:19
  • 3022

java 强弱软虚 四种引用,以及用到的场景。

在JDK1.2后,java对引用的概念进行了扩充。按照引用强度依次从强到弱分为:强引用、软引用(SoftReference)、弱引用(WeakReference)、虚引用(PhantomReference)用四种。 强引用:最常见的,不会被GC回收的对象,如 Object obj = new Ob...
  • qi183472492
  • qi183472492
  • 2016-12-15 12:57
  • 1095

JAVA四种引用方式-上篇

转载自:https://www.2cto.com/kf/201403/285767.html 1.引用的基本概念 1.1、强引用 当我们使用new 这个关键字创建对象时被创建的对象就是强引用,如Object object = new Object() 这个Object()就是一个强引用了,如果一个对...
  • VIP_WangSai
  • VIP_WangSai
  • 2017-10-24 10:24
  • 125
    个人资料
    • 访问:19839次
    • 积分:548
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:2篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论