Java常见面试题:对象引用

简介: 在Java中内存关系有两部分内容:内存分配、垃圾回收。从JDK1.2开始就提出四种引用关系:强引用、软引用、弱引用、虚引用。许多时候可能不需要编写代码,但对于这些概念必须牢记。

对象引用

在Java中内存关系有两部分内容:内存分配、垃圾回收。
从JDK1.2开始就提出四种引用关系:强引用、软引用、弱引用、虚引用。许多时候可能不需要编写代码,但对于这些概念必须牢记。

(1)强引用:对象将一直被引用,即使出现了“OutOfMemeryError”错误信息;

image.png
image.png

(2)软引用:对象将被长时间保存,一直到出现内存不足的情况才会被回收,这样的操作很多时候都会用于缓存的开发上,例如在MyBatis里就提供有软引用模式的缓存模式;

image.png
image.png
如果这个时候出现了内存不足的问题,才会进行回收,也就是说对象会尽可能保存的时间长一些。

(3)弱引用:一旦有了垃圾收集操作之后就会进行回收;

image.png
image.png
image.png

(4)虚引用:也叫幽灵引用,这种操作返回的内容永远都是null,就是不引用;

image.png

在对象垃圾收集前一定会调用finalize()方法,但如果finalize()占着它的强引用的对象不放,就会出现一个逻辑上的死锁,这个时候可以通过虚引用来解决。

更多专业知识,面试技巧就在阿里云开发者社区,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
11天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
30 4
|
12天前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
29 15
|
11天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
11天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
11天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
11天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
11天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
1月前
|
Java
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
95 14
|
2月前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
47 6

热门文章

最新文章