Java常见面试题(第 12 弹)

1、CMS收集器有什么缺点?

1)CMS收集器对CPU资源非常敏感;

2)CMS收集器无法处理浮动垃圾,可能出现“Concurrent Mode Failure”失败而导致另一次Full GC的产生

3)其采用的标记—清除算***产生空间碎片

 

2、G1收集器的工作过程是什么样的?

初始标记

并发标记

最终标记

筛选回收         

 

3、CPU时间和墙钟时间的区别是什么?

墙钟时间包括各种非运算的等待耗时,例如等待磁盘IO、等待线程阻塞。

而CPU时间不包括这些耗时,但当系统有多PCU或者多核的话,多线程系统会叠加这些CPU时间。

 

4、对象在内存的哪些地方分配?

大部分在堆上分配,且主要分配在新生代的Eden区上(但也可能经过JIT编译后被拆散为标量类型并间接地在栈上分配);

如果启用了本地线程分配缓冲,将按线程优先在TLAB上分配;

少数情况下也可能会直接分配在老年代中(如大对象)。

 

备注:对象在内存的分配规则不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数设置。

 

5、MinorGC和Full GC有什么不一样吗?

新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生夕灭的特性,所以MinorGC非常频繁,一般回收速度也比较快;



老年代GC(Full GC):指发生在老年代的GC,出现了Full GC,经常会伴随至少一次的Minor GC(但非绝对的,在ParallelScavenge收集器的收集策略里就有直接进行Full GC的策略选择过程)。Full GC的速度一般会比Minor GC慢10倍以上。

#面经##java工程师#
全部评论
小谢backup
点赞 回复 分享
发布于 2021-08-02 21:31

相关推荐

不愿透露姓名的神秘牛友
07-24 13:32
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-23 14:13
这是聊岔撇了吗,相同的话问了两遍
吴offer选手:上下文切换这一块
点赞 评论 收藏
分享
白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
评论
1
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务