1、内存模型以及分区,需要详细到每个区放什么?
1.1 什么是内存模型?
内存模型是为了保证共享内存的正确性(可见性、原子性、有序性),内存模型定义了共享内存系统中多线程读写操作的行为规范。
简而言之,就是为了保证并发编程中满足可见性、原子性、有序性的概念规范。
1.2 什么是JVM内存模型?
JVM内存模型简称JMM(Java Memory Model),是符合内存模型规范的,主要为Java语言屏蔽了各种硬件和操作系统的差异性,保证了程序在各种平台下对内存的正确访问。是JAVA一次编译处处运行的基石。
1.3 什么是CPU缓存一致性
随着计算机能力的不断提升,出现了多核CPU,CPU包含了包含了单独的缓存,多个CPU在对自己缓存中的变量数据操作时,关于同一个变量的数据可能不一致的问题,这种情况就是缓存一致性问题。
2、堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?
3、对象创建方法,对象的内存分配,对象的访问定位?
4、GC 的两种判定方法?
5、SafePoint 是什么?
6、GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
7、GC 收集器有哪些?CMS 收集器与 G1 收集器的特点?
8、Minor GC 与 Full GC 分别在什么时候发生?
9、几种常用的内存调试工具:jmap、jstack、jconsole、jhat?
10、类加载的几个过程?
11、JVM 内存分哪几个区,每个区的作用是什么?
12、如和判断一个对象是否存活?(或者 GC 对象的判定方法)
13、简述 java 垃圾回收机制?
14、java 中垃圾收集的方法有哪些?
15、java 内存模型?
16、java 类加载过程?
17、简述 java 类加载机制?
18、类加载器双亲委派模型机制?
19、什么是类加载器,类加载器有哪些?
20、简述 java 内存分配与回收策率以及 Minor GC 和Major GC