雨课堂知识点总结(二十)

 8-2 内存性能与垃圾回收
第一题
关于内存管理的三种模式(static、stack、heap) ,不正确的是
A Static在编译阶段为各变量分配内存,不支持运行时变量扩展内存,但支持运行时为新变量分配内存
B Stack因为结构简单,不支持存储结构复杂的变量(例如数组、对象等)
C 在heap中分配内存的变量,其内存大小在运行时可动态扩展或收缩
D Static和stack两种模式都不支持对变量所占内存的动态回收
E Java中heap用于复杂结构的数组或对象等变量的内存分配,而简单数据类型的变量在stack中分配内存
答案:ADE

第二题
类A有一个静态成员变量int a和一个非静态成员变量Date b,它的某个方法内使用了一个局部变量Calendar C。JVM在为a、b、c三个变量分配内存时,分别在____中分配
A Stack / Stack / Heap
B Stack / Method Area / Stack
C Heap / Stack / Stack
D Method Area / Heap/ Heap
答案:D

第三题
关于GC的说法,不正确的是
A GC根据对象的“活性”(从root的可达性)来决定是否回收该对象的内存
B 如果某个对象内部不再有指向其他对象的reference,则该对象一定是dead,会被GC
C 在Java中,GC完全依赖于JVM,程序员无法通过代码来主动改变某个对象的”活性”
D Defensive copy策略大大增加了GC的负担,相当于用性能换取安全性
E 程序员在代码中人工实现GC,若不恰当,可能导致内存泄漏
答案:BC

第四题
Java中针对heap的各种GC策略,以下说法不正确的是
A Mark-sweep检查内存中各对象是live还是dead,对dead对象做出标记,进而将其清理
B 每次进行Mark-compact策略的GC之后,heap中可被再分配的区域是连续的
C Copy是四种策略中唯一不需要检查对象live/dead的GC策略
D Reference counting相对于其他三种GC策略,内存中dead对象的zombie time最短
答案:C

第五题
针对JVM内存管理和GC的说法,不正确的是
A 相对于old generation space中对象的存活时间,young generation space中对象的存活时间更短
B 对存活时间非常长的对象,经历B)  多次GC后,在heap中位置的迁移路线是eden>(S0或S1)>(S1或S0)>... >old generation space
C Old generation space的GC是full GC,当young generationspace满了的时候触发执行
D 若针对young generation space的minor GC的发生频度很高,则需扩大该区域的内存大小
答案:C

第六题
- Xms512m- Xmx1024m
- XX : Metaspacesize=128m
- XX : MaxMetaspaceSi ze=192m- XX: NewSize=128m
- XX : MaxNewSize= 256m- XX: SurvivorRatio=8
- XX : MaxHeapFreeRatio=90
按上述参数配置,Old Generation和(S0+S1)的最大值分别是
A 1024m, 25.6m
B 768m, 51.2m
C 896m, 51.2m
D 576m, 25.6m
答案:C

第七题
- Xms 512m- Xmx1024m
- XX :MetaspaceSize=128m
- XX : MaxMetaspaceSize=192m-XX: NewSize=128m
- XX :MaxNewSize= 256m-XX:SurvivorRatio=8
-XX: MinHeapFreeRatio=10
按上述参数配置,若当前young和oldgeneration的尺寸分别为1 28m和384m,在以下的时刻, JVM会自动增加young generation的尺寸?
A S0+S1的总占用超过96m
B Eden的总占用超过56m
C Old generation的占用超过350m
D S0+S1+ Eden的总占用超过120m
答案:D

第八题
- XX: +DisableExplicitGC-XX:+PrintGCDetails
- XX: +Us eConcMarkSweepGC一XX:ParallelCMSThreads=12-verbose:gc
- XX : +HeapDumpOnOutofMemoryError-XX:+PrintGCTimeStamps
-Xloggc:../ ../logs/gc-console.log
按以上参数配置,以下不正确的是
A 程序运行时可将GC过程计入日志文件,并记录历次GC时间戳
B 使用串行的GC策略进行GC,GC时会短暂停止程序执行
C 开发者可手工在程序代码中使用System. gc()以提升GC性能
D 使用12个GC线程,降低了GC对程序执行性能的影响
答案:BC

猜你喜欢

转载自www.cnblogs.com/HIT-ryp/p/10905834.html