思诚New学堂是思诚科技旗下高端IT实训品牌,是老学员一致推荐的Java企业级开发、Web全栈开发、UI设计、大数据开发实训机构。
思诚New学堂 LOGO
 您现在的位置:首页 > 新闻中心 > java资料库

java学习笔记分享 Java的四种引用类型

来源:思诚科技    更新时间:2018-3-20

学过Java的人都知道,Java类型一般有两种,即基本数据类型与引用数据类型。其中,基本数据类型的值通常存储与栈内存,用于对该类型的对象进行存储;而引用数据类型则在存储堆中对需要引用的对象进行引用。下面,思诚就与大家一起来具体来看看。

引用是Java面向对象的一个特点,如果一个对象不曾被任何变量应用的话,那么整个程序也就无法再使用这一对象。因此在学Java的过程中会接触到四种引用类型。那么Java究竟有哪四种引用类型呢?

 

类型一:强引用

强引用是一种最常见的引用形式,同时也较为普遍。如果内存空间不足,Java虚拟机将会抛出OutOfMemoryError错误,从而程序将异常停止。强引用的对象是不可以GC回收的,不可以随意回收具有强引用的对象来解决内存不足的问题。把一个对象赋给一个引用类型变量,则为强引用。在Java中,强引用是一种默认的状态,除非JVM虚拟机停止工作。

类型二:软引用

软引用和强引用不同,如果内存空间足够多,一个对象被软引用,则垃圾回收器不会将其回收;如果内存空间不足,这些引用对象就会被回收。所以,软引用就是当回收器没有回收某个对象时,程序就可以对其使用。它可用来较为敏感的高速缓存,虚拟机可以将软引用加入到与之向关联的队列。

类型三:弱引用

弱引用的特点就是引用对象的生命周期较短。G回收器在扫描内存区域是若发现弱引用,即便是内存空间还足够使用,弱引用对象都会被回收。但弱引用对象也可以加入队列,这样就可以不被回收。

类型四:虚引用

从这种引用类型的名称就可以看出,虚引用的对象可以说是形同虚设。为什么这么说?因为虚引用不会决定对象的生命周期,并且虚引用等于没有引用,随时都可以被GC回收。

  • 上一篇文章:

  • 下一篇文章: 没有了
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚开发者沙龙

    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018    移动版

    Top