Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目。SUN公司的一个叫做帕特里克·诺顿的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。
??“Stealth 计划”后来改名为“Green计划”,JGosling(詹姆斯·高斯林)和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,SUN公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C 语言,但是很多成员包括SUN的首席科学家比尔·乔伊,发现C 和可用的API在某些方面存在很大问题。
??工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C 太复杂以至很多开发者经常错误使用。他们发现C 缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
??根据可用的资金,比尔·乔伊决定开发一种集C语言和Mesa语言搭成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议SUN公司的工程师应该在C 的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C 的功能,他自己称这种新语言为C –,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的树而命名。
就像很多开发新技术的秘密的工程一样,工作小组没日没夜地工作到了1992年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,类库,和其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。
同年11月,Green计划被转化成了“FirstPerson有限公司”,一个SUN公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回SUN公司。
直至 1994年下半年,由于Internet的迅猛发展和环球信息网的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。但没有相应的开发库而只靠Java语言来进行开发肯定是困难重重,所以Sun公司在1996年的1月23日发布了JDK 1.0来帮助开发人员的开发。JDK包括两大部分:运行环境和开发工具。紧跟着,Sun公司在1997年2月18日发布了JDK 1.1。JDK1.1相对于旧版本最大的改进,是推出了JIT(Just-In-Time)编译器,另外一个改进是AWT 1.1。
JAVA名称的由来
虽然有人声称Java是开发人员名字的组合:James Gosling(詹姆斯·高斯林)Arthur Van Hoff(阿瑟·凡·霍夫)Andy Bechtolsheim(安迪·贝克托克姆),或“Just Another Vague Acronym”(只是另外一个含糊的缩写)。还有一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java咖啡来命名。类文件的前四个字节如果用十六进制阅读的话,分别为CA FE BA BE,就会拼出两个单词“CAFE BABE”(咖啡宝贝)。
1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年5月23日SunWorld大会上进行的。SUN公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。
JAVA程序的执行流程
JAVA 的运行机制就是把 JAVA 源代码编译成适合本地平台运行的代码的过程。首先,编写 Java 源程序,然后由 Java 编译器将 Java 源程序编译为可执行的类文件,再通过 JVM 虚拟机将类文件转换为符合当前平台特征的代码, 再由 Runtime Envionment(解释器)解释运行. 在一台机器上用 JAVA 编写并翻译的程序不需要重新翻译就可以在另一台机器上得到执行。JAVA 源程序可以用任何编辑程序进行编辑,然后以纯文本方式储存在文件中,文件必须以 JAVA 作为后缀。
Java虚拟机(JVM)就是将类文件转换成不同平台上应用的JAVA程序的解释设备。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。在我们看来,Java虚拟机是为了使类文件能在不同的平台上运行的Java字节码解释程序,Java虚拟机有很多种,比如说能够应用在windows,linux,unix等的操作平台,我们可以通过虚拟机来实现”一处编写,处处运行”JVM是一种虚拟机,从结构上看它与实际的计算机相似,它的作用是使得一台实际机器能够运行 JAVA 字节码程序。JAVA字节码是JAVA源程序编译后的程序,它不能被计算机直接执行,但它可以被所有的JAVA虚拟机执行。这就是JAVA字节码程序可以在网络上移植的原因。
.