JAVA发展史
詹姆斯高斯林
1991年4月
Sun公司的詹姆斯高斯林(James Gosling)领导的Java语言开发小组成立,并开始着力绿色计划(Green Project)的发展,Green Project是一种分布式系统结构,其目的是使其能够在各种消费性电子产品上运行,开拓消费类电子产品市场,例如:交互式电视,烤面包箱 等。
而Green项目组的成员一开始使用C++语言来完成这个项目,由于Green项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器,但很快他就感到C++的很多不足,Gosling首先改写了C++编译器,需要研发一种新的语言来替代它。消费类电子产品用户并不关心CPU的型号,也不欣赏专用昂 贵的RISC处理器,他们需要建立在一个标准基础之上,一系列可选的方案,从8086-80586都可以上。
在 1991年6月份开始准备开发一个新的语言,那么给它起一个什么名字呢? Gosling回首向窗外望去,看见一棵 橡树,于是建一个目录叫 Oak,这 就是Java语言的前身。后来发现Oak已是Sun公司的另一个语言的注册商标,才改名为Java,即爪哇,太平洋上一个盛产咖啡的岛屿的名字,也寓意能为世界各位带来一杯热咖啡。
1995年
JAVA语言诞生
Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持。
1996年1月23日
发布了JDK1.0版本
约8.3万个网页应用了Java技术来制作
JDK
Java开发工具包
Java development kit
JRE
Java运行时环境
Java runtime environment
1997年2月18日
发布了JDK1.1
改进了JVM,增加了JIT
引入的新特性包括:
- 引入 JDBC(Java Database Connectivity);
- 支持 内部类;
- 引入 Java Bean;
- 引入RMI(Remote Method Invocation);
- 引入 反射(仅用于内省)。
JVM
Java虚拟机
Java Virtual Machine
JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JIT
JIT即时编译器(不易多说,解释一下就好)
Just In Time Compiler,一般翻译为即时编译器,这是是针对解释型语言而言的,而且并非虚拟机必须,是一种优化手段,使用该技术,可以加速java程序的运行速度。
JIT并不总是奏效,不能期望JIT一定可以加速你代码运行的速度,更糟糕的是她有可能减少代码的运行速度。这取决于你的代码结构,当然非常多情况下我们还是可以如愿以偿的。
从上面我们知道了之所以要关闭JITjava.lang.Compiler.disable(); 是由于加快运行的速度。由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这样的情况,当前的JIT仅仅对常常运行的字节码进行编译,如循环等
1998年12月8日
发布 里程碑版本 Java 1.2版本
发布JAVA2企业平台J2EE
引入的新特性包括:
- 引入 集合框架(Collection);
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器;
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;
- 引入Java 插件;
- 在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
- 在Applet中添加声音支持。
1999年6月
SUN公司发布Java的三个版本:标准版、企业版和微型版(J2SE、J2EE、J2ME)
J2SE
Java标准版
Java Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程
J2EE
Java企业版
Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制
J2ME
Java微缩版
Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒
2000年5月8日
JDK1.3发布
引入的新特性包括:
- 引入Java Sound API;
- jar文件索引;
- 对Java的各个方面都做了大量优化和增强。
2004年2月6日
J2SE1.4发布
引入的新特性包括:
- XML处理;
- Java打印服务;
- 引入Logging API;
- 引入Java Web Start;
- 引入JDBC 3.0 API;
- 引入断言;
- 引入Preferences API;
- 引入链式异常处理;
- 支持IPv6;
- 支持 正则表达式;
- 引入Image I/O slot machine API。
2004年9月30日
J2SE1.5发布
是Java语言的发展史上的又一 里程碑事件。
为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0
引入的新特性包括:
- 引入泛型;
- 增强循环,可以使用迭代方式;
- 自动装箱 与 自动拆箱;
- 类型安全的 枚举;
- 可变参数;
- 静态引入;
- 元数据(注解);
- 引入Instrumentation。
2005年6月
JavaOne大会召开,SUN公司公开Java SE 6。
此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2011年7月28日
Oracle公司发布Java SE 7
引入的新特性包括:
- switch语句块中允许以字符串作为分支条件;
- 在创建泛型对象时应用类型推断;
- 在一个语句块中捕获多种异常;
- 支持动态语言;
- 支持try-with-resources;
- 引入Java NIO.2开发包;
- 数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线;
- 钻石型语法;
- null值的自动处理。
2014年3月
Oracle公司发表Java SE 8(市场主流版本)
最后一个免费版本:1.8.0_202
引入的新特性包括:
- 支持 lambda支持;
- 增强日期与时间API的功能;
- 对垃圾回收的性能也进行了改进;
- 并且移除了permgen区。
- Lambdas表达式与Functional接口
- 接口的默认与静态方法
- 方法引用
- 重复注解
- 更好的类型推测机制
- 扩展注解的支持
2017年9月
Oracle公司发表Java SE 9
从此每隔6个月发布一个新的版本
2018年3月
Oracle公司发表Java SE 10
2018年9月
Oracle公司发表Java SE 11,长期支持版本
2019年3月
Oracle公司发表Java SE 12
2019年9月
Oracle公司发表Java SE 13
2020年3月
Oracle公司发表Java SE 14
2020年9月
Oracle公司发表Java SE 15
2021年3月
Oracle公司发表Java SE 16
https://www.oracle.com/java/technologies/java-se-support-roadmap.html
