Java虚拟机规范(Java SE 8) 第一章:引言

目录

1.1、简史

1.2、Java虚拟机

1.3、各章节概要

1.4、说明

1.5、反馈


1.1、简史

Java语言是一门通用的、面向对象的、支持并发的程序语言。它的语法与C和C++语言非常相似,但隐藏了C和C++中许多复杂、深奥及不安全的语言特性。Java平台最初用于解决基于网络的消费类设备上的软件开发问题,它在设计上就考虑到要支持部署在不同架构的主机上,并且不同组件之间可以安全地交互。面对这些需求,编译出来的本地代码必须解决不同网络间的传输问题,并能够运行在各种客户端上,而且还要是客户端确信这些代码是安全的。

伴随着万维网的盛行发生了一些十分有趣的事情:Web浏览器允许数以百万级的用户共同在网上冲浪,以及通过很简单的方式访问丰富多样的内容。用户冲浪所使用的设备并不是其中的关键,它们仅仅是一种媒介,无论及其的性能如何,无论使用高速网络还是慢速的modem(调制解调器),用户总能看到并听到同样的内容。

Sun公司的HotJava浏览器是世界上第一款展现出Java语言某些有趣特性的浏览器,它允许把Java代码内嵌入HTML页面。显示HTML页面时,这些Java代码也会一并下载至浏览器中。而在浏览器获取这些代码之前,它们已经过严谨地检查以保证它们是安全的。与HTML语言一样,这些Java代码与网络和主机是完全无关的,无论代码来自哪里,在哪台机器上执行,它们执行时都能表现出一致的行为。

带有Java技术支持的网页浏览器将不再受限于它本身所提供的功能。浏览网页的用户可以放心地假定在他们机器上的动态内容不会损害其机器。软件开发人员编写一次代码,程序就可以运行在所有支持Java运行时环境的机器之上。

1.2、Java虚拟机

Java虚拟机是整个Java平台的基石,是Java技术用以实现硬件无关与操作系统无关的关键部分,是Java语言生成极小体积的编译代码的运行平台,是保障用户机器免于恶意代码损害的屏障。

Java虚拟机可以看做一台抽象的计算机。如同真实的计算机那样,它有自己的指令集以及各种运行时内存区域。使用虚拟机来实现一门程序设计语言是相当常见的,业界中流传最为久远的虚拟机可能就是UCSD Pascal的P-Code虚拟机。

第一个Java虚拟机的原型机是由Sun Microsystems公司实现的,它用在一种类似PDA(Personal Digital Assistant,俗称掌上电脑)的手持设备上,以仿真实现Java虚拟机指令集。时至今日,Oracle已将许多Java虚拟机实现应用于移动设备、台式机、服务器等领域。但Java虚拟机并不局限于特定的实现技术、主机硬件和操作系统。Java虚拟机也不局限于特定的代码执行方式,它虽然不强求使用解释器来执行程序,但是也可以通过把自己的指令集编译为实际CPU的指令来实现。它可以通过微代码(microcode)来实现,甚至可以直接在CPU中实现。

Java虚拟机与Java语言并没有必然的联系,它只与特定的二进制文件格式—class文件格式所关联。class文件包含了Java虚拟机指令集(或者称为字节码(bytecode))和符号表,以及其他一些辅助信息。

基于安全方面的考虑,Java虚拟机在class文件中施加了许多强制性的语法和结构化约束,凡是能用class文件正确表达出来的编程语言,都可以放在Java虚拟机里面执行。由于它是一个通用的、机器无关的执行平台,所以其他语言的实现者都可以考虑将Java虚拟机作为那些语言的交付媒介。

本书所说的Java虚拟机与Java SE 8平台相兼容,而且支持由本书所定义的Java编程语言。

1.3、各章节概要

  • 第2章概览Java虚拟机整体架构。
  • 第3章介绍如何将Java语言编写的程序转换为Java虚拟机指令集。
  • 第4章定义class文件格式。它是一种与硬件和操作系统无关的二进制格式,用来表示编译后的类和接口。
  • 第5章定义了Java虚拟机启动以及类和接口的加载、链接和初始化过程。
  • 第6章定义了Java虚拟机指令集,并按照这些指令的指令助记符的字母顺序来表示。
  • 第7章提供了一张以操作码值为索引的Java虚拟机操作码助记符表。

1.4、说明


1.5、反馈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值