Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

Java高级面试题面试题 PDF 下载


分享到:
时间:2024-06-23 09:33来源:http://www.java1234.com 作者:转载  侵权举报
Java高级面试题面试题
失效链接处理
Java高级面试题面试题 PDF 下载

 
 
相关截图:

 
主要内容:
 

1, java堆,分新生代老年代,新生代有Eden,from surviver,tosurviver 三个空间,堆被所有线程共。 eden 内存不足时,发生一次minorGc,会把from survivor和eden的对象复制到to survivor,这次的to survivor就变成了下次的from survivor,经过多次minor GC,默认15次,达到次数的对象会从survivor进行老年代。1次new如果新生代装不下,则直接进入老年代。
 

2 , HashMap和 HashTable是使用数组+链表结构实现,根据Hash和table长度计算数组的下标index做操作, hashMap默认数组长度为16, hashMap对null值的key都放在table[0]的位置,table[index]形成1个链表,当然在新版jdk中链表节点数>8会变成红黑树结构。hashMap达到最大数量会扩容,扩容table长度变为2倍,每个元素(table中)但重新计算index放到新的table中。
 

3,堆的年轻代和老年代。
堆的年轻代大则老年代小,GC少,但是每次时间会比较长。年轻代小则老年代大,会缩短每次GC的时间,但是次数频繁。可以让老年代尽量缓存常用对象,JVM默认年轻代和老年代的大小比例为1:2,。观察峰值老年代内存,不影响full Gc,加大老年代可调1:1,但是要给老年代预留三分之一的空间。减少使用全局变量和大对象﹐调整新生代,老年代到
最合适。

 


 


------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐