`
碧海山城
  • 浏览: 189917 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java虚拟机

阅读更多

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
分享到:
评论
4 楼 碧海山城 2009-02-16  
我也只是读了1到8章,后面从第10章开始就是对执行引擎的指令集的说明手册,倒是觉得没什么必要看了
3 楼 yuan 2009-02-16  
这本书读完1~5章,第7章浏览过一些,没敢再读下去。说实话我觉得曹翻译的有点生硬 ,但也可能是因为我不理解一些太专业的术语吧,有时候我得上google查半天。我还是把深入理解计算机系统看完再回头读这本书吧。
2 楼 碧海山城 2009-02-16  
额,这个东西有用的好吧,忽悠只是其中一种
1 楼 wolfbrood 2009-02-15  
很牛的一本书,很喜欢。自从看了它我的忽悠能力大大提高

相关推荐

    java虚拟机规范高清中文版本(java SE 8版本)

    第1章 :简单地介绍了Java虚拟机的历史并吹捧了←_← 一下Java的平台无关性(一次编译,到处运行); 第2章:概览Java虚拟机整体架构; 第3章:介绍如何将Java语言编写的程序转换为虚拟机指令集; 第4章:定义...

    自己动手写Java虚拟机 (Java核心技术系列)@

    本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

    《深入Java虚拟机(原书第2版)》,原书名《Inside the Java Virtual Machine,Second Edition》,作者:【美】Bill Venners,翻译:曹晓钢、蒋靖,出版社:机械工业出版社,ISBN:7111128052,出版日期:2003 年 9 ...

    深入理解 java 虚拟机

    java 虚拟机

    java虚拟机规范(java SE7)

    java虚拟机规范,高清PDF版本,含有目录结构:第一章:引言; 第二章:java虚拟结构(运行时区域内存:寄存器,java虚拟机栈,java堆,方法去,运行时常量池,本地方法栈); 第三章:为java虚拟机编译; 第四章:...

    java虚拟机规范(java se 7)

    《Java虚拟机规范 7》是一份完整的描述Java虚拟机是如何设计的规范文档。这份文档对于任何一个希望实现Java虚拟机的编译器作者,或者希望实现一个与规范相兼容的Java虚拟机的程序员来说都是必不可少的。

    Java虚拟机规范.Java SE 8版.zip

    《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...

    自己动手写Java虚拟机 kindle 版本

    本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对...

    深入java虚拟机.pdf

    深入java虚拟机.pdf

    Java虚拟机规范.Java SE 8版

    《Java核心技术系列:Java虚拟机规范(Java SE 8版)》由Oracle官方发布,Java虚拟机技术创建人撰写,国内资深Java技术专家翻译。书中基于全新Java SE 8,完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和...

    Java虚拟机规范(第8版).pdf

    本书完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。...

    Java虚拟机(第二版)

    一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这...

    深入java虚拟机第二版

    java虚拟机不用多少了吧。 深入java虚拟机第二版.pdf

    【带书签】Java虚拟机规范(Java SE 7).pdf

    《Java虚拟机规范(Java SE 7版)》是Java领域最重要和最权威的著作之一,由Oracle官方发布,基于Java SE 7,对最新的Java虚拟机规范进行了完整且详细的讲解,是深度了解Java虚拟机实现细节的必读之作。由国内几位资深...

    深入JAVA虚拟机 随书源码 JVM规范

    不废话Java 虚拟机入门黄金搭档。JVM规范+深入JAVA虚拟机(附带源码)。

    Java虚拟机规范 Java SE 8版-带目录-pdf

    Java虚拟机规范 Java SE 8版-带目录-pdf,本书完整而准确地阐释了Java虚拟机各方面的细节,围绕Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析...

    实战Java虚拟机.pdf_java_

    随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java...《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。

    Java虚拟机规范中文版

    对于想了解Java虚拟机的程序员来说,《Java虚拟机规范》是必须阅读的,对于想深入了解Java语言细节的程序员,阅读《Java虚拟机规范》也有极大好处,但是《Java虚拟机规范》、《Java语言规范》发布十余年,一直没有...

Global site tag (gtag.js) - Google Analytics