Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 [蔡学镛][Learning Java the O'Reilly's Way]14
pengtaoli



发贴: 0
积分: 0
于 2004-04-22 10:58 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
发信人: NullPointer (宁与骐骥亢轭,不随驽马之迹), 信区: Java
标 题: [蔡学镛][Learning Java the O'Reilly's Way]14
发信站: BBS 水木清华站 (Sun Jun 30 19:26:03 2002)

Learning Java the O'Reilly's Way (Part XIV)
Java Virtual Machine
Java是近年突然窜红的新星,「保全」、「跨平台」......,大家对它的诸多特色津津乐
道,但你可曾认真思考:是谁在 Java 的背后成就这些光彩的?

因为 Java 虚拟机器(Java Virtual Machine,简称 JVM)的屏障,所以 Java 程序可以
跨平台;因为 JVM 进行多项验证,所以 Java 具保全性。.... 原来,JVM 是成就 Java
的一大幕后功臣。

顾名思义,Java 虚拟机器是一部假想的计算机,也是 Java 技术的核心所在,所有的
Java 程序都是在这部假想的计算机上执行的。Java 虚拟机器可以以多种不同的形式存在
:以一般程序的方式存在,架构在 OS 之上,例如 java.exe;以操作系统的方式存在,
架构在硬件上,例如
Java OS;甚至直接以硬件的方式存在,例如 JavaChip(不过我认为以硬件的方式存在的
虚拟机器已经太「真实」,不适合叫做「虚拟」机器)。

本书读者群设定在熟悉 Java 语言并略懂 C/C++ 的程序员。本书的内容介绍性与教学性
兼而有之,某些部份还可以当成参考资料来查阅。本书是一本以「彻底解说」为导向的书
,书中有许多实用的信息以及 Java 虚拟机器程序范例。

本书是写来和 JVM 规格书作为互补之用的。JVM 规格书告诉我们细部的规则和语意,而
本书提供了更多说明与深入浅出的描述,并伴随着许多范例让你亲自尝试。比方说:本书
教你写出一个类别加载者(class loader)、透过假码(pseudo-code)的说明来揭露
instanceof
的运作细节、用 JVM 指令来写出一个 applet.... 等等。本书也舍弃一些内容不提,比
方说:IEEE 格式、类别验证者(class verifier)的动作方式.... 等。不过,这些资料
你分别可以在 O'Reilly 出版的《Java Language Reference》以及《Java
Security》等书上找到详细的资料。

本书的结构分为三部份:第一部份是机器概观,第二部份是指令指南,第三部份是参考资
料。如果你对 Java 虚拟机器不熟悉,你可能想把这本书拿到一个安静的地方,花些时间
仔细地读完前三章。稍后,你可以回来读完第一部份的其它章节。如果你需要熟悉 JVM
的指令集,第二部份包含了所有 JVM 指令的快速浏览,并佐以适当的范例。或者,如果
你需要查询某 Java 虚拟机器指令的操作细节,你可以到第三部份去看看,这部分以英文
字母顺序排列,查询相当方便。

本书的中文版正是我以前翻译的「细说Java虚拟机器」,已经绝版了,市面上不容易看到
。因为翻译此书的关系,我在 Java 虚拟机器花了不少功夫,也对 Java 有了更深入的认
识。除非你有实际的需要,或和我一样好奇地想更深入了解
Java,不然其实大部分的人并不需要阅读本书。本书可能的读者包括了﹕

· 教师:如果你正在教编译器(compiler)课程,你可能想用 Java 虚拟机器当学生习
作的平台,好处是可以让学生在各种不同的机器上完成这份习作。

· 业余爱好者:本书提供你一套工具,让你能在虚拟机器层级将 Java 操控于指掌间。


· 系统开发者:如果你正在开发一个 Java 执行时期系统(runtime system),或将
Java 移植到新的 平台,这本书能让你了解执行时期系统内如何分工合作。

· 程序员:透过本书与随书附赠的 Jasmin(茉莉)软件,你可以反组译类别、观察类
别的内部、甚至 可以用组译器来实作重要的类别和 method。或者,你也可以藉由本书来
了解 Java 的执行效率议题 并直接使用 JVM 建立应用软件。

· 语言实作者:如果你希望让 Java 虚拟机器也能执行某个你喜爱的程序语言,你打算
实作此语言的 JVM 版本,本书对你会很有帮助。

· 计算机安全高手:Sun 公司要求 Java 可以保护你免于受到来者不善的程序之捣乱。
本书帮助你能自行 控制这项权力。

本书以 Java 1.02 版为描述对象,而现在都已经跨过 Java 1.1,进入Java 2(JDK 1.2
)的时代了。虽然 Java 历经这些改版,JVM 指令集和 bytecode 的格式并未有任何变动
,所以本书依然适用于现今的 Java 2,也因此原作者似乎短期之内没打算改版。虽然
bytecode
的格式并未改变,但 Java 1.1 和 Java 2 以后的确是多出一些属性,包括了:「
InnerClasses」、「Synthetic」以及「Deprecated」,都是本书未涵盖的,如果你正在
实做 JVM 或 Java 编译器,请特别留心这部分。

本书提供许多范例﹐用来帮助读者了解 Java 虚拟机器。因为 JVM 规格书并未定义
Java 类别文件的文字格式(只有定义 Java 类别文件的字节格式),本书作者们开发了
一套自己的 Java 虚拟机器组译器,叫作 Jasmin(茉莉)。Jasmin 需要用文字来描述
Java
类别文件,以简单易读的语法撰写,Jasmin 将其转成合适的类别档。使用 Jasmin,可以
轻易地摸索出虚拟机器的原理。本书所有JVM 程序的范例都是由Jasmin 语法撰写。本书
参考资料的部份对 Jasmin 语法和底层的 bytecode 格式有更详细的描述。作者「原本」
免费提供
Jasmin,可以到 http://www.ora.com/catalog/books/javavm/ 下载 Jasmin。不过,不
知怎地,我发现 Jasmin 的网页已经消失了,所以无法下载。因为 Jasmin 的版权属于作
者而非 O'Reilly,所以现在如果你想取得 Jasmin,无法透过 O'Reilly,可能的方式有


· 买 O'Reilly 的《Java Virtiual Machine》一书,随书所赠的磁盘中就有 Jasmin。



· 或在欧莱礼台湾该书的网页 http://www.oreilly.com.tw/chinese/java/virtual.ht
m 下载。

· 写 email 求作者 Jon Meyer 发发慈悲,email 一份 Jasmin 给你。

什么!你要我直接 email 给你!不成,不成,未经同意散播有版权的软件是违法的。你
们不希望看到我坐牢吧!




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923