【JAVA】十分钟带你了解java的前世今生

简介: 【JAVA】十分钟带你了解java的前世今生

个人主页:【😊个人主页】
系列专栏:【初始JAVA】

在这里插入图片描述


@[toc]


前言

玩过我的世界的朋友想必对JAVA以及它的图标都很熟悉,在游戏开始画面停留在此时,我们可能会好奇,“它”有什么作用,“它”为什么会被称之为“JAVA”,它为什么又“长”成这样?
在这里插入图片描述


JAVA介绍

Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。

Java 是一个通用术语,用于表示 Java 软件及其组件,包括“Java 运行时环境 (JRE)”、“Java 虚拟机 (JVM)”以及“插件”。


诞生🔬

20世纪90年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它可以大幅度提升消费性电子产品的智能化程度。SUN公司为了抢占市场先机, 在1991年成立了一个由詹姆斯.高斯林(James Go sig) 领导, 名为"Green"项目小组, 目的是开发一种能够在各种消费性电子产品上运行的程序架构。当时的C++就成首选,但C++过于复杂和庞大,再加上由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,需要让编写的程序跨平台运行,假如用C++编写的话对程序的跨平台运行不友好。最后项目小组决定:既不用C++编写,也不开发新的编程语言,而是对C++进行改造:==去除了C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求==,最终在1992年,他们开发了一种名为“Oak”的面向对象语言。当他们在向硬件生产商进行演示的时候,硬件生产商对此并不感冒, OaK语言因为缺乏硬件的支持而无法进入市场。
==1994年, 项目小组看到了浏览器在未来的发展前景,于是决定将OaK应用于万维网==。1995年, 他们用OaK语言研发了一种能将小程序嵌入到网页中执行的技术——Applet, 由于Applet不仅能嵌入网页, 还可以随网页在网络上进行传输, 这让无数的程序员看到了OaK这门语言,后来OaK正式更名为Java标志着Java语言的正式诞生。几个月后,网上超过10万人下载Java语言!

在这里插入图片描述


名字与图标🤖

承接前言我们提出的问题JAVA的名字与图标时怎么来的?

Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。
据James Gosling回忆,最初这个为TV机顶盒所设计的语言在Sun内部一直称为Green项目。我们的新语言需要一个名字。Gosling注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。
在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到James Gosling的坚决反对。排在第二和第三的都没有通过律师这一关。只有排在第四位的名字、得到了所有人的认可和律师的通过,这个名字就是Java。

10多年来,Java就像爪哇咖啡一样誉满全球,成为实至名归的企业级应用平台的霸主。而Java语言也如同咖啡一般醇香动人。

发展🛩️

1996年,JDK1.0发布,标志着java成为一种独立的开发工具。^1
1997年2月,SUN公司推出了JDK1.1在推出后3周时间里,达到了近22万次的下载量。4月2日,首届JavaOne大会在美国旧金山召开^2.
1998年12月8日,JDK1.2第二代Java平台的企业版J2EE发布。
1999年6月 ,Sun公司把Java体系分为三个方向.[^3]随着供应商的不同, Java的API也分为三大类.[^4]Java 2平台的发布,是Java发展过程中最重要的一个里程碑, 标志着Java的应用开始普及。
1999年4月27日,HotSpot虚拟机[^5]发布。
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语言发展史上的又一里程碑。为了表示该版本的重要性, J2SE1.5更名为JavaSE5.0(内部版本号1.5.0) .JavaSE5.0包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。
2005年6月, 在JavaOne大会上,Sun公司发布了JavaSE6。此时,Java的各种版本已经更名, 已取消其中的数字2, 如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
2011年7月28日,收购Sun公司的Oracle发布了JavaSE7,引入了二进制整数、支持字符串的switch语句、棱形语法、多异常捕抓、自动关闭资源的try语言等新特性。
2014年3月18日,Oracle公司发布JavaSE8,这次版本升级为Java带来了全新的Lambda表达式、流式编程等大量新特性,这些新特性使得Java变得更加强大。
2017年9月22日,Oracle公司发布JavaSE9, 这次版本升级强化了Java的模块化系统, 让Java语言更轻量化, 且采用了更高效、更智能的GI垃圾回收器,并在核心类库上进行大量更新,可进一步简化编程。
2018年3月21日,JavaSE 10发布,Java 10版本带来了很多新特性, 其中最备受广大开发者关注的莫过于局部变量类型推断。此外,还包垃圾收集器改善、GC改进、性能提升、线程管控等新特性。
2018年9月26日,JavaSE 11发布.这是Java大版本周期变化后的第一个长期支持版本(LTS版本持续支持到2026年9月)。Java 11带来了ZGC、HttpClient等重要特性,一共包含17个JEP(JDKEnhancementProposals,JDK增强提案)。
2019年3月20日,JavaSE 12发布。Java 12是短期支持版本,可在下一个版本发布之前获得Oracle的商业支持。
2019年9月23日,JavaSE 13发布,此版本中添加了“文本块”。文本块是一个多行字符串文字,避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。


未来🪄

作为世界上最流行的编程语言(之一),==因为其一次编写即可随处运行(WORA)功能,可用于任何平台(如Mac、Windows、Android、iOS等)跨平台(从大型机数据中心到智能手机)的可移植性而受到认可==。目前,有超过30亿台设备运行用Java构建的应用程序。Java广泛应用于web和应用程序开发以及大数据开发,也用于一些流行网站的后端,它还广泛应用于数百种应用中。一些新的Java框架,如Spring、Struts和Hibernate也非常流行。Java是一种较为复杂的编程语言,但对具有Java编码技能的有经验的开发人员的需求很高,有数据显示,全球范围的Java开发人员的平均年收入约为109,225美元(RMB约740,000元)。根据国内的招聘网站的数据显示,Java开发工程师的月平均工资约为25,053元,最高能达到79,900元。

在这里插入图片描述

[^3]:J2ME(Java 2 Micro Edition, Java 2平台的微型版) 应用于移动、无线及有限资源的环境:J2SE(Java 2 Standard Edition, Java 2平台的标准版),应用于桌面环境;J2EE(Java 2 Enterprise Edition, Java 2平台的企业版),应用于基于Java的应用服务器。
[^4]: JavaCoreAPI:Java核心类库;Java Optional API:对之前API的扩充;特殊API:由特殊厂商或组织提供的API。JKD1.2的代表性技术有:Swing、Java IDL、EJB、Java Plug-in等, 在API文档中, 添加了strict fp关键字和Collections集合类。
[^5]: HotSpot是由一家“Longview Technologies”的小公司开发的,后来被SUN公司收购。HotSpot虚拟机发布时是作为JDK1.2的附加程序提供的, 后来它成为了JDK1.3及之后所有版本的Sun JDK的默认虚拟机。

目录
相关文章
|
2月前
|
Java
java程序
re是java运行时的环境,包含jvm和运行时所需要的类库 jdk是java开的程序包,包含jre和开发人员使用的工具 jvm就是我们常说的java虚拟机,他是整个java实现跨平台的最核心 的部分,所有的java程序会首先被编译为.class的类文件,这种类文 件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统 相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释 给本地系统执行。 只有jvm还不能成class的执行,因为再解释class的时候jvm需要调用 解释所需要的类库lib,而jre包含lib类库。jvm屏蔽了与具体操作系 统平台相关的信息,使得java程
17 0
|
12月前
java2java202303java学习笔记第三十八天同步
java202303java学习笔记第三十八天同步方法1
43 0
|
12月前
|
Java
java202304java学习笔记第四十八天-请求-java许多java的程序包不存在
java202304java学习笔记第四十八天-请求-java许多java的程序包不存在
56 0
java202302java学习笔记第十天-什么是方法2
java202302java学习笔记第十天-什么是方法2
36 0
java202302java学习笔记第十天-什么是方法2
|
Java
java202302java学习笔记第一天-java三大版本
java202302java学习笔记第一天-java三大版本
51 0
java202302java学习笔记第一天-java三大版本
java202302java学习笔记第一天-编译型和解释型1
java202302java学习笔记第一天-编译型和解释型1
28 0
java202302java学习笔记第一天-编译型和解释型1
java202302java学习笔记第五天-什么是方法1
java202302java学习笔记第五天-什么是方法1
43 0
java202302java学习笔记第五天-什么是方法1
java202302java学习笔记第五天-什么是方法3
java202302java学习笔记第五天-什么是方法3
40 0
java202302java学习笔记第五天-什么是方法2
java202302java学习笔记第五天-什么是方法2
63 0
java202302java学习笔记第五天-什么是方法2
java202302java学习笔记第二天-数据类型转换2
java202302java学习笔记第二天-数据类型转换2
43 0
java202302java学习笔记第二天-数据类型转换2