Java虚拟机深入理解

java体系结构包括4个独立但相关的技术:

java程序设计语言
java class文件格式
java应用编程接口(API)
java虚拟机

平台无关性,安全性和网络移动性

java虚拟机的主要任务是装载class文件并且执行其中的字节码

类装载器——-执行引擎

java方法和本地方法
java方法:由java语言编写,编译成字节码,存储在class文件中
本地方法是由其他语言编写的,编译成和处理器相关的机器代码

类装载器的体系结构

一个java应用程序可以使用两种类装载器:
启动类装载器 和
用户定义的类装载器

java class文件
为java程序提供独立于底层主机平台的二进制形式的服务,
这正是java虚拟机所期望实现的。

java API是运行库的集合,它提供一套访问主机系统资源的标准方法。

面向对象、多线程、结构化错误处理、垃圾收集、动态连接、动态扩展

优点,提高开发者的效率;
缺点,执行速度较慢

第2章 平台无关

通过确保基本数据类型在所有平台上的一致性,java语言本身为java程序的平台无关性提供了
强有力的支持

已有了可用的java平台实现和发布版本。

1不要依赖及时终结来达到程序的正确性
2不要依赖线程的优先级来达到程序的正确性

平台无关的七个步骤

1选择程序要运行的主机和设备的集合(“目标宿主机”)
2在目标宿主机中选择自认为足够好的java平台版本,在该版本java平台上编写、运行程序
3对于每个目标宿主机,选择一些程序将要运行的java平台实现(“目标运行时环境”)
4编写程序,使它只通过java API的标准运行库来访问计算机(不要调用本地方法,或开发商专有的
那些调用本地方法的库)
5编写程序,使它不依赖垃圾收集器及时终结的正确性,也不依赖线程的优先级
6努力设计一个用户界面,使它在你所有的目标宿主机上都能正常工作
7在所有的目标运行时环境和所有的目标宿主机上测试程序

第3章 安全

java提供了一个用户可配置的“沙箱”,在沙箱中可以放置不可靠的java程序

限制对本地硬盘的读写操作
进行任何网络连接,但不能连接到提供这个applet的源主机
创建新的进程
装载新的动态连接库

基本沙箱

组成沙箱的基本结构如下:
类装载器结构
class文件检验器
内置于java虚拟机(及语言)的安全特性
安全管理器及java API

类装载器体系结构在三个方面对java沙箱起作用:

1它防止恶意代码去干涉善意的代码
2它守护了被信任的类库的边界
3它将代码归入某类,该类确定了代码可以进行哪些操作

启动类装载器
标准扩展类装载器
类路径类装载器
网络类装载器

class文件检验器

第一趟:class文件的结构检查

第二趟:类型数据的语义检查

第三趟:字节码验证

第四趟:符号引用的验证

类型安全的引用转换
结构化的内存访问
自动垃圾收集
数组边界检查
空引用检查

安全管理器和java API

代码签名和认证

网络移动性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值