`
- 浏览:
456507 次
- 性别:
- 来自:
深圳
-
最近面试了阿里。发现其面试java这块对底层的了解很迫切。因此我也复习下。毕竟有段时间没有去碰java了。现在先从最基础最底层的一个问题开始:
JVM 加载Class的原理。上网上搜可以搜到很多。但是我还是按照自己的认识来复习下。
1.java文件都是需要编译为class文件。因此java中的所有类都必须被JVM加载才能运行。那么jVM是如何来加载呢?
1.1 jvm加载的类大致可以分为三种: 系统类,扩展类,自定义类
1.2 JVM对类加载的方式有两种:1.隐式加载 ,2 显式加载
a. 隐式加载:程序在运行过程中当碰到是由new 方式产生的对象时,隐式调用类加载器对应的类到JVM中。
b. 显式加载:通过Class.forName()等方法来显式加载这些需要的类。
1.3 类加载是一个动态的加载过程。它并不是一次性将所有的类全部加载在运行。它先将一些必须的基础类一次性加载到JVM中。其他的类要等到用到的时候在加载进入JVM。
1.4 java类三层次加载器:最高层(Bootstrap Loader) 负责加载系统类 第二层(ExtClassLoader)负责加载扩展类。第三层(AppClassLoader)负责加载应用类。
1.5 三层次类加载器之间的协调加载机制靠(委托模型)这个委托加载就是当有需要类进行加载。那么首先会让其父层进行加载,如果父层没有找到或没有加载到,那么才会到自己来进行加载。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### JVM加载Class文件详解 #### 一、Java与JVM中的Class文件加载机制概述 Java作为一种动态性极强的解释型编程语言,在程序运行时,Java虚拟机(JVM)负责将编译生成的`.class`文件加载到内存中进行执行。在Java...
通过实践操作,掌握类的加载、连接与初始化过程,了解不同类型的类加载器及其工作原理,学会创建自定义的类加载器,并对类的卸载有所认识。实验将结合具体的Java程序实例,运用单例模式对静态变量和对象进行初始化,...
类加载机制JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述: 1. Bootstrap ClassLoader /启动类加载器 $JAVA_HOME 中 jre/lib/rt.jar 里所有的 class,由 C++实现,不是 ...
通过对JVM执行子系统原理的深入分析,我们不仅了解了Class文件的具体结构和字节码指令的基本概念,还探讨了类加载机制的各个环节以及字节码执行引擎的核心组成部分。这些知识点对于深入理解JVM的工作原理、优化程序...
- **加载Class文件**:解析并加载Java程序编译后的字节码文件(.class文件)。 - **调用本地接口**:通过JNI (Java Native Interface) 调用本地代码库中的函数。 - **解释命令**:将字节码指令转换为对应平台的机器码...
"class文件热加载,上传class文件实现热加载"这个主题主要涉及到Java应用的运行时动态更新机制。下面将详细介绍这个过程及其相关知识点。 1. **Java类加载器**: - Java虚拟机(JVM)通过类加载器来加载类。默认有...
本文将深入探讨JVM加载Class文件的机制,类加载器的概念及其类型,以及Tomcat服务器特有的类加载机制。 1. JVM加载Class文件的原理机制 JVM加载Class文件的过程分为三个主要阶段:装载、连接和初始化。 - **装载*...
《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...
3. **类加载机制**:JVM的类加载器负责加载class文件,包括加载、验证、准备、解析和初始化这五个阶段。理解类加载器的工作方式对于优化程序性能和处理类的依赖关系非常有用。 4. **数据类型与内存模型**:JVM有一...
本教程旨在帮助开发者深入了解JVM的工作原理及其内部机制,掌握JVM调优的方法和技术。通过学习本教程,开发者不仅能够提高自己的技术水平,还能更好地应对实际工作中遇到的问题。希望各位能够在学习过程中不断探索、...
- 加载Class文件。 - 解释执行字节码。 - 或者通过JIT编译器将热点代码转换为本地机器码。 2. **HotSpot VM**: - 是目前最常用的JVM实现。 - 包括解释器和即时编译器。 - 支持动态代码优化技术。 3. **...
JVM 的类加载是通过 ClassLoader 及其子类来完成的,类的层次关系和加载顺序可以由下图来描述: 1. Bootstrap ClassLoader:负责加载 $JAVA_HOME 中 jre/lib/rt.jar 里所有的 class。 2. Extension ClassLoader:...
下面将详细阐述JVM加载Class文件的基本原理及其背后的机制。 **1. 类的动态加载** Java类的加载过程是动态的,并非在程序启动时一次性加载所有类,而是根据程序的实际需求按需加载。这种策略有助于减少内存占用,...
其次,JVM加载Class文件的原理机制,主要是通过类加载器(ClassLoader)及其子类完成的。类加载器是一种类,它的作用是从硬盘读取.class文件,并将其加载到内存中。类加载分为隐式和显示加载,隐式加载通常是在创建...
类加载器负责将编译后的.Class文件加载到内存中。运行时数据区(也称为运行时内存区域)是程序运行期间的存储区域,包括程序计数器、虚拟机栈、本地方法栈、堆、方法区等。执行引擎将字节码转换成机器码执行。本地...
### JVM原理及调优 #### 一、JVM概述 JVM(Java Virtual ...总之,深入理解JVM的原理及其运行机制对于Java开发者来说至关重要,特别是在大规模分布式系统中,良好的JVM调优能够显著提高系统的稳定性和响应速度。
2. **JVM加载Class文件的原理机制**: 类加载主要由ClassLoader及其子类负责,它们动态地将.class文件加载到内存。加载方式有隐式加载(如new关键字创建对象时)和显式加载(如通过class.forName())。JVM按需加载...
Java 类加载器是 Java 运行时环境中不可或缺的组成部分,负责将 .class 文件加载到 JVM 中。理解类加载器的工作原理对于深入掌握 Java 语言及其运行机制至关重要。本文将详细探讨 Java 类加载器的概念、类型以及工作...
JavaClass文件的校验过程是为了确保加载到Java虚拟机(JVM)上的Class文件具有正确的内部结构,从而保障所定义类型的可用性和安全性,同时确保不同Class文件之间的一致性。Java文件校验器通过四次独立扫描完成校验...
在深入探讨JVM机制之前,我们首先...了解这些基础概念后,你可以进一步学习JVM内存管理、类加载机制、垃圾收集算法、性能调优等方面的知识。通过深入理解JVM的工作原理,可以有效地编写出更高效、更稳定的Java程序。