当一个Java虚拟机运行一个程序时,他需要很多东西,例如字节码,从已经装在的class文件中得到的其他信息,程序创建时候的对象,传递给方法的参数,返回值,局部变量,以及运算的中间结果等等。
每个java虚拟机实例都有一个方法区和一个堆,他们是由该虚拟机实例中的所有线程共享的。
1, 当虚拟机装载一个class文件时,他会从这个class文件包含的二进制数据中解析类型数信息然后放在方法区中,具体如下:
2, 当程序运行时,虚拟机会把所有该程序在运行时创建的对象都放在堆中。
3, 每当一个线程创建时,他都将得到他自己的PC寄存器以及一个java载,如果线程正在执行的是一个java方法(非本地方法),那么pc寄存器的值总是指向下一条将被执行的指令,而他的java载总是存储方法调用的状态-----包括他的局部变量,参数,返回值,以及中间的结果等等。而本地方法的状态则是以某种依赖于具体实现的方式存储在本地方法中,也可能是在寄存器或者其他某些与特定实现相关的内存区中.
1.1数据类型
类型分为两种基本和引用类型.
Java语言中所有的基本类型也是虚拟机中的基本类型,特殊情况:boolean有点特别,当编译器吧java源码编译成自己嘛事,他会以int或者byte来表示boolean.false是有整数零表示,所有非零整数用来表示true。boolean数组是当做byte数组来访问的,在堆中,他也可以被表示为位域。
1.2
Java虚拟机中最基本的数据单元就是字,有设计者决定,字长至少是一个单元就持有byte,short,int,char,float,returnAddress(虚拟机内部使用)或者reference(引用类型),两个字节就能够持有long和double类型的值。由此虚拟机实现至少选择32字长或者更高。通常那个根据底层主机的指针长度来选择字长。
1,3 类装载系统
Java有两种类装载系统:启动类装载器和用户自定义装载器。 每一个被装载的类型,java虚拟机都会为他创建一个java.lang.class类的实例来代表该类型,用户自定义的类装载器和class实例都放在堆区,而装载的类型信息都放在方法区。
类装载的过程:装载(查找并装载类型的二进制信息,将类信息系放在放在方法区),连接(验证,准备(为类变量分配内存,并将其初始化为默认值,解析(为类变量初始化正确的初始值))),在jdk1.1时:启动类装载器会首先在用户配置的classpath下寻找.class文件,而1.2 搜索classpath的任务交给了系统类装载器----自定义的类装载器。
分享到:
相关推荐
【深入理解Java虚拟机体系结构】 Java虚拟机(Java Virtual Machine,简称JVM)是Java平台的核心组成部分,它使得Java程序具有平台无关性,保证了“一次编译,到处运行”的特性。Java虚拟机主要负责加载类文件并...
Java 虚拟机的体系结构由多个子系统组成,包括类加载器子系统、执行引擎、数据区等。类加载器子系统负责加载程序中的类型(类和接口),并赋予唯一的名字。执行引擎负责执行被加载类中包含的指令。数据区中保存了...
Java虚拟机体系结构 Java虚拟机由三个主要组件组成:类加载器、运行时数据区和执行引擎。类加载器负责加载Java类文件并将其转换为Java虚拟机可以理解的格式;运行时数据区提供了一块内存空间,用于存储Java对象和类...
Java虚拟机 Java虚拟机体系结构 Java虚拟机的运行过程
六、Java虚拟机体系结构 JVM由指令集、寄存器、栈、垃圾回收堆和方法区域五个主要部分构成。指令集包含了约248个字节码指令,涵盖了基本的CPU运算,如算术操作、流程控制等。每个指令由一个操作码和零个或多个操作数...
本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行引擎等;第5-20章深入描述了java技术的内部细节,包括垃圾收集、java安全模型、java的连接模型和动态扩展机制、class文件、运算及...
Java虚拟机体系结构 Java虚拟机的体系结构主要由四个部分组成:子系统、内存区、数据类型和指令。这些组成部分一起展示了抽象的虚拟机的内部抽象体系结构。 Java Class文件 Java Class文件是Java虚拟机执行Java...
MiniJavaVM—个Java虚拟机的设计和实现 在本篇文章中,我们将详细介绍 MiniJavaVM 的设计和实现,包括其总体架构、功能、运行环境和开发工具,以及具体的实现步骤。 第一章绪论 Java 虚拟机(Java Virtual ...
Java虚拟机的体系结构主要包括以下几个部分: 1. **类加载子系统**(Class Loader Subsystem):负责将Java类加载到内存中,并对它们进行验证、解析和初始化。每个Java应用程序都有一个类加载器子系统,该子系统...
#### Java虚拟机体系结构 - **Java虚拟机的体系结构**: - **数据类型**:包括原始类型(如int、long等)和引用类型(如Object)。 - **字长**:通常为32位或64位,取决于JVM的具体实现。 - **类装载子系统**:...
综上所述,《深入Java虚拟机》这本书覆盖了Java体系结构、平台无关性、安全性、网络移动性以及JVM内部运作等多方面的内容,对于想要深入了解Java虚拟机及其工作机制的读者来说是非常有价值的参考资料。
#### Java虚拟机体系结构 Java虚拟机主要由以下几部分构成: - **指令集**:用于定义Java虚拟机能理解的操作命令。 - **寄存器**:用于存储临时数据。 - **栈**:用来存储线程私有的数据。 - **无用单元收集堆...
《Java虚拟机精讲》以极其精练的语句诠释了HotSpot VM 的方方面面,比如:字节码的编译原理、字节码的内部组成结构、通过源码的方式剖析HotSpot VM 的启动过程和初始化过程、Java 虚拟机的运行时内存、垃圾收集算法...
- **异常体系**:Java虚拟机支持异常处理机制,可以通过try-catch-finally语句来捕获和处理异常。 - **异常传播**:如果方法没有处理异常,则会将异常传递给调用者。 #### 九、指令集概览 - **类型与Java虚拟机**:...
Java虚拟机(JVM)是Java程序运行的核心,它的体系结构和内存模型是理解Java性能优化和内存管理的关键。在《深入Java虚拟机 (第二版)》这本书中,作者详细探讨了JVM的各个方面,帮助开发者提升代码效率和稳定性。 ...
JVM的体系结构包括类装载子系统和运行引擎,前者负责加载具有指定名称的类或接口,后者执行已加载类中的指令。JVM的内部结构分为五个主要部分:方法区、堆、Java栈、程序计数器和本地方法栈。方法区存储类信息,堆...
Java的诞生对软件产业产生了深远影响,它推动了分布式计算模式、基于构建的开发方法和多层应用体系结构,如CORBA和后来的Java 2平台与.NET平台的竞争。此外,Java促进了软件从开发中心向服务中心的转变,强调软件的...
### Java虚拟机与Java程序的生命周期 #### 一、Java虚拟机(JVM)概述 Java虚拟机(JVM)是一种可以执行Java字节码的虚拟机。它为Java应用程序提供了一个独立于硬件平台的运行环境,使得Java程序可以在任何安装了JVM...