`
johnsonyang
  • 浏览: 2410 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

2011年之JAVA虚拟机深入了解(一)

阅读更多

(一)JAVA体系结构

一、 java体系结构可以分四个部分,独立但技术相关:
   1、java程序设计语言
   2、java class文件格式
   3、java应用编程接口(API)
   4、java虚拟机

   我们在学习编程的最初期通常会编写一个HelloWorld的小程序,刚学习编程时并不会去想为什么要进行javac来编译成class文件,然后通过java来运行这个程序,现在可以搞明白java执行程序时为什么要有这么个过程,首先我们会写一段代码,比如:HelloWorld.java这个程序代码,我们通过调用javac 进行代码的解析,把这段JAVA代码翻译成java虚拟机能够识别的二进制代码,就是HelloWorld.class这个文件,然后通过java命令来执行这个二进制代码文件,其中我们会通过java应用编程接口来调用来访问系统资源(不如I/O的调用),实现了程序中的逻辑。可以根据下图(1-1)直观的认识:
   
  java虚拟机主要是负责class文件的加载并执行其中的字节码,它可以从程序以及API中装载class文件,其中API只有程序执行需要的类才会被装载。
   字节码由执行引擎来执行。由软件实现的执行引擎分为三种:1、一次性解释字节码,这个是最简单的执行引擎。2、第一次解释字节码的时候,会把解释出来的本地机器代码缓存在本地,在以后的执行中可以重用,当然这样就很耗费内存。3、按需把解释出来的字节码,监视程序的执行情况,将经常使用的缓存到本地,不常用的依然由虚拟机进行解释执行,这种虚拟机通常是内嵌在芯片当中。
二、 java有两种方法,一种是java程序中的方法,还有一种就是本地方法。
    java程序通过调用本地方法来访问系统资源。java方法与系统无关,与平台无关,但本地方法却不是。如下图可以看出java方法与本地方法的关系。

从图中可以看出,本地方法是连接java和主机底层服务的桥梁。(通过JNI来访问本地方法)
这样看视乎跟java的平台无关性相矛盾,所以java又提供了另一种方式与本地主机交互,就是通过javaAPI来访问主机资源,这样就实现了平台的无关性,当然有时为了安全也可以编写一个与平台相关的程序来访问特定主机上的内容。
三、类装载器体系结构
    java的类装载器分为两种:启动类装载器和用户定义的类装载器
    启动类装载器是java虚拟机实现的一部分,如果一个java虚拟机在已有操作系统上实现为C语言,则启动类加载器就会是C语言的一部分,启动类加载器通常是使用某种默认的方式从本地机器上加载类以及javaAPI要使用的类。
    用户自定类装载器,是运行在java可执行代码中的一部分,可以被实例化。
   

  • 大小: 68.3 KB
  • 大小: 27.3 KB
  • 大小: 24 KB
分享到:
评论

相关推荐

    Java虚拟机规范 JavaSE7

    《Java虚拟机规范(JavaSE7版)》为想要了解Java虚拟机原理的程序员提供了必须的参考资料。它不仅仅是一份文档,更是为了确保不同厂商实现的Java虚拟机能够在统一的外部接口上进行交互和通信的契约。虽然规范中的...

    Java虚拟机规范(中文版).pdf

    自1999年《Java虚拟机规范(第二版)》发布以来,尽管JDK在版本5时进行了重大更新,但直到2011年7月,《Java虚拟机规范(JavaSE7版)》才正式发布。这标志着JVM技术的持续演进和标准化进程的重要里程碑。随着时间...

    Java虚拟机规范(英文)

    《Java虚拟机规范》是Java技术核心文档之一,它详细定义了Java虚拟机(JVM)的内部工作原理和执行模型。在给出的文件信息中,包含了这部规范的标题、描述和部分内容摘要。下面将详细解释其中的知识点。 标题《Java...

    Java虚拟机规范(SE 7中文版)

    《Java虚拟机规范(JavaSE7版)》是程序员深入了解Java语言运行机制不可或缺的文档。它不是特定虚拟机实现的说明书,而是一份确保不同公司实现的Java虚拟机具有一致外部接口的契约文档。这份文档是Java程序员的基础...

    Java虚拟机规范(Java_SE_7).pdf中文版

    该规范对于想深入了解Java语言细节的程序员而言,是一本必读之物,尽管如此,长达十余年的规范一直没有中文译本,这使得不少对Java虚拟机感兴趣但英语能力较弱的中国程序员难以深入学习。 幸运的是,2011年初,当...

    Java虚拟机规范pdf

    《Java虚拟机规范(JavaSE7版)》是JVM规范的一个版本,它在2011年发布,是对原有规范的更新与扩展。该规范不仅为不同厂商实现的Java虚拟机提供了统一的外部接口,而且在持续的技术发展下,也逐渐与实际的高性能...

    Java虚拟机规范(Java SE 7)

    《Java虚拟机规范(Java SE 7版)》是一部重要的技术文献,对于想要深入了解Java虚拟机(JVM)内部机制的开发者而言至关重要。这本书不仅详细介绍了Java虚拟机的设计原则和技术细节,还提供了关于如何编写高效、可...

    Java7虚拟机规范中文

    对于希望深入了解Java虚拟机内部机制的开发者而言,《Java虚拟机规范》是一本必不可少的参考书。它可以帮助开发者更好地理解Java程序的行为,尤其是在遇到一些非直观的现象时,能够从JVM的角度出发找到问题的原因。...

    Java虚拟机特性JAVA SE 7.pdf-中文完整书签文字版

    《Java虚拟机特性JAVA SE 7.pdf》为Java开发者提供了一个深入理解Java虚拟机工作原理的机会。通过学习本书,开发者不仅能够更好地理解Java程序是如何在不同平台上运行的,还能够掌握如何优化Java应用程序的性能。...

    java和java虚拟机发展史思维导图

    Java和Java虚拟机(JVM)的发展历程是一个充满创新和技术进步的故事,它们共同塑造了现代软件开发的格局。本文将深入探讨这两个核心概念的历史、重要里程碑以及对编程界的影响。 Java语言自1995年发布以来,已经...

    Java虚拟机规范(Java+SE+7)

    - **翻译背景**:由于缺乏中文版的《Java虚拟机规范》,许多对Java虚拟机感兴趣的国内开发者因为英语水平有限而无法深入了解这一领域。为了解决这个问题,几位热心的译者共同努力完成了《Java虚拟机规范(Java SE 7...

    Java虚拟机规范(中文版) Java SE 7

    《Java虚拟机规范(Java SE 7版)》是Java虚拟机领域的权威文档之一,它为Java虚拟机的设计提供了一个标准,确保了不同公司开发的Java虚拟机能够保持一致的行为。这份文档不仅对Java虚拟机的基本原理进行了详尽的...

Global site tag (gtag.js) - Google Analytics