1、 JVM中的ClassLoader
JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一样,BootstrapClassLoader是用本地代码实现的,它负责加载核心JavaClass(即所有java.*开头的类)。
另外JVM还会提供两个ClassLoader,它们都是用Java语言编写的,由BootstrapClassLoader加载;其中Extension ClassLoader负责加载扩展的Javaclass(例如所有javax.*开头的类和存放在JRE的ext目录下的类)ApplicationClassLoader负责加载应用程序自身的类。
当运行一个程序的时候,JVM启动,运行bootstrapclassloader,该ClassLoader加载java核心API(ExtClassLoader和AppClassLoader也在此时被加载),然后调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class,这就是一个程序最基本的加载流程。
2、 执行ClassLoader例子
什么时候JVM会使用ClassLoader加载一个类呢?当你使用java去执行一个类,JVM使用ApplicationClassLoader加载这个类;然后如果类A引用了类B,不管是直接引用还是用Class.forName()引用,JVM就会找到加载类A的ClassLoader,并用这个ClassLoader来加载类B。JVM按照运行时的有效执行语句,来决定是否需要装载新类,从而装载尽可能少的类,这一点和编译类是不相同的。
3、Java虚拟机内部体系结构
当Java虚拟机运行一个程序时, 它需要内存来存储许多东西, 例如:字节码,从已装载的class文件中得到的其他信息,程序创建的对象,传递给方法的参数,返回值,局部变量,以及运算的中间结果等等,Java虚拟机把这些东西都组织到几个“运行时数据区”中, 以便于管理。
1、方法区:JVM装载class二进制文件, 解析类型信息(类名, 类路径,成员变量, 方法, 继承父类,接口等等),将其存放到方法区中
2、堆:JVM运行时创建的对象都存放到堆中
3、PC寄存器:当执行一个Java方法时, PC寄存器的值总是指示下一条将被执行的指令
4、Java栈:执行一个Java方法时, 存储该方法的状态:局部变量,传递的参数,返回值,以及运算的中间结果等等
5、本地方法栈:存储本地方法的调用
执行引擎:负责执行那些包含在被装载类的方法中的指令
- 大小: 58.4 KB
分享到:
相关推荐
本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行引擎等;第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及...
Java 虚拟机的体系结构可以分为四个主要部分: 1. 加载器(Loader):负责将 Java 字节码加载到虚拟机中。 2. 解释器(Interpreter):负责将 Java 字节码翻译成机器码。 3. 执行引擎(Execution Engine):负责...
- **类装载器的体系结构**:类装载器负责加载Java类到JVM中,它由多个不同的类装载器组成,如启动类装载器、扩展类装载器和应用程序类装载器。这种层次化的结构有助于实现类隔离以及安全性控制。 - **Java Class...
JVM的体系结构包括类装载子系统和运行引擎,前者负责加载具有指定名称的类或接口,后者执行已加载类中的指令。JVM的内部结构分为五个主要部分:方法区、堆、Java栈、程序计数器和本地方法栈。方法区存储类信息,堆...
JVM的体系结构包括类装载子系统和运行引擎。类装载子系统负责查找并装载类和接口,而运行引擎执行已装载类中的指令。此外,JVM还包含以下几个关键组件: 1. **方法区**:存储解析后的类信息,包括类的元数据和常量...
《Java虚拟机规范中文版》详细阐述了JVM的工作机制,是开发者深入理解Java技术体系的重要参考资料。以下是对该书内容的概览: 1. **JVM架构** JVM分为几个主要组件,包括类装载器、运行时数据区、执行引擎、本地...
##### 1.2 Java虚拟机的体系结构 JVM的架构主要包括以下几个关键组件: - **类装载子系统**:负责读取.class文件,并将其转化为运行时数据结构。 - **运行时数据区**:包括方法区、堆、线程私有的本地方法栈和程序...
《深入Java虚拟机第二版》是探讨Java虚拟机(JVM)内部工作原理的经典之作,作者Bill Venners通过本书深入浅出地解析了Java虚拟机的体系结构和内部机制,为Java开发者提供了编写高效程序的基础理论支持。 Java...
Java虚拟机的体系结构主要包括以下几个方面: 1. **类装载子系统**:负责将Java类加载到内存中,解析类之间的依赖关系。 2. **运行时数据区**:包括方法区、堆、Java栈等,用于存储程序运行时的数据。 - **方法区*...
在JVM的体系结构中,最重要的组成部分包括类装载子系统、运行引擎和内存区域等。类装载子系统负责加载Java程序需要的类文件,是整个JVM工作的第一步。它通过类加载器加载字节码文件,然后进行链接、验证、准备、解析...
本篇文章将深入探讨JVM的生命周期、体系结构、类加载机制、内存区域以及垃圾收集。 首先,JVM的生命周期与Java程序紧密关联。每当运行一个Java程序时,就会创建一个JVM实例。这个实例在程序执行期间存在,直到程序...
1.3.2 类装载器的体系结构 1.3.3 Java class文件 1.3.4 Java API 1.3.5 Java程序设计语言 1.4 Java体系结构的代价 1.5 结论 1.6 资源页 第2章 平台无关 2.1 为什么要平台无关 2.2 Java的体系...
### Java虚拟机(JVM)详解 ...综上所述,Java虚拟机的体系结构复杂且功能强大,它是Java程序能够跨平台运行的关键所在。通过对JVM的理解和掌握,可以帮助开发者更好地编写高效稳定的Java应用程序。
《深入Java虚拟机》是由Bill Venners所著的一本详细解释Java虚拟机(JVM)体系结构和内部工作的书籍。在书中,作者深入探讨了JVM的各个方面,包括其体系结构、垃圾收集机制、Java安全模型、类的动态加载与扩展机制、...
Java虚拟机体系结构 Java虚拟机的体系结构主要由四个部分组成:子系统、内存区、数据类型和指令。这些组成部分一起展示了抽象的虚拟机的内部抽象体系结构。 Java Class文件 Java Class文件是Java虚拟机执行Java...
这些组成部分包括Java编程语言、Java类文件格式、Java虚拟机(JVM)以及Java应用程序接口(API)。它们共同构成了Java技术的基础。 - **Java编程语言**:这是开发者用来编写程序的工具。 - **Java类文件格式**:这是一...
Java虚拟机是Java技术的重要构成部分,其体系架构主要涵盖了五个方面,分别是类装载器、运行时数据区、执行引擎、本地方法接口以及垃圾收集模块。 类装载器是Java虚拟机的重要组成部分,其作用主要体现在从Java应用...
JVM的体系结构包括类装载子系统、运行引擎以及方法区、堆、Java栈、程序计数器和本地方法栈等存储区域。类装载子系统负责加载类文件,而运行引擎负责执行类文件中的指令。每个JVM实例都有一个方法区和堆,这些是所有...