1、Java,是一种可以撰寫跨平台应用软件的面向对象的程序设计语言,由 Sun公司的 詹姆斯高斯林(James Gosling)等人于 1990年代初开发。它最初被命名为 Oak,目標設定在家用电器等小型系統的编程语言,來解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在 Oak几近失敗之时,随着互聯網的发展,Sun看到了 Oak在计算机网络上的广阔应用前景,于是改造了 Oak,在 1995年 5月以“Java”的名称正式发布了。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风
2、格十分接近 C+语言。继承了 C+ 语言面向对象技术的核心,Java 舍弃了 C+语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在 Java SE 1.5版本中 Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装拆箱等语言特性。Java不同於一般的编译執行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、
3、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了 Java程序的运行效率。但在 J2SE1.4.2发布后,Java 的執行速度有了大幅提升。与传统程序不同 Sun公司在推出 Java之际就将其作为一种开放的技术。全球数以万计的 Java开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun公司对 Java编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。J
4、ava平台是基于 Java语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET 平台以及模仿 Java的 C#语言。目录隐藏 1 历史 o 1.1 早期的 Java o 1.2 Java和互联网 o 1.3 Java和Java o 1.4 Java和浏览器 o 1.5 Java近况 o 1.6 Java開放原始碼項目 o 1.7 版本历史(时间表) 2 语言特性 o 2.1 面向对象 3 用途 o 3.1 桌面应用 o 3.2 移动设备 o 3.3 网络服务器和企业级应用 o 3.4 跨平台性 o 3.5 自动垃圾回收(Garbage Collection) o 3.6 接
5、口和类別 4 Java 5.0的特性 o 4.1 自動裝箱拆箱 (Auto-Boxing/Unboxing) o 4.2 泛型 (Generic Types) o 4.3 註釋 (Annotation) o 4.4 枚举类型 (enum) o 4.5 输入输出 o 4.6 应用程序开发接口 o 4.7 Hello World o 4.8 国际化 o 4.9 其它 5 深入 JAVA o 5.1 数据类型 o 5.2 JAVA关键字 6 關於 Java的批評 o 6.1 語言問題 o 6.2 類庫問題 o 6.3 性能問題 7 Java运行时环境 8 扩展和相关架构 9 参见 10 参考文献 o
6、 10.1 技术开发 o 10.2 集成开发环境 IDE o 10.3 一般应用 o 10.4 Java历史 o 10.5 Java评论 11 注釋 编辑 历史编辑 早期的 JavaOak语言的吉祥物,和语言最开始只是太阳微系统(Sun MicroSystems)公司在 1990年 12月开始研究的一个内部项目。太阳微系统公司的一个叫做 帕特里克诺顿的工程师被公司自己开发的 C+和 C语言编译器搞得焦头烂额,因为其中的 API极其难用。帕特里克决定改用 NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。“Stealth计划”后来改名为“Green 计划”, 詹姆斯高
7、斯林和麦克舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室裡面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,升阳公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C+语言,但是很多成员包括升阳的首席科学家 比尔乔伊,发现C+和可用的 API在某些方面存在很大问题。工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现 C+太复杂以至很多开发者经常错误使用。他们发现 C+缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,比尔乔伊决定开发
8、一种集 C语言和 Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议升阳公司的工程师应该在 C+的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展 C+的功能,他自己称这种新语言为 C+ + -,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。就像很多开发新技术的秘密工程一样,工作小组没日没夜地工作到了 1992年的夏天,他们能够演示新平台的一部分了,包括 Green操作系统,Oak 的程序设计语言,类库及其硬件。最初的尝试是面向一种类 PDA设备,被命名为 Star7,这种设备有鲜艳的图形界面和被称为“Duke
9、”的智能代理来帮助用户。 1992年 12月 3日,这台设备进行了展示。同年 11月,Green 计划被转化成了“FirstPerson 有限公司”,一个升阳公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson 改变了他们的目标,作为对征求意见书的响应, 提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此 FirstPerson的投标败给了 SGI。与 3DO公司的另外一笔
10、关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司被并回升阳公司。编辑 Java 和互联网1994年 6月、 7月间,在经历了一场历时三天的脑力激盪的讨论后,约翰盖吉、 詹姆斯高斯林、 比尔乔伊、 帕特里克诺顿、韦恩罗斯因和 埃里克斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着 Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型, 帕特里克诺顿写了一个小型万维网浏览器,WebRunner,后来改名为 HotJava。编辑 Java 和Java由于商标搜索显示,Oak 已
11、被一家显卡制造商注册。于是同年,Oak被改名为 Java。当使用十六进制编辑器打开由 Java源代码编译出的二进制文件(.class 文件)的话,最前面的 32位将显示为 CA FE BA BE,即词组“CAFE BABE”(咖啡屋宝贝)。编辑 Java 和浏览器1994年 10月,HotJava 和 Java平台为公司高层进行演示。1994 年,Java 1.0a版本已经可以提供下載,但是 Java和 HotJava浏览器的第一次公开发布却是在 1995年 3月 23日 SunWorld大会上进行的。升阳公司的科学指导 约翰盖吉宣告 Java技术。这个发布是与网景公司的执行副总裁 马克安德森
12、的惊人发布一起进行的,宣布网景将在其浏览器中包含对 Java的支持。 1996年 1月,升阳公司成立了 Java业务集团,专门开发 Java技术。编辑 Java 近况在流行几年之后,Java 在浏览器中的地位被逐步侵蚀。它在简单交互性动画方面的用途已经完全被 Adobe公司的 Flash排挤, 2005年Java倾向只被用于雅虎游戏那样的更为复杂的应用程序。Java 同时遭受到来自微软的反对,他们决定在新版本的 Internet Explorer和 Windows中不再附带 Java平台。与此相反。在万维网的服务器端和手持设备上,Java 变得更加流行。很多网站在後端使用 JSP和其他的 Ja
13、va技术。在桌面系统上,独立的 Java程序还是相对少见,这是因为 Java平台的运行开销较大,而许多人的电脑上没有安装 Java,由于网络带宽在以前较小,下载 Java曾经是个耗时的事情。但是随着计算机计算能力、网络带宽在 10年中取得了很大的进步,同时虚拟机和编译器的质量得到了提高,许多应用程序得到了广泛的使用,包括:开源软件: NetBeans和 Eclipse等軟件開發工具 JEdit Azureus BitTorrent客户端。 JNode操作系统 Apache軟件基金會的 Ant、Derby、Hadoop、Jakarta、POI 和Tomcat JBoss和 GlassFish應用
14、服務器 商用軟體: EIOffice(永中 Office) 纯 Java 3D游戏合金战士 Chrome IBM Websphere、ColdFusion 和 WebLogic 还有许多用 Java写的软件,可以在 http:/ 找到。 在以下网页可以看到非常多用 Java写的程序: http:/ 下面有大量用 Java Swing开发的桌面 Java程序 http:/ 目前 Java提供以下三个版本: Java Platform, Enterprise Edition( Java EE: Java平台企业版) Java Platform, Standard Edition( Java SE:
15、 Java平台标准版) Java Platform, Micro Edition( Java ME: Java平台微型版)编辑 Java 開放原始碼項目2006年昇陽在 JavaOne公佈 Java 開放原始碼項目,並推出OpenJDK計畫。 2 Java虛擬機、Java 編譯器和 Java類庫以 GNU通用公共許可證公開。编辑 版本历史(时间表) 1995年 5月 23日,Java 语言诞生 1996年 1月,第一个 JDK-JDK1.0诞生 1996年 4月,10 个最主要的操作系统供应商申明将在其产品中嵌入 JAVA技术 1996年 9月,约 8.3万个网页应用了 JAVA技术来制作 1
16、997年 2月 18日,JDK1.1 发布 1997年 4月 2日,JavaOne 会议召开,参与者逾一万人,创当时全球同类会议规模之纪录 1997年 9月,JavaDeveloperConnection 社区成员超过十万 1998年 2月,JDK1.1 被下载超过 2,000,000次 1998年 12月 8日,JAVA2 企业平台 J2EE发布 1999年 6月,SUN 公司发布 Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME) 2000年 5月 8日,JDK1.3 发布 2000年 5月 29日,JDK1.4 发布 2001年 6月 5日,NOKIA 宣布,
17、到 2003年将出售 1亿部支持Java的手机 2001年 9月 24日,J2EE1.3 发布 2002年 2月 26日,J2SE1.4 发布,自此 Java的计算能力有了大幅提升 2004年 9月 30日 18:00PM,J2SE1.5 发布,成为 Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 更名为 Java SE 5.0 2005年 6月, JavaOne大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字“2”:J2EE更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为Java ME 2006年 12月,SUN 公司发布 JRE6.0 编辑 语言特性Java之所以被开发,是要达到以下五个目的: 应当使用面向对象程序设计方法学 应当允许同一程序在不同的计算机平台执行 应当包括内建的对计算机网络的支持 应当被设计成安全地执行远端代码 应当易于使用,并借鉴以前那些面向对象语言(如 C+)的长处。