1.JVM运行时内存区域划分
方法区:方法 和静态区
栈区:基本数据类型,引用数据类型地址,方法区压榨执行
堆区:存放对象和数组
2.内存溢出OOM和堆栈溢出SOE的示例及原因、如何排查与解决
3.如何判断对象是否可以回收或存活
4.常见的GC回收算法及其含义
5.常见的JVM性能监控和故障处理工具类:jps、jstat、jmap、jinfo、jconsole等
6.JVM如何设置参数
7.JVM性能调优
8.类加载器、双亲委派模型、一个类的生命周期、类是如何加载到JVM中的
9.类加载的过程:加载、验证、准备、解析、初始化
10.强引用、软引用、弱引用、虚引用
11.Java内存模型JMM
12.Java的平台无关性如何体现出来的
java 代码在windows 和linux 系统上部署就能运行,jvm 运行.calss 的jre 环境做了处理。
在程序编译期间生成的字节码是JVM 的机器语言,JVM负责执行字节码,并且为需要执行java程序的机器生成特定的机器代码,所以java语言与平台无关。
13.java 堆的结构是什么样子的?
14.java 类的加载过程
15.常见的异步手段有哪些?
16.java 垃圾回收机制 GC
GC发生在堆里面(heap),GC
GC分为几种:
(年轻代)频繁搜集 : 复制算法——优点:效率高;缺点:需要双倍空间
(老年代)较少搜集 : 标记清除——缺点:扫描两次,内存碎片; 优点:不需要额外空间
标记-压缩——优点:没有内存碎片
永久代 : 没有GC