java体系结构

本文参考《深入java虚拟机第二版》基于jdk1.2,由于书年代比较久远,可能有些东西不太一样,但不妨碍它的价值。

java体系结构包括四种技术:

1.java程序语言本身,也即语法等等。

2.java class文件格式,包括class文件的定义和存储的内容。

3.java api

4.java虚拟机 JVM

我们使用java来编写java程序调用为我们提供的api来操作系统的资源,当运行时先编译成class文件然后由虚拟机装载执行,因此我们编写java应用程序的过程,实际上同时用到了上面的四项技术。java虚拟机和java api一起组成了一个平台,被称为运行时系统,java的跨平台性就体现在这儿。

java虚拟机

java面向网络的核心就是java虚拟机,java虚拟机支持的三大特性:平台无关、安全、网络移动是java面向网络体系结构的三个主要方面。

java虚拟机规范定义了一台java虚拟机应该是什么样的,每个特性的具体实现由各个厂商来实现,并不会完全一样。现在主要的jvm虚拟机除了sun的还有ibm自己的,当然还有openjdk自己实现的jvm。

java虚拟机的主要任务是装载class并且执行其中的字节码。java虚拟机包含一个classloader,它从应用程序或者api中装载class文件,字节码的执行由执行引擎来负责。

执行引擎经历了几代的发展,从一次性解释到即时编译再到自适应化的解释器,jvm执行的速度越来越快。实际上是通过缓存经常被执行的代码块来实现速度上的一种增加,所以缓存的技术可以说是非常重要的,到处可见。

类装载器:

一个java应用程序可以使用三种类加载器(该书由于较早写的两种):启动类加载器,扩展类加载器和系统类加载器,其中最特殊的类加载器是启动类加载器,因为该类不是由java实现的,可能由c也可能由c++实现。其中用户可以实现自己定义的类加载器,通过运行时加载特定的类来完成动态的扩展。同时如果一个类被一个类加载器加载的时候,该类引用的其他类也会使用该类加载器加载。所以被装载的类默认的情况下只能看到被同一个类装载器装载的别的类。通过这种方法,java体系结构为每个类装载器都定义一个命名空间。

java class主要实现了平台的无关性和网络移动性,我们编写的源码都会被编译成class文件,可以在任何的平台运行,只要有jvm,网络移动性又从何说起,class文件被设计的非常及凑,因此可以快速的在网络上传输。其次,java程序师动态链接和动态扩展的,class文件只有在需要的时候才会下载,因此这可以使得java应用程序可以按需下载,分不同的时间下载。

时间: 2024-12-23 11:57:32

java体系结构的相关文章

深入Java虚拟机(1)——Java体系结构

Java体系结构 Java体系结构包括四个独立但相关的技术: 1.Java程序设计语言 2.Java class文件格式 3.Java应用编程接口(API) 4.Java虚拟机 当编写并运行一个Java程序时,就同时使用了这四种技术.用Java程序设计语言编写源代码,把它编译成Java class文件,然后在java虚拟机中运行class文件.当编写程序时,通过调用实现了Java应用编程接口(API)类中的方法来访问系统中资源如io.网络内存等.当程序运行的时候它可以调用class文件中的实现的

(1) 第一章 Java体系结构介绍

1.网络带来的挑战和机遇 (1).挑战一: 网络包含的设备越来越广泛, 硬件体系不同, 操作系统不同,用途不同. java解决办法: 通过创建与平台无关的程序来解决这个问题.一个java程序可以不需要修改就可以在很大范围内的机器和设备上运行. (2).挑战二:安全性 java解决办法:提供一个受保护的环境, 从网络上下载的程序可以以不同的定制安全级别运行 (3).挑战三:网络可移动性 java解决办法: java实现了对象移动的诺言---通过它的对象序列化API和RMI(远程方法调用).在jav

Java 体系结构

Java体系结构包括四个独立但相关的技术: 当编写并运行一个Java程序时,就同时体验了这四种技术.运行流程如下: Java虚拟机的主要任务是装载class文件并且执行其中的字节码.Java虚拟机包含一个类装载器(Class Loader),它可以从程序和API中装载class文件. 不同的Java虚拟机中,执行引擎可能实现得非常不同.在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码.另一种引擎执行更快,但是也更消耗内存,叫做“即使编译器”(just-in-time compiler

JAVA虚拟机:JAVA体系结构

JAVA体系结构:JAVA设计语言,JAVA Class文件,JAVA API,JAVA虚拟机. 一.java虚拟机: 1.java虚拟机的主要任务是装载class我呢间并且执行其中的字节码.java虚拟机包含一个类装载器,他可以从程序和API中装载class文件. JAVA API中只有程序执行时那些需要的类才能被装载.字节码由执行引擎来执行. Java虚拟机:1.一种简单的执行引擎,是一次性解释字节码.2.执行引擎很快,消耗内存,在这种情况下,第一次被执行的字节码会被翻译成本地机器代码, 编

《深入Java虚拟机学习笔记》- 第1章 Java体系结构

一.体系结构组成 当编写并运行一个Java程序时,就同时体验了这四种技术.用Java语言编写源代码,编译成Java Class文件,然后再在Java虚拟机上运行class文件.当编写程序时,通过调用类中的方法来访问系统资源.当程序运行的时候,它通过调用class文件中的方法来满足程序的Java API调用. Java程序设计语言 Java Class文件格式 Java应用编程接口 Java虚拟机 二.Java虚拟机 Java虚拟机的主要任务是装载class文件并执行其中的字节码.JVM包含一个类

《Java虚拟机精讲》读书笔记-第一章Java体系结构

本章主要讲解了java体系的结构,包括四个方面:java编程语言,字节码,Java API和java虚拟机四部分 并简单介绍了以上四部分,同时对java中的一些新特性进行了介绍,由于我阅读本书的时候java8已经发布,因此其中的一些说是要在后续版本实现的功能已经实现了,如lambda表达式,函数式编程等,最后介绍了OpenJdk的使用和编译 下面对一些看书之前不了解的概念进行学习 lambda表达式 什么是λ表达式 λ表达式本质上是一个匿名方法.让我们来看下面这个例子: public int a

一张图,理解JAVA体系结构、运行机制、JVN运行机制、Java平台(初学)

初学JAVA,学一门语言不仅仅是学其语法,逻辑思维能力,还有每一门语言都有自己独特的一方面,所以才有那么多语言要学啊 = =,所以想要真的学好语言,其编译机制,运行机制多少也要涉猎一些啊.这是初学JAVA一些机制的理解,如果有哪里不妥当,请指教.

JVM解毒——JVM与Java体系结构

你是否也遇到过这些问题? 运行线上系统突然卡死,系统无法访问,甚至直接OOM 想解决线上JVM GC问题,但却无从下手 新项目上线,对各种JVM参数设置一脸懵逼,直接默认,然后就JJ了 每次面试都要重新背一遍JVM的一些原理概念性东西 这段广告语写的好,趁着在家办公学习下JVM,先列出整体知识点 点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱 Java开发都知道JVM是Java虚拟机,上学时还用过的VM也叫虚拟机,先比较一波 虚拟机与Java虚拟

20145326蔡馨熠《Java程序设计》第一周学习总结

20145326蔡馨熠 <Java程序设计>第一周学习总结 教材学习内容总结 转眼间新的一学期终于开始了!为什么我这么期待呢?因为这学期可以上娄嘉鹏老师的java程序设计课,我不是什么电脑天才,之前c语言学得也不是特别好.可我就是对hdl和java特别感兴趣(之前在我的问卷调查报告里面提到过),并且寒假的时候在家里也预习了一部分java知识.第一周要求学习两个章节并作心得体会,虽然我早已看过前两章的知识,不过为了进一步巩固,我还是用了星期六一天的时间把第一章和第二章的知识从头到尾仔仔细细的看了