Java基础之引用类型

2016-07-20  本文已影响24人  M_JCs

一、概念

在Java语言中,由JVM进行内存的管理,JVM通过一定的内存回收机制来管理内存,对系统不再使用但JVM又无法回收的内存我们称为内存泄漏(Memory Leak)内存泄漏导致的结果就是内存溢出(Out Of Memory)。而造成内存泄漏的原因之一就是在应用中不再使用的对象在其他地方被引用,从而使JVM认为该内存不能被回收,进而造成应用使用的内存达到系统分配的最大值而造成内存溢出。基于此,我们有必要了解一下Java语言中的引用类型。

二、分类

Java语言的引用类型分为四种,从JVM回收的优先级从低到高依次为:强引用、软引用、弱引用和虚引用。这四种引用均定义在java.lang.ref包下。

1.强引用(Final Reference)

强引用在我们的程序代码中普遍存在,形如Object obj = new Object();引用obj便属于此类的引用。强引用具备以下三个特点:

2.软引用(Soft Reference)

软引用用来描述一些还有用但并非必须的对象,软引用具有如下特点:

3.弱引用(Weak Reference)

弱引用用来描述非必须的对象,强度比软引用更弱一些,弱引用具有如下特点:

4.虚引用(Phantom Reference)

虚引用也称为幽灵引用或者幻影引用,它是最弱的一种引用关系。虚引用具有如下特点:

public T get() {
       return null;
   }

可以看到永远返回null;

上一篇 下一篇

猜你喜欢

热点阅读