Lazy loaded image
技术分享
🗒️Java的四种引用:强引用、软引用,弱引用和虚引用
字数 349阅读时长 1 分钟
2020-7-12
2023-10-24
type
status
date
slug
summary
tags
category
icon
password

强引用

在Java中使用如下方式声明的引用是强引用
str 是堆中对象new String("abc")的强引用,被强引用的对象在任何时候gc不会被回收,即使内存不足汇报OOM。
notion image

软引用

在Java中使用如下方式声明的引用是软引用
软引用对象在内存不足gc时会被回收

弱引用

在Java中使用如下方式声明的引用是弱引用
a是堆中对象new Car("abc", 1)的弱引用,弱引用在gc时会被回收。上面的代码输出:
notion image
如果一个对象既被强引用又被弱引用,那么就按强引用来
notion image

虚引用

在Java中使用如下方式声明的引用是虚引用
虚引用每次get的时候都是null,虚引用不破坏原来对象的生命周期如同空气,使用方法需要配合ReferenceQueue使用。对象在被gc后,引用对象被加入到ReferenceQueue。可以使用虚引用来判断对象是否被回收。
notion image
上一篇
Java线程中断的三种方法
下一篇
Android应用真正的入口在哪里?

评论
Loading...