java的引用类型有哪些_Java的四种引用类型有哪些?

学过Java的人们都知道,Java的类型一般有两种,一种是基本数据类型,另一种是引用数据类型。其中,基本数据类型的值通常储存与栈内存,用于对该类型的对象进行存储;而引用数据类型则在存储堆中对需要引用的对象进行引用。

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

类型一:强引用

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

类型二:软引用

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

类型三:弱引用

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

类型四:虚引用

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

四种引用类型是Java学习的重要部分。以后在实战中也是经常需要用到的,因此在记熟基础知识点之后,不妨多自己动手写写代码。网上开源的代码虽然有许多可以借鉴,但是在学习的时候,还是尽量自己动手去写,网上的代码再好,也是别人的技术,毕竟只有自己能够写出来的代码才算是自己的技术。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值