【322天】我爱刷题系列081(2017.12.24)

叨叨两句

  1. ~

牛客网——java专项练习060

1

下面哪一种状况会致使持久区jvm堆内存溢出?
正确答案: C
A 循环上万次的字符串处理
B 在一段代码内申请上百M甚至上G的内存
C 使用CGLib技术直接操做字节码运行,生成大量的动态类
D 不断建立对象java

建议看看这篇博客 入门 通俗易懂 http://blog.csdn.net/sivyer123/article/details/17139443
简单的来讲 java的堆内存分为两块:permantspace(持久带) 和 heap space。
持久带中主要存放用于存放静态类型数据,如 Java Class, Method 等, 与垃圾收集器要收集的Java对象关系不大。
而heapspace分为年轻带和年老带 
年轻代的垃圾回收叫 Young GC, 年老代的垃圾回收叫 Full GC。
在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到年老代中。所以,能够认为年老代中存放的都是一些生命周期较长的对象
年老代溢出缘由有  循环上万次的字符串处理、建立上千万个对象、在一段代码内申请上百M甚至上G的内存,既A B D选项
持久代溢出缘由  动态加载了大量Java类而致使溢出

2

如下集合对象中哪几个是线程安全的()
正确答案: C D
A LinkedList
B ArrayList
C Vector
D Hashtable安全

简单记忆线程安全的集合类: 喂!SHE!  喂是指  vector,S是指 stack, H是指    hashtable,E是指:Eenumeration