JVM 内部原理
========
JVM 虚拟机的功能主要是加载 class 文件,并执行其中的字节码。它包括 ClassLoader 类加载器与 Enginee 执行引擎。引擎包括普通的一次性解释引擎(字节码直接解释成机器码,不缓存机器码)、 JIT compiler 即时编译器(性能要求高的字节码对应的机器码缓存之)、自适应的优化器(频繁执行的字节码对应的机器码缓存之)。
JVM 虚拟机包括软件与硬件实现虚拟机两种。硬件实现的虚拟机由硬件芯片构成,它使用本地方法执行字节码;软件实现的虚拟机与本机交互是通过调用本地方法实现的。本地方法放在动态链接库中,格式是各个平台专有的。
JNI Java 本地方法调用, 首先加载包含这个本地方法的动态链接库,然后调用本地方法。本地方法一般编译成和处理器相关的机器码。使用JNI将导致失去平台无关性。
类装载器体系结构
类装载器不止一个。包括启动类装载器 bootstrap和用户自定义类装载器。
类装载策略:
1. 当某个类被启动类装载器或用户自定义类装载器装载的时候,它所引用的类也使用同一个类装载器加载。
2. 被不同的类加载器加载的类处于同一命名空间,默认不能跨命名空间访问类。这样可阻止不同类加载器加载的类之间的恶意访问。
3. 基于双亲委派模式的类加载器及运行时库存可保证标准库文件不被替换或添加恶意类。
垃圾回收器:
1. 垃圾回收的时机是不确定的。
2. 线程执行顺序是不确定的。
垃圾收集算法:
1. 引用计数收集器
2. 标记清除收集器
3. 按代收集器
4. 自适应收集器
5. 渐进式按代收集器
...
安全沙箱:
1. 类加载器安全策略,它使用命名空间区分同名的类,限制不同类加载器之间的代码可见性。
2. 类文件安全策略, 这校验CLASS 文件是正常编译输出,而不是伪造的。
3. 内部安全机制
4. 安全管理器
JVM 虚拟机的安全性有一定的作用,但对于故意导致内在溢出或调用本地方法恶意代码的安全保证略有不足。
JVM 体系结构
类装载包括加载,连接,初始化。
加载 指二进制CLASS文件加载到虚拟机。
连接 包括验证、准备、解析。验证CLASS文件正确性,准备阶段为其分配内存空间,解析阶段把常量池中的符号引用转换为直接引用。
初始化 指给类变量分配初始值。解析也可在初始化后进行。
多线程
互斥与协作
对象锁
对象锁计数器
同步方法 实际上也是先获取对象锁。
同步块 ?
- 大小: 138.4 KB
- 大小: 149.9 KB
分享到:
相关推荐
9. **编译OpenJDK**:书中可能涵盖源码获取、配置环境、编译过程以及理解OpenJDK源码的细节,帮助读者深入理解JVM内部实现。 10. **性能优化**:通过分析JVM的各种监控工具(如JConsole、VisualVM等),学习如何...
本教程旨在帮助开发者深入了解JVM的工作原理及其内部机制,掌握JVM调优的方法和技术。通过学习本教程,开发者不仅能够提高自己的技术水平,还能更好地应对实际工作中遇到的问题。希望各位能够在学习过程中不断探索、...
JVM(Java Virtual Machine,Java虚拟机)...冯立全通过分享,将JVM原理的理论与实践相结合,为听众提供了一个全面了解JVM的机会。这对于需要深入探讨Java生态系统和提高Java开发技能的开发者来说,是非常宝贵的资源。
介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。 第三课 常用JVM参数 堆的分配参数 栈分配及实例讲解 server与client模式 调试跟踪参数 介绍常用的JVM参数,包括内存分配、堆栈分配、...
淘宝大学内部培训资料,JVM工作原理,垃圾回收,讲解的很不错。
总的来说,理解和掌握JVM的工作原理对于Java开发者来说至关重要,它能帮助你编写更高效、更稳定的代码,也能在出现问题时快速定位并解决。通过深入学习"JVM详解-淘宝内部资料"中的内容,你将能够成为一名精通JVM的...
虚拟机原理部分,我们将深入到JVM的内部工作机制。类加载机制负责从磁盘加载类文件到JVM,包括加载、链接和初始化三个步骤。字节码执行引擎则是JVM的心脏,它通过解释器或即时编译器(JIT)将字节码转换为机器码。...
Java虚拟机(JVM)作为Java程序运行的基础环境,其内部结构复杂且功能强大。本文将基于“JVM底层原理课件PPT”中关于类加载子系统的介绍进行深入解析。类加载子系统是JVM中的一个重要组成部分,它负责在程序运行时根据...
在Java编程语言中,`class`的实例是对象的基础,它们在JVM(Java虚拟机)内部是如何表示的呢?本文将深入探讨这一主题。...通过阅读《深入理解Java虚拟机》等专业书籍,开发者可以更深入地探索JVM的工作原理。
在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...
通过深入学习本课程的PPT,你将能够掌握JVM的基础知识,理解其内部运作机制,具备进行JVM调优的能力,从而在开发和运维工作中游刃有余。同时,这也将有助于你在面试中展现出对Java技术的深入理解和专业素养。
### JVM 详细介绍:掌握 JVM 的各个组成部分与功能 #### 一、Java 源文件编译及执行 Java 应用程序的核心...理解 JVM 的内部工作原理有助于开发者更好地编写高质量的 Java 应用程序,并有效解决运行时遇到的问题。
Java虚拟机(JVM)是Java程序运行的核心组件,它为Java代码提供了跨平台的运行环境。本课程笔记主要探讨了...通过学习这些笔记,你将能够深入理解JVM的内部运作,从而更好地编写、优化Java代码,提升应用程序的性能。
从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型
为了解决这个问题,作者建议使用 JVM 内部线程的监控机制,例如 JVM 日志和 JFR(Java Flight Recording),来定位问题。此外,作者还建议使用 async_profiler 工具,因为它可以帮助作者发现进程本身的 CPU 占用激增...
因为JVM内部经过大量的实践和优化,一般情况下我们只需要通过工具排查问题,而不轻易调整JVM参数。除非必要,否则不应随意更改JVM的默认行为,以免引入新的性能问题。因此,手册的实践操作部分对于开发者来说是作为...
### 深入解析JVM:Java虚拟机的精髓与挑战 #### JVM概览与重要性 JVM,即Java Virtual Machine...掌握JVM的原理和实践,能够显著提升应用程序的稳定性和效率,对于从事Java开发的专业人士而言,是不可或缺的能力。
最后,为了更深入地学习JVM,你还需要关注相关的开源项目和社区,例如OpenJDK,它是JVM的主要实现之一,其源代码对开发者开放,提供了深入了解JVM内部工作原理的机会。 总的来说,这套教程将带领你全面地走进JVM的...
### JVM结构与工作原理 JVM主要由以下几个部分组成: 1. **类加载器(ClassLoader)**:负责加载.class文件,将字节码转换为内存中的类。 2. **运行时数据区(Runtime Data Area)**:包括方法区、堆、栈、本地方法...