java中引用级别的理解及代码示例

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中引用级别的理解及代码示例相关的知识,希望对你有一定的参考价值。

一、java中引用级别有哪些

  • 在Java中,引用级别一共有四种,分别为:
  • 强引用
  • 软引用
  • 弱引用
  • 虚引用

二、强引用

  • 一般程序中的引用,例如 Student student = new Student();
  • 如果一个对象具有强引用,那就类似于必不可少的物品,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。

三、软引用(java.lang.ref.SoftReferenct)

  • 当堆空间不足时,才会被回收。因此,软引用对象不会引起内存溢出。

1、示例代码如下



2、运行结果如下:

四、弱引用(java.lang.ref.WeakReferenct)

  • 当GC的时候,只要发现存在弱引用,无论系统堆空间是否不足,均会将其回收。

1、代码如下:

2、运行结果如下:

五、虚引用(java.lang.ref.PhantomReference)

  • 如果对象持有虚引用,其实与没有引用是一样的。虚引用必须和引用队列在一起使用,它的作用是用于跟踪GC回收过程,所以可以将一些资源释放操作放置在虚引用中执行和记录。

1、代码如下:



2、运行结果如下:

以上是关于java中引用级别的理解及代码示例的主要内容,如果未能解决你的问题,请参考以下文章

ref:关于JAVA中一些安全漏洞示例说明及如何规避方法代码示例总结分享

Java并发多线程编程——原子类AtomicInteger的ABA问题及原子更新引用

多线程的常用关键字及示例代码(synchronizedvolatile)

Netty——网络编程(阻塞理解及代码示例)

Netty——网络编程(阻塞理解及代码示例)

Netty——网络编程(非阻塞理解及代码示例)