什么是Java,了解Java的历史,你知道Java已经到17了吗?并且又变成完全免费了,其实之前的收费也只是名义上的,对使用Java语言开发来说,没有丝毫影响!
Java是一门面向对象的计算机编程语言,什么是面向对象,我们下一期在说,因为内容比较多,这里简单解释一下,对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果,个人理解就是操作数据,我们所使用的任何一种应用,都是在操作数据返回结果。
每个语言的诞生都有一个传奇的故事,Java也是一样,Java其实是由C 语言改造提升而来,20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现,就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品的智能化程度。这里也就是所说的嵌入式应用,如电视机顶盒、面包烤箱、移动电话等。
Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成了这个小组。小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。
研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C 进行了改造,去除了留在C 的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。
Oak在1992年开发成功之后,由于它只是比C 语言更加简单,没有其他优势,所以当时生产商们并没有采用Oak或者尝试Oak语言,所以Oak被搁置了。
在这期间Oak语言也做了一下努力,1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器WebRunner,这一改变也为了后面的成功,埋下了伏笔。
1995年,互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。
Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java。5月23日,Sun公司在Sun world会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。
1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。9月,约8.3万个网页应用了Java技术来制作。10月,Sun公司发布了Java平台的第一个即时(JIT)编译器。
1997年2月,JDK 1.1面世,在随后的3周时间里,达到了22万次的下载量。4月2日,Java One会议召开,参会者逾一万人,创当时全球同类会议规模之纪录。9月,Java Developer Connection社区成员超过10万。
1998年12月8日,第二代Java平台的企业版J2EE发布。1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。
1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。
2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持
2001年9月24日,J2EE1.3发布。
2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升,与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),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。Sun公司正式发布的有关Java平台标准版的第一批源代码,以及Java迷你版的可执行源代码。
从2007年3月起,全世界所有的开发人员均可对Java源代码进行修改。
2009年,甲骨文公司宣布收购Sun,这也预示着,Java将出现收费版本。
2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。
2011年,甲骨文公司举行了全球性的活动,以庆祝Java7的推出,随后Java7正式发布。
2014年,甲骨文公司发布了Java8正式版。 Oracle 于 2019 年 1 月停止更新(商用),Oracle 于 2020 年 12 月停止更新(非商用),AdoptOpenJDK 于 2026 年 5 月或之前停止更新,Amazon Corretto 于 2023 年 6 月或之前停止更新
2017 年 9 月 22 日,Java 9正式发布,带来了很多新特性,其中最主要的变化是已经实现的模块化系统。OpenJDK 于 2018 年 3 月停止更新。
Java 9开始,Java平台的发布模式就发生了变化,每六个月就会推出一个新版本的Java,但为了更频繁地提供新功能,这些版本的支持周期一般只持续到下个新版本的推出,维护期之后,如果使用补丁包、升级包就需要付费,其实没多大影响,你可以继续使用不升级就是了,选择新版本同样在维护期内免费,维护期之后使用补丁包、升级包就需要付费。
可能正因为如此,开发者们现在更喜欢使用OpenJDK,Open就是开放,开源的意思,Oracle公司发布新版的JDK时会发布两个版本:一个是加了一些自己Oracle公司的商业技术的JDK (就类似在一个纯净的软件上加了一些自己的插件等) ,另一个是OpenJDK(也就是一般没有加任何其他插件的纯净版的JDK)。即便是这样JDK与OpenJDK源代码差距也微乎其微,几乎也可以认为是一模一样。
Oracle发布OpenJDK后,全球各大公司比如国内B A T大厂,国外的亚马逊,IBM,FaceBook等各种互联网大厂,这些公司获取到OpenJDK后就可以加上自己公司的一些商业技术插件然后就形成了自己公司的JDK了。
这里值得关注的是,目前开发者们都喜欢下载亚马逊的OpenJDK使用,在Oracle上下载占比为34%,在亚马逊上下载占比为22%,注意:在2020年Oracle上下载占比还在75%,现在是腰斩的状态,这可能是因为Java之父 高斯林从Oracle离职之后入职亚马逊的原因.
2022年新的统计报告也表示,目前全球使用Java11的用户最多占48%,超过了Java8的,目前Java8占比 46.45%,这不仅和新版本的新特性有关,还和Java8以后版本的垃圾回收机制有关,还要补充一句,目前Java应用70%运行在容器中。
2018 年 3 月,Java 10。OpenJDK 于 2018 年 9 月停止更新 不适用
2018 年 9 月,Java 11。Amazon Corretto 于 2024 年 8 月或之前停止更新,AdoptOpenJDK 于 2022 年 9 月停止更新
2019 年 3 月,Java 12,OpenJDK 于 2019 年 9 月停止更新
2019 年 9 月,Java 13,OpenJDK 于 2020 年 3 月停止更新
2020 年 3 月,Java 14,OpenJDK 于 2020 年 9 月停止更新
2020 年 9 月,Java 15,OpenJDK 于 2021 年 3 月停止更新
2021 年 3 月,Java 16,OpenJDK 于 2021 年 9 月停止更新
2021 年 9 月,Java 17,Oracle 宣布,从 JDK 17 开始,后面的 JDK 都全部免费提供,包括商用也是免费。