版本 | 描述 |
1991年1月 | Sun公司成立了Green项目小组,专攻智能家电的嵌入式控制系统 |
1991年2月 | 放弃C++,开发新语言,命名为“Oak” |
1991年6月 | JamesGosling开发了Oak的解释器 |
1992年1月 | Green完成了Green操作系统、Oak语言、类库等开发 |
1992年11月 | Green计划转化成“FirstPerson”,一个Sun公司的全资母公司 |
1993年2月 | 获得时代华纳的电视机顶盒交互系统的订单,于是开发的重心从家庭消费电子产品转到了电视盒机顶盒的相关平台上。 |
1994年6月 | FirstPerson公司倒闭,员工都合并到Sun公司。Liveoak计划启动了,目标是使用Oak语言设计出一个操作系统。 |
1994年7月 | 第一个Java语言的Web浏览器WebRunner(后来改名为HotJava),Oak更名为Java。 |
1994年10月 | VanHoff编写的Java编译器用于Java语言 |
1995年3月 | 在SunWorld大会,Sun公司正式介绍了Java和HotJava。 |
1996年1月 | JDK1.0发布 |
1997年2月 | J2SE1.1发布 |
1998年12月 | J2SE1.2发布 |
1999年6月 | 发布Java的三个版本:J2SE、J2EE、J2ME |
2000年5月 | J2SE1.3发布 |
2001年9月 | J2EE1.3发布 |
2002年2月 | J2SE1.4发布 |
2004年9月 | J2SE1.5发布,将J2SE1.5改名JavaSE5.0 |
2005年6月 | JavaSE6.0发布,J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME |
2006年12月 | JRE6.0发布 |
2006年12月 | JavaSE6发布 |
2009年12月 | JavaEE6发布 |
2009年4月 | Oracle收购Sun |
2011年7月 | JavaSE7发布 |
2014年3月 | JavaSE8发布 |
2017年9月 | Java 9 发布 |
2017年9月 | jdk10发布 |
Java语言的前身:Oak(橡树)
Java1.0提出了“Write Once,Run Anywhere”的口号
JDK 1.1
技术:JAR文件格式、JDBC、JavaBeans、RMI。
语法:内部类(Inner Class)和反射(Reflection)。
JDK 1.2
把Java技术体系拆分为3个方向,分别是
面向桌面应用开发的J2SE(Java 2 Platform, Standard Edition)、
面向企业级开发的J2EE(Java 2 Platform, Enterprise Edition)和
面向手机等移动终端开发的J2ME(Java 2 Platform, Micro Edition)
技术:Swing、集合框架、Java虚拟机和各种编程工具
语法:Thread类,建议不再使用该类中的suspend()、resume()和stop()等方法。
JDK 1.3
技术:JNDI服务从扩展项到平台级服务提供、使用CORBA IIOP来实现RMI的通讯协议
语法:提供了大量新的Java 2D API,并且新添加了JavaSound类库。并改进了数学运算和新的Timer API
JDK 1.4
技术:正则表达式、异常链(chained exception)、NIO(基于通道的I/O子系统)、日志类、XML解析器和XSLT转换器
语法:添加了新的关键字assert、对集合框架和联网类(networking class)进行了修改
JDK 1.5
技术: 泛型、注解(annotation)、自动装箱和自动拆箱、泛型、动态注解、枚举、增强的for-each风格的for循环、可变长度参数(varargs)、静态导入、格式化的I/O、并发实用工具
语法:改进了Java的内存模型(Java Memory Model,JMM)、提供了java.util.concurrent并发包
JDK 1.6
技术:提供动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、提供编译API和微型HTTP服务器API
语法:对Java虚拟机的内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改动
JDK 1.7
技术:NIO框架进行了增强、增加了Frok/Join框架(简化同时执行的任务的创建和使用、自动使用多个处理器)
语法:String现在能够控制switch语句、二进制整型字面值、数值字面值中的下划线、 扩展的try语句,称为带资源的try(try-with-resources)语句,这种try语句支持自动资源管理(例如,当流(stream)不再需要时,现在能够自动关闭它们)、构造泛型实例时的类型推断(借助菱形“<>”运算符)、对异常处理进行了增强,单个catch(multi-catch)子句能够捕获两个或更多个异常,并且对重新抛出的异常提供了更好的类型检查、对与某些方法(参数的长度可变)类型关联的编译器警告进行了改进,尽管语法没有发生变化,并且对警告具有更大的控制权
JDK 1.8
技术:lambda表达式
语法:虚拟机内存永久代(PermGen)到元空间(Metaspace)