JVM知识体系完整指南:53问带答案

需积分: 0 0 下载量 187 浏览量 更新于2024-06-27 收藏 771KB PDF 举报
jvm知识点总结 Java虚拟机(JVM)是Java程序的运行环境,它提供了一个平台独立的方式来运行Java程序。JVM是Java程序的核心组件之一,负责将Java字节码文件转换为机器代码,并执行机器代码。 **为什么要学习JVM?** 学习JVM有三个主要原因: 1. 为了面试:企业招聘战略在升级,业务和技术问的越来越身。 2. 为了更好的理解JAVA:学习JVM可以帮助我们更好地理解Java语言的实现机制和原理。 3. 为了更好的解决线上问题:学习JVM可以帮助我们更好地解决线上问题,例如实现线上软件升级、防止内存泄漏、提高内存的有效使用率和提高系统的吞吐量。 **JVM的构成** JVM的构成可以分为四个部分: 1. 类加载子系统:负责将类读到内存,校验类的合法性,对类进行初始化。 2. 运行时数据区:负责存储类信息、对象信息、执行逻辑。 3. 执行引擎:负责从指定地址对应的内存中数据然后解释执行以及GC操作。 4. 本地库接口:负责实现JAVA语言与其它编程语言之间的协同。 **类加载器** 类加载器是JVM中的一种机制,负责将类加载到内存中。常见的类加载器有: 1. BootStrapClassLoader:负责加载核心类库。 2. ExtClassLoader:负责加载扩展类库。 3. AppClassLoader:负责加载应用程序类库。 4. 自定义ClassLoader:可以根据需要自定义类加载器。 **双亲委派类加载模型** 双亲委派类加载模型是一种类加载机制,通过这种机制可以保证同一个类只能被加载一次,同时也是对类资源的一种保护。该模型可以简单理解为向上询问、向下委托。 **双亲委派类加载模型的优势和劣势** 双亲委派类加载模型的优势: * 保证同一个类只能被加载一次。 * 是对类资源的一种保护。 双亲委派类加载模型的劣势: * 可能会出现类加载器的循环依赖问题。 **JVM的实现** JVM的实现有多种,常见的有: 1. Oracle公司的HotSpot。 2. IBM公司的J9。 3. 阿里公司的TaobaoVM。 **结论** JVM是Java程序的核心组件之一,学习JVM可以帮助我们更好地理解Java语言的实现机制和原理,并更好地解决线上问题。同时,学习JVM也可以帮助我们更好地面试。