3.对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值和Survivor区总大小分别是()
- 5120m,1024m
- 5120m,2048m
- 10240m,1024m
- 10240m,2048m
答案:D
-Xmx:最大堆大小
-Xms:初始堆大小
-Xmn:年轻代大小
-XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值
在用的时候,如果设置成8,代表 -XX:SurvivorRatio:eden=2:8,如果设置成3,代表 -XX:SurvivorRatio:eden=2:3,也就是survivorRatio永远是2
年轻代5120m, Eden:
Survivor=3,Survivor区大小=1024m(Survivor区有两个,即将年轻代分为5份,每个Survivor区占一份),总大小为2048m。
-Xms初始堆大小即最小内存值为10240m
4.下面有关JVM内存,说法错误的是?
- 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
- Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
- 方法区用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据,是线程隔离的
- 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
答案:C
方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。