java引用的类型,java 中都有哪些引用类型
如何解决写爬虫IP受阻的问题?立即使用。
推荐课程:Java教程
Java提供了两种不同的类型:引用类型和原始类型(或内置类型)。
引用类型和原始类型的行为是完全不同的,它们具有不同的语义。
引用类型和基元类型有不同的特征和用法,包括:大小和速度,这个类型存储在什么类型的数据结构中,什么时候引用类型和基元类型
用作类的实例数据时指定的默认值。
对象引用实例变量的默认值为null,而原始类型实例变量的默认值与其类型相关。同时,为了面向对象操作的一致性。
这些基本类型有相应的封装类型:整型、短整型、长型、字节型、浮点型、双精度型、字符型等。
Java的4种引用类型:
它们是强引用、软引用、弱引用和虚引用。他们是
GC恢复的可能性从大到小排序。
强引用(StrongReference)
只要强引用存在,垃圾收集器就永远不会回收被引用的对象。即使内存不足,JVM也会直接抛出OutOfMemoryError,不会回收。诸如
如果要断开强引用和对象之间的连接,可以将强引用赋值为null,这样JVM就可以及时回收对象。
软引用(SoftReference)
软引用用于描述一些不必要但仍然有用的对象。当有足够的内存时,软引用对象将不会被回收。只有当内存不足时,系统才会回收软引用对。
例如,如果在收集软引用对象后仍然没有足够的内存,将会引发内存溢出异常。此功能通常用于实现缓存技术,如网页缓存和图片。
缓存等。
在JDK1.2之后,使用java.lang.ref.SoftReference类来表示软引用。
弱引用(WeakReference)
弱引用的引用强度比软引用弱。不管有没有足够的内存,只要JVM启动垃圾收集,那些与弱引用相关联的对象就会被收集。
在JDK1.2之后,java.lang.ref.WeakReference用于表示弱引用。
PhantomReference(虚引用)
虚拟引用是最弱的一种引用关系。如果一个对象只持有虚拟引用,就跟没有引用一样,随时可能被回收。JDK1.2以后,用PhantomReference类表示。通过查看这个类的源代码,发现它只有一个构造函数和一个get()方法,它的get()方法只返回一个null,这意味着它永远无法通过虚引用获取对象。这就是java中引用类型的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。