PS:貌似现在学这种东西的人没多少了,都在研究SSH,《深入Java虚拟机》是一本好书,但是文字实在太多,所以提取了精简的部分
在Java虚拟机规范中,一个虚拟机实例的行为是分别按照子系统、内存区、数据类型以及指令几个术语来描述的。
1. 子系统(类装载在子系统)
在Java虚拟机中,负责查找并装载类型的那部分被成为类装载子系统。Java虚拟机由两种类装载器:启动类装载器和用户自定义装载器。对于每个被装载的类型,Java虚拟机都会为它创建一个java.lang.Class类的实例来代表该类型。
类装载子系统除了要定位和导入二进制class文件以外,还必须负责验证被导入的正确性、为变量分配并初始化内存,以及帮助解析符号引用。这些动作必须严格按照一下顺序执行:
1) 装载 --------查找并装载类型的二进制数据
2) 连接 --------执行验证,准备、以及解析
3) 初始化 --------把变量初始化为正确初始值
详细请看:类(型)的生命周期--装载、连接、初始化、卸载
2. 内存区(运行时数据区)
当Java虚拟机运行时,它需要内存来存取很多东西。例如,字节码,从已经装载的class文件中得到的其他信息,程序创建的对象,传递给方法的参数,返回值,局部变量,已经运算的中间结果等。Java虚拟机把这些数据都组织到几个“运行时数据区”,以便于管理。
某些运行时数据区是由程序中所有线程共享的,还有一些则是只能有一个线程拥有。每个Java虚拟机实例都有一个方法区以及一个堆,它们是由该虚拟机实例中所有线程共享的。当虚拟机装载一个class文件时,它会从这个class文件包含的二进制数据中解析类型信息。然后,它把这些是类型信息放到方法区中。当程序运行时,虚拟机会把所有该程序在运行时创建的对象都放到堆中。
当每一个新线程创建时,它都将得到它自己的PC寄存器(程序计数器)以及一个Java栈。如果线程正在执行的是一个Java方法,那么PC寄存器的值将总是只是下一条将被执行的指令,而它的Java栈则总是存储该线程中Java方法的调用状态----包括它的局部变量,被调用时传进来的参数,它的返回值,以及运算的中间结果等。
详细请看:运行时数据区
3. 数据类型
数据类型可以分为两种:基本类型和引用类型。基本类型的变量持有原始值,引用类型的变量持有引用值。
Java虚拟机中还有一个只在内部使用的基本类型:returnAddress,这个基本类型被用来实现Java程序中的finally子句。
引用类型被统称为“引用”,有三种引用类型:类类型,接口类型,以及数组类型,它们的值都是对动态创建对象的引用。
- 大小: 39.5 KB
- 大小: 27.5 KB
分享到:
- 2009-02-14 13:20
- 浏览 1472
- 评论(4)
- 论坛回复 / 浏览 (4 / 4047)
- 查看更多
相关推荐
深入 Java 虚拟机.pdf Java 虚拟机(Java Virtual Machine,JVM)是 Java 语言的 runtime 环境,是 Java 程序执行的核心组件。它提供了一个平台无关的环境,允许 Java 程序在不同的操作系统和硬件平台上运行。 一...
《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...
Java虚拟机规范 Java SE 8版-带目录-pdf,本书完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析...
第1章 :简单地介绍了Java虚拟机的历史并吹捧了←_← 一下Java的平台无关性(一次编译,到处运行); 第2章:概览Java虚拟机整体架构; 第3章:介绍如何将Java语言编写的程序转换为虚拟机指令集; 第4章:定义...
本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对...
Java虚拟机(JVM)是Java编程语言的核心组成部分,它是一种抽象的计算设备,能够运行Java字节码。Java虚拟机规范(Java SE 7版)是定义JVM行为的官方文档,确保所有Java平台的实现遵循相同的规则,以提供跨平台的...
Java虚拟机(JVM)是Java程序运行的基础,它负责执行Java字节码,提供了一个与平台无关的执行环境。JVM规范定义了JVM的结构、指令集和运行时数据区,以及如何执行指令和处理异常。自1999年以来,JVM规范经历了多次...
### Java虚拟机规范(JVM)概览 #### 核心概念与重要性 《Java虚拟机规范(JavaSE7版)》是理解Java虚拟机(JVM)运作机制的基石,由Tim Lindholm、Frank Yellin、Gilad Bracha和Alex Buckley等人撰写,后由周志明、...
Java虚拟机(JVM)是实现Java技术的关键组件,它为Java程序提供了一个运行环境。Java程序在编写后会被编译成一种称为字节码的中间表示形式,这种字节码可以跨平台运行,因为JVM负责将字节码转换成机器代码。JVM的...
《深入Java虚拟机(原书第2版)》,原书名《Inside the Java Virtual Machine,Second Edition》,作者:【美】Bill Venners,翻译:曹晓钢、蒋靖,出版社:机械工业出版社,ISBN:7111128052,出版日期:2003 年 9 ...
Java虚拟机(Java Virtual Machine,简称JVM)是Java编程语言的核心组成部分,它是一个用于执行Java字节码的软件或硬件设备。Java程序在编译时并不直接转化为机器语言,而是转化为中间代码,即字节码。JVM的作用就是...
Java虚拟机(JVM)是Java编程语言的核心组成部分,它为Java程序提供了跨平台的运行环境。Java程序在编写完成后,会被编译成字节码(.class文件),这些字节码可以在任何装有JVM的系统上运行,实现了“一次编写,到处...
java虚拟机规范,高清PDF版本,含有目录结构:第一章:引言; 第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:...
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...
MiniJavaVM—个Java虚拟机的设计和实现 在本篇文章中,我们将详细介绍 MiniJavaVM 的设计和实现,包括其总体架构、功能、运行环境和开发工具,以及具体的实现步骤。 第一章绪论 Java 虚拟机(Java Virtual ...
《深入Java虚拟机》这本书是Java开发者深入了解JVM(Java Virtual Machine)的必备经典之作。它详尽地探讨了Java虚拟机的工作原理、内存管理、类加载机制、字节码执行以及性能优化等多个核心主题,旨在帮助开发者...