学过Java的人都知道,Java类型一般有两种,即基本数据类型与引用数据类型。其中,基本数据类型的值通常存储与栈内存,用于对该类型的对象进行存储;而引用数据类型则在存储堆中对需要引用的对象进行引用。
引用是Java面向对象的一个特点,如果一个对象不曾被任何变量应用的话,那么整个程序也就无法再使用这一对象。因此在学Java的过程中会接触到四种引用类型。那么Java究竟有哪四种引用类型呢?千锋青岛老师这就告诉你。
类型一:强引用
强引用是一种常见的引用形式,同时也较为普遍。如果内存空间不足,Java虚拟机将会抛出OutOfMemoryError错误,从而程序将异常停止。强引用的对象是不可以GC回收的,不可以随意回收具有强引用的对象来解决内存不足的问题。把一个对象赋给一个引用类型变量,则为强引用。在Java中,强引用是一种默认的状态,除非JVM虚拟机停止工作。
类型二:软引用
软引用和强引用不同,如果内存空间足够多,一个对象被软引用,则垃圾回收器不会将其回收;如果内存空间不足,这些引用对象就会被回收。所以,软引用就是当回收器没有回收某个对象时,程序就可以对其使用。它可用来较为敏感的高速缓存,虚拟机可以将软引用加入到与之向关联的队列。
类型三:弱引用
弱引用的特点就是引用对象的生命周期较短。G回收器在扫描内存区域是若发现弱引用,即便是内存空间还足够使用,弱引用对象都会被回收。但弱引用对象也可以加入队列,这样就可以不被回收。
类型四:虚引用
从这种引用类型的名称就可以看出,虚引用的对象可以说是形同虚设。为什么这么说?因为虚引用不会决定对象的生命周期,并且虚引用等于没有引用,随时都可以被GC回收。
了解Java的四种引用类型是Java学习的重要部分。选择一个靠谱培训机构,会让你的学习事半功倍。千锋青岛java培训为学员学习质量,采取“大牛团队”讲师全程面授授课方式。21周学习Java基础、JavaWeb、Java框架、Java+云数据共计四个阶段的专业知识,课程内容紧贴一线,专注打造企业专业性技术人才。百分之百,想学好Java,千锋青岛是你的佳选择!
相关文章
了解千锋动态
关注千锋教育服务号
扫码匿名提建议
直达CEO信箱