jvm内存和参数
?
常用的内存分配空间
新生代
eden
s0
s1
老年代
永久代储存类信息,很少回收这里的内存
?
常用的jvm参数
-Xmsheap最小值
-Xmx ?heap最大值
-Xmn ?新生代值
-XX:SurvivorRatio新生代中的edens0s1三个区域的比例
-XX:MaxTenuringThreshold控制对象经历多少次minor gc后才转入老年代
-verbose:gcgc开关
-Xloggc:gc.loggc日志
?
常用的jvm内存划分
1:java栈存放对象引用,基本数据
2:heap存放对象
3:方法区也就是永久代,存放类信息
?
?
内存分配策略
1:对象优先在eden分配
2:大对象直接进入老年代
3:长期存活的对象会进入老年代
4:动态对象年龄判断
5:空间分配担保原则
?
gc分为俩种:
1:minor gc只回收新生代内存,回收的时候一般用的是“复制”算法
2:full gc回收新生代内存和老年代内存,老年代回收的时候一般用的是“标记,整理”算法