没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
导读
我的第一份「正式」工作就是在太阳计算机(Sun Microsystems)台湾分公司
的教育训练中心从事讲师工作。在这之前,我除了当个管理学院的研究生之外,
闲暇之余还会到处兼职当顾问、接接 Project 写程序糊口。这本书很多最初始的
概念都源自于当时所服务的公司里头工程师所遇到的难题,或是自己使用 Jav
a
撰写应用程序的时候所遇到百思不解的问题。
承蒙洪志鹏总经理愿意收留我这样的人,到了 Sun 工作之后,利用内部网
路所看到的世界,竟然是一个我从没想过的天堂。我猜这是很多人愿意一开始就
到大型软件公司上班的最大原因。在 Sun 待了一阵子你就发现,Sun 跟 Microsoft 是
不一样的公司,由于两家企业所发迹的领域不太相同,导致 Sun 在设计软件 的
时候比较重视架构,尤其是应用在企业领域上的软件架构,您可以从两个地方 看
出来,第一个是 Java 的认证考试中,最高级的认证叫做 SCJA(架构师认证), 第二
个是市面上关于 Java 的书籍,排除入门书之后,许多重要的书籍都和
Design Pattern 有关系,比方说 J2EE Design Pattern、EJB Design Pattern, 关
于系统的书籍就少的可怜,讲 JVM 的书屈指可数,我手边讲述 Java 系统的 书
籍,我认为是好书的也只有两本。微软则刚好相反,微软重视系统更甚于架构,
您可以发现.NET 刚出来,就有一堆讲述 CLR(Common Language Runtime)
或.NET 内部运作的书籍,而讲述架构的书籍就少的多了。 很可惜的是,
我本身
就是一个系统的爱好者。最近这一年唯一让我觉得拍
案叫奇的好书,就只有 Jeffery Richter 所撰写的 Applied Microsoft.NET
Framework Programming,我就是喜欢 Applied Microsoft.NET Framework
Programming 这种书籍的读者。看完 Jeffery Richter 的书之后,最大的悔恨
就是
Java 出现了将近 7 年,可是却没有任何一本类似的书籍让我们更了解 JDK,
或是
Java 的运作原理。这本书就是在这种悔恨之下形成的,虽然不是很 厚,
但是里面
的每一篇都是我这几年来研究 Java 运作的心得。所以这里要感谢 Run!PC
的技术编
辑吕志敏先生,没有他每个月定期的催稿,我就没有办法定期
地整理我的心得,并将他们发表在杂志上,更没有办法在获得很多读者的响应之
后,重新整理这些内容成册,并适当地加以修订和整合。我希望喜欢系统的朋友
读完这本书之后,不再有跟我一样的悔恨,而且对 Java 这个将近 10 年前就有
的设计更具信心。
在 2002 年 JavaTwo 时,我用『数学家、物理学家、以及工程师的差别』
来介绍自己。数学家的心情套用在我的身上,就知道我是个非常懒惰的人,你可
能会以为我手边有 JDK 的原始码,所以我就会先花功夫去读懂 JDK 的原始码,
然后把结果告诉你。事实上并非如此,撰写这本书的时候,尤其是第五章
『package 与 import 机制』,因为我懒得去看 Java 编译程序的原始码,所以
我
采用的方式是归纳法。我先设计了很多其奇怪怪的 use case,然后对 Java
编译程序进行测试,利用所产生的结果来想象
Ja
v
a
编译程序的运作方式,最后归
纳
出属于我自己对 Java 编译程序运作方式的『理论』。最后我花一点点时间来阅读
始码,发现竟然和我的推论不谋而合,所以这一章大概是我自以为最有成就感
的一章。这种写作方式也让我发现,现代的科学家在探究我们所身处的世界时所
使
用的方法,竟然是如此地让人兴奋
:
。
记得有一次讲完一场研讨会之后,有个听众来问我:「王森先生,我们公司
用 Borland JBuilder 开发应用程序,可是遇到很多问题,比方说常常出现
Class Not Found 的错误讯息」。原来,JBuilder 虽然是一套 RAD 开发工具, 但
是他却不像其他如 Visual Basic、Delphi、Borland C++ Builder 一般好上手, 因为
它有其进入门坎。而这个进入门坎,来自于存在于 JBuilder 底部的 Java 2
SDK。如果对 Java 2 SDK 没有深入的了解,想要平顺地驾驭更高阶的开发工具
绝
对是一件很难的事情。我希望这本书带您跨过这个门坎。
这本书并未对 Java 程序语言做讨论,因为彷间这类的好书已经非常多了。
本书着眼于其他 Java 书即从来没有提到的议题。期望带给您真正对 Java 的『深 度
历险』,也希望众多 Java 爱好者对这本书的响应,可以支持我整理出更多有
趣的议题。
要感谢的人很多,很多我都在我先前的著作中提及了,我在心里默默的感激
他们。如果您认为这本书带给您很多新的知识,请您也跟我一同感谢这些我生命
Sun
M
i
cr
os
ystems
教育训练服务 技术顾问
王森 moli.wang@gmail.com
第一章
深入
Java
2
SDK
你越讨厌的事情,就越容易遇上
█前言
Sun Microsystems 所发表的 Java 开发工具 – Java 2 SDK,永远都是 Java
初 学 者 最 早 接 触 到 的 开 发 工 具 。
一 般 人 习 惯 称 这 套 工 具
叫 作
Development Kit)。
图
:Java
版本及开发工具的演进
JDK(Ja
v
a
P
P
e
e
r
r
s
s
o
o
n
n
a
a
l
l
J
J
a
a
v
v
a
a
1
1
.
.
0
0
P
P
e
e
r
r
s
s
o
o
n
n
a
a
l
l
J
J
a
a
v
v
a
a
1
1
.
.
1
1
P
P
e
e
r
r
s
s
o
o
n
n
a
a
l
l
J
J
a
a
v
v
a
a
1
1
.
.
2
2
OAK
E
E
m
m
b
b
e
e
d
d
d
d
e
e
d
d
J
J
a
a
v
v
a
a
JDK
是在
Ja
v
a
2
Platform
之前的
Ja
v
a
Platform
所使用的开发工具名称
(
在
本文中有时候会写 JDK,有时候会写 Java 2 SDK,但指的将是同一种东西),我 记
得曾经有人戏称它是 Java Developer Killer 的缩写,除了挖苦 Sun 所制作的 开
发工具没有微软设计的开发工具要来的方便之外,其实还说明了另外一件事,
就是 Java 从 1995 年发表后到现在,即使每一版的 JDK 都会附上为数庞大的官
方说明文件,从来没有任何一份文件或一本书籍详细说明这套官方开发工具的特
性。
没有文件或书籍来描述 JDK 的特性并不代表这些特性不重要。毕竟,任何最
新的标准类别函式库,或是最新版本的虚拟机,一定都会伴随着最新版的 JDK 所
释出。就算您想跳过 JDK,直接使用如 Borland JBuilder 或 Forte for Java 这
类的高级开发工具,JDK 仍然如影随形。以 Borland JBuilder 来说,当您将
Borland JBuilder 安装完成之后,在 JBuilder 的所在目录下也会内含一套 Java
1
Ja
v
a
P
l
at
f
o
rm(J
D
K
)
J
J
a
a
v
v
a
a
1
1
.
.
0
0
J
J
a
a
v
v
a
a
1
1
.
.
1
1
Jav
a
2
P
l
at
f
o
rm(
J
a
v
a
2
SD
K)
J
J
a
a
v
v
a
a
1
1
.
.
2
2
J
J
a
a
v
v
a
a
1
1
.
.
3
3
J
J
a
a
v
v
a
a
1
1
.
.
4
4
2 SDK
,如下图所示
:
图:Borland JBuilder 内附的 Java 2 SDK
因此,我们可以得知,不管您如何地讨厌
JD
K
,只要想开发
Ja
v
a
相关的应
用程序,您就无法逃离 JDK 的掌握。事实上,不管您开发的是 J2SE、J2EE、J2ME、 甚至
Java Card 的应用程序,除了需要各种版本对应的开发工具包之外,一定需
要 JDK 的辅助。
图:各种版本的 Java 应用程序,都需要 Java 2 SDK 的辅助
2
SDK
那么,
J
D
K
到底是什么东西
?
从技术的观点来说,
因为高阶开发工具都是
架设在 JDK 上头,因此高阶开发工具的行为或是引发的错误讯息都是根源
自 JDK。为了更正确地掌控高阶的 Java 开发工具,所以我们必须了解 JDK 的特
性 和组成。 从求知的观点来看,Java 程序设计师每天输入无数的 java
xxx.java
与 java xxx,到底 Java 程序是如何运作的? 在我们看不到的底层,到底发生了
什么
事情? 如果我们可以清楚地得知所有的来龙去脉,将会让我们更了解这套开
发工具。
上述两个观点,都是本章所希望告诉您的。让我们开始深入了解 JDK 吧!
█执行 java.exe 时所发生的怪事
当您在使用 JDK 时,您是否曾经发现执行 java.exe 的时候,会有底下一些
奇
怪的现象:
如果您安装的是 Java 2 SDK 1.3.x :
当您安装完 Java 2 SDK 1.3.x 之后,如果从未修改您计算机里头的任何设定
,
就直接进到命令提示字符下
,
执行
java
.
exe
,
就会出现底下画面
:
3
J2
EE
SDK
J
2ME
SDK
Ja
va
Card
J
2SE
(J
av
a
SDK
)
剩余175页未读,继续阅读
资源评论
- diamond1222013-12-18还不错,字很清晰,谢谢分享。
- copyerror2013-02-20这个版本的目录很清晰,内容是浅入+实例
qeedada
- 粉丝: 0
- 资源: 96
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功