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

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

作者 | 泰斗贤若如

责编 | 伍杏玲

出品 | CSDN (ID:CSDNnews)

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

Java 起源与诞生

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

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 发展简史:初生遇低谷,崛起于互联网

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,Java 2 平台的标准版),应用于桌面环境;J2EE (Java 2Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。随着供应商的不同,Java 的 API 也分为三大类:Java Core API:Java 核心类库;Java Optional API:对之前 API 的扩充;特殊 API:由特殊厂商或组织提供的 API。Java 2 平台的发布,是 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 发布。Java 12 是短期支持版本,可在下一个版本发布之前获得 Oracle 的商业支持。2019 年 9 月 23 日,Java SE 13 发布,此版本中添加了“文本块”,文本块是一个多行字符串文字,避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。
Java 发展简史:初生遇低谷,崛起于互联网

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 SE 8 在 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 如今之风光,并非一日之功,望天下众程序员惜之、盼之。

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

Java 已崛起,未来有可期

1、用发展的眼光看 Java:API 稳更新,复用性稳强化

Java 的更新速度是很快的,每隔一段时间都会进行一次版本迭代,来适应新技术的发展趋势,学 Java 的程序员遍布全世界,很庆幸我也是茫茫 Java 程序员中的一员,近些年来很火热的大数据也是和 Java 息息相关。Java 本身具有很大的开放性和可扩展性,再加上 Java 如此雄厚的历史背景,我相信一个语言只要不断发展,就很难会被时代淘汰。

2、用就业的眼光看 Java:互联网的时代、人工智能的时代、5G+的时代,Java 一直都在

随着网络的发展,如今 Java 已广泛应用于数据中心、PC、游戏、移动电话等行业,从近几年的招聘量上来看,对 Java 开发人员的需求量依旧很大,Java 的学习依旧是主流,发展前景一片光明。我国信息化人才培养还处于发展阶段,导致社会实际需求人才基数远远大于信息化人才的培养基数,使得数以万计的中小企业急需全面系统掌握 Java 软件开发基础技能与知识的软件工程师。Java 软件工程师就业前景良好,再加上 Java 软件工程师不仅 IT 专业企业需要,广大的非 IT 企业也需要,前景是较为乐观的。目前我所了解的有:1、Java 企业级应用开发目前 Java 在许多行业的企业信息应用方面有很多,比如邮箱、物流、医疗、股票、OA、金融等信息系统。这些和目前的主流行业密切相关的,所以 Java 开发者的需求还是较大,待遇也是相当不错,工资水平与 Java 互联网方向的差不多,很容易在一些大型企业就业,只要你有恒心有毅力地学习,我想至少面临这么多选择时,你不会一无所用,机会总是会留给有准备的人。2、Java 网站建设近些年来,网站建设业务一直呈现快速上升的势头,行业市场也是越来越大,很多新技术的应用使得企业网站建设更具魅力、更加强大。Java 编程语言将使网站结构更紧密,访问更流畅,更能适应新的要求。虽然以目前的市场分析 Java 做网站成本太高,而且对硬件要求也比较高,中小企业大多都会选择使用 PHP 语言进行开发,但是在很多大型企业还是用 Java 语言的比较多,所以你依旧有机会,向大厂冲鸭。3、 Android 开发 Android 是全球最大的智能手机操作系统,前几年 Android 发展快速,在国内的市场份额也是越来越高,但在快速兴起的小程序和 H5 的冲击下,导致 Android 原生开发门槛增高,公司对 Android 开发工程师的要求也提高了,这就要求学习 Android 的程序员们精于技术,优秀的 Android 开发工程师仍然存在不小的缺口,中、高级的 Android 工程师还是很受欢迎的。Android 应用的主要开发语言就是 Java,所以如果你技术很精,选择 Android 这个方向还是很不错的。4、Java 游戏开发 Java 可用来编写游戏脚本,如 Bean、Shell、Groovy 等脚本语言可以方便、无缝的和 Java 语言进行交互,这些极大地促进 Java 游戏编程。当前国内游戏较为火热,很多热门电竞,所以国内游戏专业人才的需求一直都存在缺口。所以,好好努力去填补这些缺口吧,只要你有过人的技术,不愁没饭吃。
Java 发展简史:初生遇低谷,崛起于互联网

不忘初心,与 Java 同行

**
**

我是一名学 Java 的程序员,通过整理撰写本文,我又重新认识了 Java。在我看来,Java 的”火“并不是偶然的,有很多因素的积累而成。Java 的发展进程值得考究,作为一名 Java 的忠实粉丝,Java 的重要性不言而喻,相信不管是计算机专业还是非计算机专业的程序员也会感同身受。 对我而言,其他 Java 程序员也是一样,因为对 Java 有着持久不衰的热爱,所以愿意不断追求专业追求卓越,而带着这份忠诚的热爱,我们不畏风雨,一路前行。不忘初心,方得始终,我愿以 Java 为马,诗酒趁年华!参考:Java 百度百科作者简介:泰斗贤若如,一个热爱分享的程序员,始终相信“越懂得分享,你的价值增值越大”。Java 发展简史:初生遇低谷,崛起于互联网

热 文推 荐

雷军为什么要挖常程?☞达摩院 2020 预测:量子霸权指日可待!
☞GitHub Action 有风险?!
达摩院十大科技趋势发布:2020 非同小可!

骗了马云 10 亿被骂 4 年后,院士王坚留下 4 条人生启示

阿里达摩院 2020 趋势第一弹:感知智能的“天花板”和认知智能的“野望”

你真的懂云计算吗?

万字长文回望 2019:影响区块链行业发展的 9 大事件

Java 发展简史:初生遇低谷,崛起于互联网点击阅读原文,立即报名参与活动!

Java 发展简史:初生遇低谷,崛起于互联网你点的每个“在看”,我都认真当成了喜欢

来源链接:mp.weixin.qq.com