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应用程序可以按需下载,分不同的时间下载。






Java体系结构特性主要包括跨平台性、安全性、简单性和可移植性。 首先是跨平台性,即Java程序可以在不同的操作系统上运行。这是因为Java程序在编译时会被转换成字节码而不是机器码,而字节码可以由Java虚拟机(JVM)来解释执行。不同的操作系统只需要安装相应的JVM即可运行相同的Java程序,极大地提高了程序的可移植性。 其次是安全性,Java引入了一系列安全机制来保护计算机和网络的安全。Java的安全性主要通过字节码校验、安全沙箱和安全管理器来实现。字节码校验可以检查Java程序的合法性,以防止恶意代码的执行;安全沙箱可以限制Java程序对计算机资源的访问,确保程序不能越权操作;安全管理器可以定义安全策略,对程序的访问进行控制。 再次是简单性,Java的设计目标之一就是简单易学。Java的语法相对简单,去除了C++中复杂的特性,同时提供了垃圾回收和自动内存管理等功能,减轻了程序员的工作负担。Java还提供了丰富的类库,使得开发人员能够更加便捷地编写代码。 最后是可移植性,即Java程序可以在不同的硬件和操作系统上运行。通过Java虚拟机的存在,Java程序不需要针对特定的硬件和操作系统进行优化和适配,使得程序的移植性非常好,减少了开发人员的工作量。 综上所述,Java体系结构特性的跨平台性、安全性、简单性和可移植性使得Java成为一种广泛应用于各种领域的编程语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值