Java虚拟机深入理解,虚拟机深入理解
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
代码签名和认证
网络移动性
相关文章
- 暂无相关文章
用户点评