深入JAVA虚拟机之java体系结构

为什么使用java

因为java的体系结构决定了它适合网络环境。它可以保证安全的、健壮的且和平台无关的程序通过网络传播,在很多不同的计算机和设备上运行。

网络带来的挑战和机遇

挑战:
1. 以网络为核心的硬件环境所包含的设备越来越广泛。不同的设备,不同的硬件体系,不同的操作系统
2. 安全性。包括网络安全和运行时安全(健壮性)。对于网络安全,java解决这个挑战的方法是:提供一个受保护的环境,从网络上系在的程序可以以不同的定制安全级别运行。对于程序健壮性由java体系结构做保证(如内存泄露)。

java的优点:
1. 平台无关性。
2. 安全性。
2. 网络移动性。通过对象序列化API和RMI(remote method invoke)来实现对象移动,为分布式系统编程创造了新模型。

体系结构

java体系结构包含四个独立但相关的技术:
1. java程序设计语言
2. java class文件格式
3. java应用编程接口(API)
4. java虚拟机

用java编程语言编写源代码,把它编译成java class文件,然后在java虚拟机中运行class文件。

java虚拟机

java虚拟机的主要任务是装载class文件(通过class loader)并且执行其中的字节码(由执行引擎来执行)。java API中的class只有程序执行时需要的那些类才会被装载。

执行引擎的几种实现方式
1. 一次性解释字节码。由虚拟机解释。
2. 即时编译器(just-in-time compiler)。这种情况下将字节码编译成本地机器代码,进行缓存,再次调用的时候可以重用。
3. 自适应优化器。将活动最频繁的代码编译成本地代码,不频繁的保留为字节码。
4. 内嵌在芯片里面的引擎,用本地方法执行java字节码。

访问特定主机上的资源
当java虚拟机是由主机操作系统上的软件时间的时候,java中有两种方法:
- java方法。由java语言编写,编译成字节码,存储在class文件中,与平台无关。
- 本地方法。由其他语言(C++或汇编)编写的,编译成和处理器相关的机器代码。保存在动态连接库中,格式由各个平台专有,故不是平台无关的。
在主机操作系统上由软件实现的java虚拟机

如果希望使用特定主机上的资源,他们又无法从java API访问,那么可以写一个平台相关的java程序来调用本地方法。如果希望保证程序的平台无关性,那么只能通过java API来访问底层的系统资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值