查看原文
其他

Java16即将发布 你了解他的前世今生吗

老鲁 终码一生 2022-09-22


戳蓝字“终码一生”关注我们!记得加个⭐标哦

 


     阅读本文预计需要3.5分钟  


 来源 | 整理自互联网


1

前言

 

自1946年2月14日世界上首款计算机问世,第一代计算机语言“机器语言”便诞生了,它使用的是最原始的穿孔卡片,这种卡片上使用的语言只有专家才能理解,与人类语言差别极大。这种语言本质上是计算机能识别的唯一语言,人类很难理解。为了能让人们更容易理解并编写,于是便有了第二代的“汇编语言”,相比机器语言,汇编语言大大前进了一步,尽管它还是太复杂,人们在使用时很容易出错误,但毕竟许多数码已经开始用字母来代替。简单的“0、1”数码谁也不会理解,但字母是人们能够阅读并拼写的。


第二代计算机语言仍然是“面向机器”的语言,但它已注定成为机器语言向更高级语言进化的桥梁。当计算机语言发展到第三代时,就进入了“面向人类”的语言阶段。你可以阅读、并直接用人类的语言来输入。对我们汉语来说,目前还不能用中文汉字来输入指令,这主要是因为中文的输入还没有一个非常好的手段。


第三代语言被人们称之为“高级语言”。


高级语言是一种接近于人们使用习惯的程序设计语言。它允许用英文写计算程序,程序中所使用的运算符号和运算式子,都和我们日常用的数学式子差不多。高级语言容易学习,通用性强,书写出的程序比较短,便于推广和交流,是很理想的一种程序设计语言。


 

2

Java的诞生


在1991年时候,James Gosling在Sun公司的工程师小组想要设计这样一种主要用于像电视盒这样的消费类电子产品的小型计算机语言。这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。


最初这个语言命名为“Green”,类似于绿色软件的意思。其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、 电视机等家用电器,对它们进行控制,和它们进行信息交流。


刚开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak,Oak是一种用于网络的精巧而安全的语言,Sun公司此投标一个交互式电视项目,但结果被SGI打败。可怜的Oak几乎无家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组的成员。他们用一种全新的语言编写了一款浏览器,得到了Sun公司首席执行官Scott McNealy的支持。在一次几位该成员组的会员在一家名为“爪蛙”咖啡的店里正在讨论给这个新的语言取什么名字时,有一个人灵机一动说:“就叫Java怎样”,得到了其他人的赞赏, 于是,Java语言就这样诞生了。

 

3

Java的发展


1995年5月23日,Java语言正式诞生


1996年1月,第一个JDK-JDK1.0诞生

新特性及更新修改:

  • Sun Classic VM(虚拟机)

  • Applet(java小应用程序)

  • AWT(java图形设计)


1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。


1996年9月,约8.3万个网页应用了Java技术来制作。


1997年2月18日,JDK1.1发布。

新特性及更新修改: 

  • JAR(jar包)

  • JDBC(Java DataBase Connectivity)(连接数据库)

  • JavaBeans(java规范)

  • RMI(远程调用)

  • Inner Class(内部类)

  • Reflection(反射)


1997年4月2日,JavaOne会议召开,参与者超过万人,创造当时全球同类会议规模之纪录。


1997年9月,JavaDeveloperConnection社区成员超过十万。


1998年2月,JDK1.1被下载超过2,000,000次。


1998年12月8,Java的企业平台Java EE正式发布。


1999年6月,Sun公司发布Java的三大版本:标准版(Java SE)企业版(Java EE)微型版(Java ME)


2000年5月8日,JDK1.3发布。

新特性及更新修改:

  • 数学运算

  • Timer API(时间)

  • Java Sound API(声音)

  • CORBA IIOP实现RMI的通信协议

  • Java 2D新特性

  • jar文件索引


2000年5月29日,JDK1.4发布。


2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机。


2001年9月24日,Java EE 1.3发布。


2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升。


2004年9月30日,J2SE1.5发布,是Java语言发展史上的又一里程碑事件。为了表示这个版本的重要性,Java SE 1.5正式更名为Java SE 5.0,J2EE、J2ME也相应地改名为Java EE和Java ME。

新特性及更新修改:

  • 自动装箱拆箱 

  • 泛型 

  • 元数据

  • Introspector(内省)

  • enum(枚举)

  • 静态引入

  • 可变长参数(Varargs)

  • foreach(高级虚幻)

  • JMM(内存模型)

  • concurrent(并发包)

同时,也发布了新的企业级平台规范,如通过注释等新特性来简化EJB的复杂性,并推出了自己的MVC框架规范:JSF,JSF规范类似于ASP.NET的服务器端控件,通过它可以快速地构建复杂的JSP界面。


2006年12月,Sun公司发布了JDK1.6(也被称为Java SE 6)。一直以来,Sun公司维持着大约2年发布一次JDK新版本的习惯。


2009年4月20日, Oracle 宣布将以每股9.5美元的价格收购Sun,该交易的总价值约为74亿美元。但Oracle通过收购Sun公司获得了两项软件资产:JavaSolaris。2007年11月,Java语言作为服务器端编程语言,已经取得了极大地成功;而Android平台的流行,则让Java语言获得了在客户端程序上大展拳脚的机会。


2011年7月28日,Oracle公司发布了Java SE 7,这次版本升级经过了将近5年时间。Java SE 7也是Oracle发布的第一个Java版本,引入了二进制整数、支持字符串的switch语句、多异常捕捉、自动关闭资源的try语句等新特性。


2014年3月18日,Oracle公司发布了Java SE 8,这次版本升级为Java带来了全新的Lambda表达式。除此之外,Java 8还增加了大量新特性,这些新特性使得Java变得更加强大。


目前市场主流还是使用的JDK8

新特性及更新修改:     

  • Lambda表达式

  • 函数式接口

  • 方法引用和构造器调用

  • Stream API

  • 接口中的默认方法和静态方法

  • 新时间日期API


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


之后的Java边像做了火箭一样!!!


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发布,此版本中添加了“文本块”,文本块是一个多行字符串文字,避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。


2020年3月17日,Java SE 14发布,全新的Switch表达式和对非易失性内存的支持。


2020年9月15日Java SE 15如期而至,新的垃圾回收器ZGC正式上线,Text Blocks 标准化。


接下来,2021 年 3 月 16 日即将发的Java SE 16,那么Java16又将为我们带来哪些改变呢?


点击下方“阅读原文”,即可查看。

 

4

Java未来可期

 

从互联网、移动互联网,到如今的大数据,人工智能、5G+时代,Java一直都在,如今Java几乎每过几个月就发布一个新的版本,来适应新的技术和时代的发展,而在企业级应用,网站建设,手机端应用,游戏开发,大数据,云计算等等如今的众多热门行业里,Java的身影也无处不在。


作为一名Java语言的开发者,你是否内心有一丝丝的自豪和骄傲呢!


END



 


终码一生长按扫描二维码
关注我们 获取更多技术资讯
微信号:zma_1314


往期推荐

官方6种免费获取 IntelliJ IDEA 激活码的方式

【开源框架】这个牛x的开源项目 你知道吗?

再见,Navicat!这个IDEA的兄弟,大赞!

这些插件 让你开发更有效率

【开源项目】一键生成代码的框架 前后端分离

有了这个插件  再也不用担心IDEA过期了


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存