jvm-堆和栈

堆空间的结构是怎么样的?[面试7.0]

年轻代(1个Eden区和2个Survivor区分别叫from和to)
老年代
新生代与老年代默认比例为1:2

JVM调优针对堆调优有哪些参数?[面试7.0]

-Xms(初始堆大小)
-Xmx(最大堆大小)

如何设置堆大小,是否有一些经验值?[面试5.0]

堆内存至少可以设置为整个内存的一半大小,甚至2/3大小

年老代和年轻代的JVM调优参数有哪些?[面试7.0]

-XX:NewSize和-XX:MaxNewSize
用于设置年轻代的大小,建议设为整个堆大小的1/3或者1/4,两个值设为一样大

-XX:SurvivorRatio
用于设置Eden和Survivor的比值若为8表示8/10是Eden剩下的Suvivor平均分配剩下的

-XX:InitialTenuringThreshol和-XX:MaxTenuringThreshold
用于设置晋升到老年代的对象年龄的最小值和最大值,每个对象在坚持过一次Minor GC之后,年龄就加1

栈和堆的区别是什么?[面试7.0]

栈:
函数中定义的基本类型变量,对象的引用变量都在栈内存中分配
数据一执行完毕,变量会立即释放,节约内存空间
栈内存中的数据,没有默认初始化值,需要手动设置

堆:
堆内存中的实体是用来封装数据的
堆内存用来存放new创建

上一篇:第五章 SpringBoot.2.X⾥⾯的配置⽂件


下一篇:JVM完整详解:内存分配+运行原理+回收算法+GC参数等