Java,是一种可以撰写
跨平台应用
软件的
-(zh-hans:面向对象;zh-hant:物件导向)-的
程序设计语言,由
升阳(Sun Microsystems)公司的
詹姆斯·高斯林(James Gosling)等人于
1990年代初开发。它最初被命名为Oak,目标设定在
家用电器等小型系统的
-(zh-hans:编程;zh-hant:程式设计)-语言,来解决诸如
电视机、
电话、
闹钟、
烤面包机等家用电器的控制和
通讯问题。由于这些
-(zh-hans:智能化;zh-hant:智慧型)-家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着
互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在
1995年5月以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
Java 编程语言的风格十分接近
C++语言。继承了 C++ 语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的
-(zh-hans:指针;zh-hant:指标)-(以
-(zh-hans:引用;zh-hant:参照)-取代)、
运算符重载(operator overloading)、
多重继承(以
-(zh-hans:接口;zh-hant:介面)-取代)等特性,增加了
垃圾回收器功能用于回收不再被引用的对象所占据的
内存空间。在 Java SE 1.5 版本中Java又引入了
泛型编程(Generic Programming)、
类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同於一般的
编译执行计算机语言和
解释执行计算机语言。它首先将源代码编译成
字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了 Java 程序的运行效率。但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。
与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与
微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的
.NET平台以及模仿Java的
C#语言。
早期的Java
Java平台和语言最开始只是升阳公司在
1990年12月开始研究的一个内部项目。升阳公司的一个叫做
帕特里克·诺顿的工程师被升阳自己开发的C++和
C语言编译器搞得焦头烂额,因为其中的
API极其难用。帕特里克决定改用
NeXT,同时他也获得了研究公司的一个叫做
“Stealth 计划”的项目的机会。
“Stealth 计划”后来改名为“
Green计划”,
詹姆斯·高斯林和
麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在
加利福尼亚州门罗帕克市
沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如
微波炉)的程序设计,
升阳公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C++语言,但是很多成员包括升阳的首席科学家
比尔·乔伊,发现C++和可用的API在某些方面存在很大问题。
工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C++太复杂以至很多开发者经常错误使用。他们发现C++缺少
垃圾回收系统,还有可移植的安全性、
分布程序设计、和
多线程功能。最后,他们想要一种易于移植到各种设备上的平台。
根据可用的资金,比尔·乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议升阳公司的工程师应该在C++的基础上,开发一种
面向对象的环境。最初,高斯林试图修改和扩展C++的功能,他自己称这种新语言为 C++ ++ --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“
Oak”(橡树),以他的办公室外的树而命名。
就像很多开发新技术的秘密的工程一样,工作小组没日没夜地工作到了
1992年的夏天,他们能够演示新平台的一部分了,包括Green
操作系统,Oak的程序设计语言,类库,和其硬件。最初的尝试是面向一种类
PDA设备,被命名为
Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。
1992年12月3日,这台设备进行了展示。
同年
11月,Green计划被转化成了“
FirstPerson有限公司”,一个升阳公司的全资子公司,团队也被重新安排到了
帕洛阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣,当
时代华纳发布了一个关于
电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应, 提出了一个机顶盒平台的提议。但是
有线电视业界觉得FirstPerson的平台给予用户过多地控制权,因此FirstPerson的投标败给了
SGI。与
3DO 公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司再并回升阳公司。
Java V.S. 「Java」
同年,Oak改名为
Java。
商标搜索显示,Oak已被一家显卡制造商注册,因此团队找到了一个新名字。这个名字是在很多成员常去的本地咖啡馆中杜撰出来的。名字是不是首字母缩写还不清楚,很大程度上来说不是。虽然有人声称是开发人员名字的组合:
James Gosling(詹姆斯·高斯林)+
Arthur
Van Hoff(阿瑟·凡·霍夫)+
Andy Bechtolsheim(安迪·贝克托克姆),或“
Just
Another
Vague
Acronym”(只是另外一个含糊的缩写)。还有一种比较可信的说法是这个名字是出于对咖啡的喜爱,所以以Java咖啡来命名。类文件的前四个
字节如果用
十六进制阅读的话,分别为CA FE BA BE, 就会拼出两个单词“CAFE BABE”(咖啡宝贝)。
Java V.S. 浏览器
1994年10月,
HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava
浏览器的第一次公开发布却是在
1995年3月23日SunWorld大会上进行的。升阳公司的科学指导
约翰·盖吉宣告Java技术。这个发布是与
网景公司的执行副总裁
马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。
1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。