Java 全栈知识点问题汇总(5):JVM虚拟机和调优相关

需积分: 0 0 下载量 127 浏览量 更新于2024-01-10 收藏 2.18MB PDF 举报
本文主要概述了Java全栈开发中与JVM虚拟机和调优相关的知识点。其中包括类加载机制、类的加载、连接、初始化和卸载的过程。另外还介绍了类加载器的层次。 JVM是Java虚拟机的缩写,是一种能够执行Java字节码的虚拟机。而调优则是优化JVM的性能以提高程序的运行效率。 在Java中,类加载使用了一种叫做双亲委派模型的机制。该模型将类加载器分为了不同的层次,每个层次的加载器负责加载特定范围的类。其中最顶层的是启动类加载器(Bootstrap ClassLoader),它负责加载存放在JDK\jre\lib目录下的核心类库,如rt.jar和charsets.jar等。而扩展类加载器(Extension ClassLoader)则负责加载存放在JDK\jre\lib\ext目录下的扩展类库。最后,应用程序类加载器(Application ClassLoader)负责加载应用程序中的类。 类加载的生命周期包括加载、验证、准备、解析和初始化五个阶段。其中加载阶段是查找并加载类的二进制数据的过程。验证阶段用于确保被加载的类的正确性。准备阶段则是为类的静态变量分配内存,并将其初始化为默认值。解析阶段将类中的符号引用转换为直接引用。最后,初始化阶段为类的静态变量赋予正确的初始值。 需要注意的是,这几个阶段的顺序中,加载、验证、准备和初始化是确定的,而解析阶段则不一定。解析阶段有时可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。 类加载器是按照层次结构组织的。从上到下,依次为启动类加载器、扩展类加载器和应用程序类加载器。每个类加载器都有自己的加载路径,如果一个类在一个加载器的加载路径下找不到,它就会委托给它的父加载器去加载。这个委托过程将一直进行,直到到达顶层的启动类加载器。如果顶层的启动类加载器仍然找不到该类,就会报ClassNotFoundException异常。 总体来说,了解JVM虚拟机和调优相关的知识对于Java全栈开发工程师来说是非常重要的。掌握了这些知识后,开发人员可以更好地进行性能优化,提高程序的运行效率,提升整体开发能力。