主题
JVM
- ✅Java是如何实现的平台无关?
- ✅Java是编译型还是解释型?
- ✅什么是编译和反编译?
- ✅简单介绍一下JIT优化技术?
- ✅对JDK进程执行kill -9有什么影响?
- ✅JVM的运行时内存区域是怎样的?
- ✅Java中的对象一定在堆上分配内存吗?
- ✅Java的堆是如何分代的?为什么分代?
- ✅新生代如果只有一个Eden+一个Survivor可以吗?
- ✅YoungGC和FullGC的触发条件是什么?
- ✅什么是Stop The World?
- ✅JVM有哪些垃圾回收算法?
- ✅JVM如何判断对象是否存活?
- ✅什么是三色标记算法?
- ✅什么是强引用、软引用、弱引用和虚引用?
- ✅新生代和老年代的GC算法
- ✅新生代和老年代的垃圾回收器有何区别?
- ✅G1和CMS有什么区别?
- ✅为什么G1从JDK 9之后成为默认的垃圾回收器?
- ✅JDK 11中新出的ZGC有什么特点?
- ✅Java 8 和 Java 11 的GC有什么区别?
- ✅类的生命周期是怎么样的?
- ✅Java中类加载的过程是怎么样的?
- ✅Java中的类什么时候会被加载?
- ✅什么是双亲委派?如何破坏?
- ✅如何判断JVM中类和其他类是不是同一个类?
- ✅JVM如何保证给对象分配内存过程的线程安全?
- ✅虚拟机中的堆一定是线程共享的吗?
- ✅常见的JVM调优工具有哪些
- ✅有哪些常用的JVM启动参数?
- ✅哪些语言有GC机制
- ✅一个对象的结构是什么样的?
- ✅JVM是如何创建对象的?
- ✅字符串常量池是如何实现的?
- ✅什么是方法区?是如何实现的?
- ✅JVM 中一次完整的 GC 流程是怎样的?
- ✅JVM为什么要把堆和栈区分出来呢?
- ✅运行时常量池和字符串常量池的关系是什么?
- ✅什么是堆外内存?如何使用堆外内存?
- ✅FullGC多久一次算正常?
- ✅什么是跨代引用,有什么问题?
- ✅内存泄漏和内存溢出的区别是什么?
- ✅破坏双亲委派之后,能重写String类吗?
- ✅OutOfMemory和StackOverflow的区别是什么
- ✅什么是Class常量池,和运行时常量池关系是什么?
- ✅Java发生了OOM一定会导致JVM 退出吗?
- ✅什么是safe point,有啥用?
- ✅JDK1.8和1.9中类加载器有哪些不同
- ✅什么是逃逸分析?
- ✅什么是AOT编译?和JIT有啥区别?
- ✅一个Java进程占用的内存都哪些部分?
- ✅说一说JVM的并发回收和并行回收
- ✅为什么初始标记和重新标记需要STW,而并发标记不需要?
- ✅介绍下CMS的垃圾回收过程
- ✅Java一定就是平台无关的吗?
- ✅什么是STW?有什么影响?
- ✅什么情况会导致JVM退出?
- ✅项目中如何选择垃圾回收器?为啥选择这个?
- ✅元空间满了(或溢出),可能是什么原因?
- ✅为什么JDK 1.8要废弃永久代,改用元空间
- ✅ZGC和CMS和G1的区别对比?
- ✅G1如何精确控制 STW的时间的?
- ✅G1 的分区机制中,每个Region的大小是固定的吗?