Java 发展简史:初生遇低谷,崛起于互联网

2020-01-06 08:40 稿源:CSDN公众号  0条评论

声明:本文来自于微信公众号CSDN(ID:CSDNnews)),作者:泰斗贤若如,授权站长之家转载发布。

Java 起源与诞生

20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。

病毒、代码 (4)

SUN公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导,名为“Green”项目小组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。

那么使用何种编程语言来设计,是项目小组头疼的事。当时C++较为有优势的,项目小组首先考虑的是采用它来编写程序,但C++过于复杂和庞大,再加上由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序跨平台运行,假如用C++编写的话对程序的跨平台运行不友好。

最后项目小组决定:既不用C++编写,也不开发全新的编程语言,而是对C++进行改造:去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在 1992 年,他们开发了一种名为“Oak”的面向对象语言。

科当他们在向硬件生产商进行演示的时候,硬件生产商对此并不感冒,OaK语言因为缺乏硬件的支持而无法进入市场,从而被搁置一旁。

1994 年,项目小组看到了浏览器在未来的发展前景,于是决定将OaK应用于万维网。 1995 年,他们用OaK语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于Applet不仅能嵌入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了OaK这门语言,与此同时,OaK正式更名为Java。从此,Java在互联网的推动下火了。

Java的衍变

1996 年 1 月,SUN公司推出了JDK1.0。在JDK1. 0 发布后,有很多程序员学习并运用Java来制作网页,JDK包括两大部分:开发工具和运行环境。

运行环境包括核心API、集成API、用户界面API、发布技术、Java虚拟机(JVM)。JDK1. 0 的发布,标志着Java成为一种独立的开发工具。在同年 9 月,约有8. 3 万个网页应用了Java技术来制作。

JDK1. 0 的代表性技术有:Java虚拟机、Applet、AWT等。

1997 年 2 月,SUN公司紧接着推出了JDK 1.1,在推出后 3 周时间里,达到了近 22 万次的下载量。 4 月 2 日,首届Java One大会在美国旧金山召开,参加会议的人超过一万人,创造了当时全球同类会议规模最高的纪录。 9 月,Java Developer Connection社区成员超过 10 万,同年还有 10 个最主要的操作系统供应商正式声明将在他们的产品中使用Java。

JDK1. 1 的代表性技术有:JDBC、JavaBeans、RMI、JAR文件格式、Java语法中的内部类和反射。

1998 年 12 月 8 日,JDK1.2——第二代Java平台的企业版J2EE发布。

1999 年 6 月,Sun公司把Java体系分为三个方向:

J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;

J2SE(Java 2 Standard Edition,Java2 平台的标准版),应用于桌面环境;

J2EE(Java 2Enterprise Edition,Java2 平台的企业版),应用于基于Java的应用服务器。

随着供应商的不同,Java的API也分为三大类:

Java Core API:Java核心类库;

Java Optional API:对之前API的扩充;

特殊API:由特殊厂商或组织提供的API。

Java2 平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。

JKD1. 2 的代表性技术有:Swing、Java IDL、EJB、Java Plug-in等,在API文档中,添加了strictfp关键字和Collections集合类。

1999 年 4 月 27 日,HotSpot虚拟机发布。HotSpot是由一家叫“Longview Technologies”的小公司开发的,后来被SUN公司收购。HotSpot虚拟机发布时是作为JDK 1. 2 的附加程序提供的,后来它成为了JDK 1. 3 及之后所有版本的Sun JDK的默认虚拟机 。

2000 年 5 月,JDK1.3、JDK1. 4 和J2SE1. 3 相继发布,J2SE1. 3 是对J2SE1. 2 的补充和扩展,从应用领域的角度分析,JavaSE1. 3 已经涵盖了数据库、WEB、网络、图形、多媒体、电话、影像等大部分的信息技术领域。

2002 年 2 月 26 日,J2SE1. 4 发布。与J2SE1. 3 相比,多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。

2004 年 9 月 30 日,J2SE1. 5 发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1. 5 更名为Java SE 5.0(内部版本号1.5.0)。Java SE 5. 0 包含了从 1996 年发布1. 0 版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。

2005 年 6 月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。

2011 年 7 月 28 日,收购Sun公司的Oracle发布了 Java SE 7,引入了二进制整数、支持字符串的switch语句、棱形语法、多异常捕抓、自动关闭资源的try语言等新特性。

2014 年 3 月 18 日,Oracle公司发布Java SE8,这次版本升级为Java带来了全新的Lambda表达式、流式编程等大量新特性,这些新特性使得Java变得更加强大。

2017 年 9 月 22 日,Oracle公司发布Java SE 9,这次版本升级强化了Java的模块化系统,让Java语言更轻量化,且采用了更高效、更智能的GI 垃圾回收器,并在核心类库上进行大量更新,可进一步简化编程。

2018 年 3 月 21 日,Java SE 10 发布,Java 10 版本带来了很多新特性,其中最备受广大开发者关注的莫过于局部变量类型推断。此外,还包垃圾收集器改善、GC 改进、性能提升、线程管控等新特性。

2018 年 9 月 26 日,Java SE 11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS版本持续支持到 2026 年 9 月)。Java11 带来了 ZGC、Http Client 等重要特性,一共包含 17 个 JEP(JDK Enhancement Proposals,JDK 增强提案)。

2019 年 3 月 20 日,Java SE 12 发布。Java12 是短期支持版本,可在下一个版本发布之前获得Oracle的商业支持。

2019 年 9 月 23 日,Java SE13 发布,此版本中添加了“文本块”,文本块是一个多行字符串文字,避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

Java历经千辛万苦,换来春暖花开

经过二十多年的版本更新,一步步的积累,造就了如今的Java。

一览Java在更新历程中所新增的特性:

Java 1.0:

  • 虚拟机——Sun Classic VM

  • Java小应用程序——Applet

  • Java图形设计——AWT

Java 1.1:

  • Jar包——Jar

  • Java规范——JavaBeans

  • 连接数据库——JDBC(Java DataBase Connectivity)远程调用——RMI

  • 内部类——Inner Class

  • 反射——Reflection

Java 1.2:

  • 字符串常量做内存映射

  • 对打包的Java文件进行数字签名

  • 控制授权访问系统资源的策略工具

  • JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型

  • 在Applet中添加声音支持

  • 即时编译技术——JIT

  • 运行插件——Java Plug-In

  • J2EE规范——EJB

  • 平台对象请求代理体系结构——Java IDL

  • 集合——Collections

Java 1.3:

  • 数学运算

  • CORBA IIOP实现RMI的通信协议

  • Java 2D新特性

  • Jar文件索引

  • 时间——Timer API

  • 声音——Java Sound API

Java1.4:

  • 正则表达式

  • 异常链

  • XML解析器

  • XSLT转换器

  • XML处理

  • Java打印服务

  • JDBC高级——Java Web Start JDBC 3.0

  • 可以操作系统的高级功能——Preferences

  • 高级流——NIO

  • 日志功能——Logging

  • 图片流——Imgae I/O

Java1.5:

  • 自动装箱拆箱

  • 泛型

  • 元数据

  • 静态引入

  • 内省——Introspector

  • 枚举——enum

  • 可变长参数——Varargs

  • 高级虚幻——foreach

  • 内存模型——JMM

  • 并发包——concurrent

Java SE 6:

  • 命名方式变更

  • 脚本语言

  • 编译API和微型HTTP服务器API

  • 锁与同步

  • 垃圾收集

  • 类加载

  • Kerberos

  • LDAP

  • JDBC高级——JDBC 4.0

  • Java™ 编程语言编译器的接口——Java Compiler

  • 可插拔注解

  • 公钥基础设——Native PKI

  • 通用安全服务——Java GSS

  • web服务——Web Services

Java SE 7:

  • switch语句块中允许以字符串作为分支条件

  • 创建泛型对象时应用类型推断

  • try-with-resources

  • null值得自动处理

  • 数值类型可以用二进制字符串表示

  • 引入Java NIO. 2 开发包

  • 动态语言支持

  • 安全的加减乘除

  • Map集合支持并发请求

Java SE 8:

Java SE8 在Java更新的历史中是一个非常重要的版本,引入的函数式编程使得Java编程更为强大,较典型的有:

  • Java工具的操作增强

  • Unicode增强功能,包括对Unicode 6.2. 0 的支持

  • 并行阵列排序

  • 标准编码和解码Base64

  • 无符号算术支持

  • 新的并发

  • Lambda表达式

  • 方法参数反射Java XML技术增强功能

  • 虚拟机操作增强JSSE服务器中的SSL / TLS服务器名称指示(SNI)扩展支持

  • 支持AEAD算法……

Java SE 9、10……版本的不断更新,是对旧版本改良以及补充,越更新,越友好。

看今朝,Java 位居世界编程语言榜首,风光无限好。

忆往昔,初生之时便陷入低谷,后借互联网之势拔地而起,J2SE攻占桌面、J2ME攻占手机、J2EE攻占服务器,Java三大强军也曾饱受岁月蹉跎,后浴火重生,最终投入Oracle怀抱,换得春暖花开。此情此景,悲之、喜之、感之、叹之,Java如今之风光,并非一日之功,望天下众程序员惜之、盼之。

声明:本文转载自第三方媒体,如需转载,请联系版权方授权转载。协助申请

相关文章

相关热点

查看更多