JVM面试题1

2020.11.21更新:你能想象吗 很长时间写了一堆东西,从其他页面回来这个编辑页,结果空白了。我当场去世。csdn为什么那么多bug。

问题
Java内存区域和内存模型的区别
答案
内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。
Java内存模型是共享内存的并发模型,线程之间主要通过读-写共享变量(堆内存中的实例域,静态域和数组元素)来完成隐式通信。
Java 内存模型(JMM)控制 Java 线程之间的通信,决定一个线程对共享变量的写入何时对另一个线程可见。
在这里插入图片描述

参考:https://www.cnblogs.com/czwbig/p/11127124.html

问题 jvm运行时数据区域
答案 https://blog.csdn.net/weixin_42970433/article/details/109273325

问题 新生代和老年代的默认比例
答案(JDK1.8 默认1:2)

问题 哪些会造成OOM 为什么会造成OOM
答案
在这里插入图片描述
在这里插入图片描述
参考:https://blog.csdn.net/weixin_42970433/article/details/109273325

问题:触发FULL GC的场景
答案
1.直接调用System.gc()
2.老年代空间不足
3.永久代空间不足
4.gc担保失败。空间担保失败。
5.Concurrent mode failure
发生在cms的并行清理阶段,发现有新的垃圾产生,而且老年代没有足够空间导致的.

问题 jvm怎么发现死锁
答案
进入jdk安装目录的bin下面,输入jps,先查看我们要检测死锁的进程:
然后可以看到进程的进程号:8384,然后执行:Jstack -l 8384
参考:https://blog.csdn.net/wei009965/article/details/89367095

问题 Java垃圾回收的目的
答案:识别并且丢弃不再使用的对象来释放和重用资源。回收内存。

问题 如果对象的引用被置为null,垃圾回收器是否会立即释放对象占用的内存?
答案
不会,在下一个垃圾回调周期中,这个对象将是被可回收的。
也就是说并不会立即被垃圾收集器立刻回收,而是在下一次垃圾回收时才会释放其占用的内存。

问题 System.gc()会立刻进行垃圾回收吗
答案
执行System.gc()函数的作用只是提醒或告诉虚拟机,希望进行一次垃圾回收。
参考:https://blog.csdn.net/huangdeijia/article/details/89403936

问题 jvm一个对象从创建到回收的整个过程
答案
https://zhuanlan.zhihu.com/p/267223891

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值