Java编程语言发展简史

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