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面试技巧

相关文章
|
1天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
14 1
|
2天前
|
Java
三个可能的Java面试题
Java垃圾回收机制自动管理内存,回收无引用对象的内存,确保内存有效利用。多态性允许父类引用操作不同子类对象,如Animal引用可调用Dog的方法。异常处理机制通过try-catch块捕获和处理程序异常,例如尝试执行可能导致ArithmeticException的代码,catch块则负责处理异常。
23 9
|
7天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
27 4
|
9天前
|
Java 编译器
【Java探索之旅】解密构造方法 对象初始化的关键一步
【Java探索之旅】解密构造方法 对象初始化的关键一步
16 1
|
10天前
|
Java
Java对象和类研究
Java对象和类研究
8 0
|
11天前
|
机器学习/深度学习 人工智能 算法
java对象的比较
java对象的比较
21 0
java对象的比较
|
11天前
|
Java
Java学习——类与对象(二)
Java学习——类与对象(二)
|
11天前
|
存储 Java
Java对象是一种复杂的数据结构
【4月更文挑战第28天】Java对象是基于类的实例,包含属性和方法。类是对象的蓝图,实例化过程在堆内存中分配空间。对象属性存储各种数据,通过点号运算符访问,方法执行操作。Java提供内置对象如String、Integer,也可自定义对象以实现特定功能,如学生管理系统或电商网站。
8 1
|
11天前
|
Java C++
Java学习——类与对象(一)
Java学习——类与对象(一)
|
12天前
|
Java
【JAVA面试题】static的作用是什么?详细介绍
【JAVA面试题】static的作用是什么?详细介绍