|
|
51CTO旗下网站
|
|
移动端

面试重点:Java虚拟机常见问题详解

本文整理了有关Java虚拟机常见问题的总结,所列举的技术点为面试重点。Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

作者:高效码农来源:头条科技|2018-02-06 22:18

面试重点:Java虚拟机篇

一、Java引用的四种状态:

强引用

用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。

如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。

软引用

如果一个对象只具有软引用,则内存空间足够时,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。(备注:如果内存不足,随时有可能被回收。)

只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。

弱引用

弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。

每次执行GC的时候,一旦发现了只具有弱引用的对象,不