JVM自测
- 什么是JVM(Java虚拟机)?它的作用是什么?
- JVM的主要组成部分有哪些?
- Java程序是如何在JVM上运行的?
- JVM的内存模型是什么?请解释堆(Heap)、栈(Stack)和方法区(Method Area)的作用。
- 什么是垃圾回收(Garbage Collection)?它是如何工作的?
- 什么是类加载器(Class Loader)?它的作用是什么?
- 类加载器有哪些类型?请解释它们的区别。
- 什么是字节码(Bytecode)?为什么Java源代码要编译成字节码?
点击查看
字节码(Bytecode)是一种中间形式的机器代码,它是由Java编译器将Java源代码编译而成的。字节码是一种与特定硬件平台无关的低级代码,它可以在任何支持Java虚拟机(JVM)的平台上运行。 将Java源代码编译成字节码可以实现跨平台性、提高安全性、进行性能优化和增强可移植性等优点,使得Java成为一种广泛应用的编程语言。
- 什么是即时编译(Just-In-Time Compilation,JIT)?它如何提高Java程序的性能?
- Class.forName 和 ClassLoader.loadClass 都能加载类,你知道这两者在加载类时的区别吗
- 什么是永久代(Permanent Generation)?它在Java 8及以后的版本中发生了什么变化?
- 什么是字符串常量池(String Pool)?它与堆内存的关系是什么?
- 虚拟机栈和堆会出现哪些错误,出现的原因是什么
- JVM的调优工具有哪些?请描述它们的作用。
- JVM中的内存分配和回收策略是什么?请解释年轻代(Young Generation)和老年代(Old Generation)的作用。
- 什么是可达对象(Reachable Objects)和不可达对象(Unreachable Objects)?垃圾回收器是如何识别和清理不可触及对象的?
- 哪些情况对象会进入老年代
- 什么是永久代的垃圾回收?Java 8及以后的版本中如何替代永久代?
- JVM的类加载过程是怎样的?请解释加载、连接和初始化的过程。
- 什么是动态代理(Dynamic Proxy)?它是如何工作的?
- JVM中的可见性(Visibility)问题是什么?如何解决可见性问题?
- 什么是逃逸分析(Escape Analysis)?它对Java程序有什么优化作用?
- JVM中的方法调用是如何实现的?请解释静态绑定(Static Binding)和动态绑定(Dynamic Binding)的区别。
- JVM的性能调优有哪些方面需要考虑?
点击查看
- 如何判断对象是否死亡(两种方法)。
- 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。
- 如何判断一个常量是废弃常量如何判断一个类是无用的类垃圾收集有哪些算法,各自的特点?
- HotSpot 为什么要分为新生代和老年代?
- 常见的垃圾回收器有哪些?
- 介绍一下 CMS,G1 收集器。
- Minor Gc 和 Full GC 有什么不同呢?
# JVM
- 一、引言 (opens new window)
- 二、内存管理 (opens new window)
- 3.说一下 JDK1.6、1.7、1.8 内存区域的变化? (opens new window)
- 4.为什么使用元空间替代永久代作为方法区的实现? (opens new window)
- 5.对象创建的过程了解吗? (opens new window)
- 6.什么是指针碰撞?什么是空闲列表? (opens new window)
- 7.JVM 里 new 对象时,堆会发生抢占吗?JVM 是怎么设计来保证线程安全的? (opens new window)
- 8.能说一下对象的内存布局吗? (opens new window)
- 9.对象怎么访问定位? (opens new window)
- 10.内存溢出和内存泄漏是什么意思? (opens new window)
- 11.能手写内存溢出的例子吗? (opens new window)
- 12.内存泄漏可能由哪些原因导致呢? (opens new window)
- 13.如何判断对象仍然存活? (opens new window)
- 14.Java 中可作为 GC Roots 的对象有哪几种? (opens new window)
- 15.说一下对象有哪几种引用? (opens new window)
- 16.finalize()方法了解吗?有什么作用? (opens new window)
- 17.Java 堆的内存分区了解吗? (opens new window)
- 18.垃圾收集算法了解吗? (opens new window)
- 19.说一下新生代的区域划分? (opens new window)
- 20.Minor GC/Young GC、Major GC/Old GC、Mixed GC、Full GC 都是什么意思? (opens new window)
- 21.Minor GC/Young GC 什么时候触发? (opens new window)
- 22.什么时候会触发 Full GC? (opens new window)
- 23.对象什么时候会进入老年代? (opens new window)
- 24.知道有哪些垃圾收集器吗? (opens new window)
- 25.什么是 Stop The World ? 什么是 OopMap ?什么是安全点? (opens new window)
- 26.能详细说一下 CMS 收集器的垃圾收集过程吗? (opens new window)
- 27.G1 垃圾收集器了解吗? (opens new window)
- 28.有了 CMS,为什么还要引入 G1? (opens new window)
- 29.你们线上用的什么垃圾收集器?为什么要用它? (opens new window)
- 30.垃圾收集器应该如何选择? (opens new window)
- 31.对象一定分配在堆中吗?有没有了解逃逸分析技术? (opens new window)
- 32.什么是空间分配担保 (opens new window)
- 33.什么是安全点,什么是安全区域 (opens new window)
- 三、JVM 调优 (opens new window)
- 33.了解哪些可视化的性能监控和故障处理工具? (opens new window)
- 34.JVM 的常见参数配置知道哪些? (opens new window)
- 35.有做过 JVM 调优吗? (opens new window)
- 36.线上服务 CPU 占用过高怎么排查? (opens new window)
- 37.内存飙高问题怎么排查? (opens new window)
- 38.频繁 minor gc 怎么办? (opens new window)
- 39.频繁 Full GC 怎么办? (opens new window)
- 40.有没有处理过内存泄漏问题?是如何定位的? (opens new window)
- 41.有没有处理过内存溢出问题? (opens new window)
- 四、虚拟机执行 (opens new window)
- 43.类加载的过程知道吗? (opens new window)
- 44.类加载器有哪些? (opens new window)
- 45.什么是双亲委派机制? (opens new window)
- 46.为什么要用双亲委派机制? (opens new window)
- 47.如何破坏双亲委派机制? (opens new window)
- 48.历史上有哪几次双亲委派机制的破坏? (opens new window)
- 49.你觉得应该怎么实现一个热部署功能? (opens new window)
- 50.Tomcat 的类加载机制了解吗 (opens new window)
编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19