2. 什么是Java?
Java是一种广泛使用的编程语言,由Sun Microsystems公司的詹姆斯·高斯林(James Gosling)和帕特里克·诺顿(Patrick Naughton)主导开发,并得到了公司联合创始人比尔·乔伊(Bill Joy)的支持。1995年5月23日,Sun在SunWorld大会上正式发布了Java语言。2009年甲骨文(Oracle)收购Sun后,Java的所有权也随之转移。
3. 简史
让我们深入探索Java项目的起源和发展历程。
3.1. 起源
1991年,Sun Microsystems的三位工程师——詹姆斯·高斯林、迈克·谢里丹和帕特里克·诺顿——启动了一个秘密项目,目标是设计一种适用于小型电子设备的编程语言。
不久后他们启动了"绿色项目",研究数字家电与计算机融合的可能性。团队采用类似C++的语法,开发了一款配备图形动画触摸屏的智能遥控器。经过数月攻关,这款遥控器实现了控制整个客厅设备的创举。其核心突破在于:使用了一种与处理器完全无关的新语言编程,使遥控器具备了跨平台的独特优势。
最终,项目组成员詹姆斯·高斯林创造了这种新语言,并将其命名为Oak(橡树)。
3.2. HTTP协议与Mosaic浏览器的出现
1993年HTTP协议和Mosaic浏览器的诞生成为项目转折点。团队意识到互联网才是推广产品的理想网络。
1995年,詹姆斯·高斯林展示了名为WebRunner的浏览器,它能混合显示HTML内容和Applet小程序。随后:
- WebRunner更名为HotJava
- java.sun.com正式向公众开放
- 技术名称最终定为"Java"(美国俚语中"咖啡"的意思),致敬程序员最爱的饮品(部分咖啡产自爪哇岛)
Sun与网景(Netscape)宣布将这项技术集成到浏览器后,Java真正起飞。从1996年的1.0版本到2021年的17版本,Java持续迭代演进。
4. 核心特性
凭借出色的特性设计,Java成为流行且实用的编程语言。Sun将其概括为:
- 编译与解释并存
- 平台无关与可移植
- 面向对象
- 健壮安全
- 分布式
- 简单易学
- 多线程交互
- 高性能
- 动态可扩展
来源:《Java编程》 – E Balagurusamy
4.1. 编译与解释并存
Java融合了编译语言的性能和解释语言的灵活性:
4.2. 平台无关与可移植
两阶段编译机制造就了Java的核心优势——平台无关性:
- 跨平台执行:在一台机器编译的程序,可在任何安装JVM的机器上运行,不受操作系统限制
- 代码一致性:相同代码在不同平台运行结果完全一致,无需重新编译或修改源码
4.3. 面向对象
Java全面支持面向对象编程特性:
- 封装
- 抽象
- 继承
所有代码和数据必须定义在类或对象中。
4.4. 健壮安全
Java通过多重机制保障应用健壮性:
- 自动垃圾回收:避免C/C++中手动内存管理的痛点
- 摒弃显式指针:降低内存操作风险
- 强类型系统:减少潜在bug
- 异常处理机制:提供错误处理能力
4.5. 分布式
大型项目开发利器:
- 可将程序拆分为多个部分部署在不同计算机
- 通过RMI(远程方法调用)和EJB(企业级JavaBean)技术
- 轻松构建多节点运行的分布式可扩展应用
4.6. 简单易学
Java的简洁性体现在:
- 代码风格清晰易懂
- 去除显式指针等复杂特性
- 基于C++等成熟语言设计,学习曲线平缓
4.7. 多线程交互
多线程特性支持:
- 同时执行多个线程
- 内存高效:所有线程共享公共内存区域,避免为每个线程单独分配内存
4.8. 高性能
性能优化关键点:
- 编译器生成高度优化的字节码
- JVM执行效率远超传统解释型语言
4.9. 动态可扩展
动态特性支持:
- 运行时动态链接新类库、方法和对象
- 高度适应环境变化
5. Java运行时环境的价值
软件应用需要运行环境支持(如Linux/Windows/macOS操作系统)。缺乏专用环境时,程序能力受限于操作系统本身。
Java运行时环境(JRE)扮演了关键角色:
- 作为程序与操作系统间的"翻译官"
- 在操作系统之上提供Java专用资源
- 突破操作系统限制,扩展程序能力
6. 结论
Java语言巧妙融合了现有语言的优点,同时规避了它们的常见缺陷。作为一门现代编程语言,其成熟度和潜力已得到业界广泛认可。无论是企业级应用还是Android开发,Java依然是技术栈中的中流砥柱。