Java 的发展历史
- 起源
- 1991 年,Sun 公司的工程师小组为设计一种适用于电视机、电话、闹钟、烤面包机等家用电器控制和通信的语言,创造了 “Oak” 语言。当时这些设备处理能力和内存有限,且不同厂商可能选择不同 CPU,因此该语言关键是代码短小、紧凑且与平台无关。
- 因智能化家电市场需求未达预期,Sun 公司放弃了该项计划。
- 20 世纪 90 年代互联网发展,Sun 公司发现该语言在互联网上的应用前景,于是改造 Oak,于 1995 年 5 月以 Java 名称正式发布(Java 是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名)。
- 版本演进历程
发行版本 | 发行时间 | 备注 |
---|---|---|
Java 1.0 | 1996.01.23 | Sun 公司发布了 Java 的第一个开发工具包 |
Java 1.1 | 1997.02.19 | JavaOne 会议召开,创当时全球同类会议规模之最 |
Java 1.2 | 1998.12.08 | Java 拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版) |
Java 1.3 | 2000.05.08 | – |
Java 1.4 | 2004.02.06 | – |
Java 5.0 | 2004.09.30 | ①版本号从 1.4 直接更新至 5.0;②平台更名为 JavaSE、JavaEE、JavaME |
Java 6.0 | 2006.12.11 | 2009.04.20 Oracle 宣布收购 SUN 公司 |
– | 2009.04.20 | Oracle 公司收购 SUN,交易价格 74 亿美元 |
Java 7.0 | 2011.07.02 | – |
Java 8.0 | 2014.03.18 | 继 Java 5.0 以来变化最大的版本,是长期支持版本(LTS) |
Java 9.0 | 2017.09.22 | ①每半年更新一次;②不再支持 Windows 32 位系统 |
Java 10.0 | 2018.03.21 | – |
Java 11.0 | 2018.09.25 | JDK 安装包取消独立 JRE 安装包,是长期支持版本(LTS) |
Java 12.0 | 2019.03.19 | – |
Java 17.0 | 2021.09 | 发布 Java 17.0,版本号也称为 21.9,是长期支持版本 |
Java 19.0 | 2022.09 | 发布 Java 19.0,版本号也称为 22.9 |
Java 的特点
- 跨平台性
- 这是 Java 的核心优势,通过 Java 语言编写的应用程序在不同的系统平台上都可以运行,即 “Write once, Run Anywhere”。
- 原理是在需要运行 Java 应用程序的操作系统上,先安装 Java 虚拟机(JVM,Java Virtual Machine),由 JVM 负责 Java 程序在该系统中的运行。
- 面向对象性
- 面向对象是一种程序设计技术,非常适合大型软件的设计和开发。
- 支持封装、继承、多态等特性,让程序更好达到高内聚、低耦合的标准。
- 健壮性
- 吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等)。
- 提供了一个相对安全的内存管理和访问机制。
- 安全性高
- 适合于网络 / 分布式环境,需要提供一个安全机制以防恶意代码的攻击。
- 如安全防范机制(ClassLoader 类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。
- 简单性
- 可以看作是 C++ 语法的简化版,也被称为 “C++–”。
- 去掉了头文件、指针运算、结构、联合、操作符重载、虚基类等复杂内容。
- 高性能
- 最初 Java 被诟病 “性能低”,但随着发展,通过虚拟机的优化(如 JIT 即时编译技术)提升了几十倍运行效率。
- 目前 Java 低性能的问题已被完全解决,很多 C++ 应用转到 Java 开发,很多 C++ 程序员转型为 Java 程序员。
- 缺点
- 语法过于复杂、严谨,对程序员的约束比较多,与 python、php 等相比入门较难。
- 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高,选择用 Java 语言开发需要一定的经济实力。
- 并非适用于所有领域,如 iOS 设备上 Objective C、Swift 有不可取代的地位,浏览器中处理几乎由 JavaScript 掌控,Windows 程序通常用 C++ 或 C# 编写,Java 在服务器端编程和跨平台客户端应用领域有优势。