概述
1991年4月,由詹姆斯·高斯林博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品上运行的程序架构。这个计划的产品就是Java语言的前身Oak。Oak当时在消费市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成Java语言。
特别声明
本文中要说明的Java语言版本简史是指在Java语言体系下Java语言版本的变化历程,先给出Java技术体系包含以下技术分类:
版本进化历程
版本号 | 发布时间 |
---|---|
Java 1.0 | 1996年01月23日 |
Java 1.1 | 1997年02月18日 |
Java 1.2 | 1998年12月04日 |
Java 1.3 | 2000年05月18日 |
Java 1.4 | 2004年02月06日 |
Java 1.5 | 2004年09月30日 |
Java 6 | 2006年12月11日 |
Java 7 | 2011年07月29日 |
Java 8 | 2014年03月18日 |
Java 9 | 2017年09月22日 |
Java 10 | 2018年03月21日 |
Java 11 | 2018年09月25日 |
版本新特性及改进
Java 1.0
- Java虚拟机
- Applet
- AWT
Java 1.1
- JAR文件格式
- JDBC
- Java Beans
- RMI
Java 1.2
- EJB
- Java Plug-in
- Java IDL
- Swing
Java 1.3
- Math
- Timer API
- JNDI
- RMI-IIOP
- Java 2D API
- Java Sound
Java 1.4
- Regular Expressions
- 异常链
- NIO
- 日志类
- XML解析器
- XSLT解析器
Java 1.5
- 自动装箱与拆箱
- 泛型
- 动态注解
- 枚举
- 可变长参数
- 遍历循环
- 静态导入
Java 6
- 提供动态语言支持
- Desktop类和SystemTray类
- 使用JAXB2来实现对象与XML之间的映射
- 理解STAX
- 使用Compiler API
- 轻量级 Http Server API
- 插入式注解处理 API
- 使用Console开发控制台程序
- Common Annotations
- Java GUI界面的显示
- 嵌入式数据库Derby
- Web服务元数据
- Jtable的排序和过滤
- 更简单更强大的JAX-WS
Java 7
- switch语句中可以使用字符串
- 泛型实例化类型自动推断
- 自定义自动关闭类
- 新增一些读取环境信息的工具方法
- Boolean类型反转,空指针安全,参与位运算
- 两个char之间的equals
- 更加安全的加减乘除
- 对Java集合( Collections)的增强支持
- 数值可加下划线
- 支持二进制数字
Java 8
- 接口的默认方法
- Lambda表达式
- 函数式接口
- 方法与构造函数引用
- 扩展了集合类
- 新的Date API
- Annotation多重注解
- Streams API
- Parallel Streams
- Map数据结构改进
Java 9
- Jigsaw模块化项目
- 简化进程API
- 轻量级JSON API
- 钱和货币的API
- 改善锁竞争机制
- 代码分段缓存
- 智能java编译
- HTTP2.0客户端
- Kulla计划
Java 10
- 局部变量的类型推断
- GC改进和内存管理
- 线程本地握手
- 备用内存设备上的堆分配
- 其他Unicode语言 - 标记扩展
- 基于Java的实验性JIT编译器
- 开源根证书
- 根证书颁发认证(CA)
- 将JDK生态整合单个存储库
- 删除工具javah
- Java REPL(JShell)
Java 11
- 本地变量类型推断
- 字符串加强
- 集合加强
- Stream 加强
- Optional 加强
- InputStream 加强
- 标准化HTTP Client API
- 单个命令编译运行源代码
有关LTS
从Java 9开始到目前已经发布的Java 11,Oracle公司已经按照半年一个大版本的方式发布Java JDK,而Java 11是目前发布的第一个LTS版本(长期支持版本)。有关的Java语言的详细发布路线请参考Oracle官方文档,若是您对此还有疑问我会另外分享一篇文章来专门说明Java版本的发布和支持情况。
有关语义化版本
Semantic Versions是指一个软件产品在正式发布的时候采取的语义化版本信息,具体格式如下:
主版本号.次版本号.修订号
随着软件产品的不断更新迭代,要是没有统一规范的软件版本管理规范,那么对于现代软件产品的生命周期控制可是一项伟大工程。而对于目前Java的版本发布情况,使用的是大版本号 + 发布年份月份的格式。
总结
对于以上知识点的梳理让我知道了Java技术体系中涉及了哪些具体的功能和实现,也渐渐了解了Java SE、Java EE、Java ME、Java Embedded、Java Card和Java TV之间的关系,更是知道了Java语言应用的广泛场景。不管是客户端、服务器、嵌入式设备、还是成千上万的便携式设备,我相信经过这么多年的技术积累和技术演变,会为更多的Java开发者提供更加丰富更加便捷的开发运行部署环境,也为后续Java语言的发展和演变提供了有力的保证和支持。若是我的文章对你有所启发,那将是我莫大的荣幸。
网友评论