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

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

在这里插入图片描述


文章目录

  • 前言
  • JAVA介绍
  • 诞生🔬
  • 名字与图标🤖
  • 发展🛩️
  • 未来🪄


前言

玩过我的世界的朋友想必对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也分为三大类.4Java 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元。

在这里插入图片描述


  1. JDK1.0的代表性技术有:Java虑拟机、Applet、AWT等。 ↩︎

  2. 参加会议超过一万人,创造了当时全球同类会议规模最高的纪录。社区成员超过10万人,同年还有10个最主要的操作系统供应商正式声明将在他们的产品中使用Java。JDK1.1的代表性技术有JDBC、JavaBeans、RMI、JAR文件格式、Java语法中的内部类和反射。 ↩︎

  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的默认虚拟机。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4865.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring进阶学习(附面试快速答法)

文章目录 1、Bean线程安全问题小总结面试快速答法 2、AOP小总结面试快速答法 3、bean的生命周期小总结面试快速答法 4、循环引用小总结面试快速答法 5、SpringMVC的执行流程小总结面试快速答法 6、Springboot自动配置原理小总结面试快速答法 7、Spring框架常见注解面…

【数据库原理】MyShop 商城数据库设计(SQL server)

MyShop 商城数据库设计 项目背景定义课程设计要求概念结构设计逻辑结构设计数据结构的描述用户信息数据结构的描述地址信息数据结构的描述商品类别数据结构的描述商品数据结构的描述购物车数据结构的描述订单数据结构的描述订单项数据结构的描述 物理结构设计用户表结构地址表结…

2013年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 💕兴趣爱好:b站天天刷&…

基于appnium+python+夜神模拟器的自动化

目录 1、安装夜神模拟器 2、定位元素 3、开始编码 首先搭好appnium环境!参考https://www.cnblogs.com/testlearn/p/11419797.html 1、安装夜神模拟器 下载安装夜神模拟器后,在cmd命令输入adb connect 127.0.0.1:62001,显示出设备则表示…

Elasticsearch:实用 BM25 - 第 2 部分:BM25 算法及其变量

这是第一部分 “Elasticsearch:实用 BM25 - 第 1 部分:分片如何影响 Elasticsearch 中的相关性评分” 的续篇。 BM25算法 我将尽可能深入这里的数学以解释正在发生的事情,但这是我们查看 BM25 公式的结构以深入了解正在发生的事情的部分。 首…

threejs使用外部模型

个人博客地址: https://cxx001.gitee.io 前面我们都是用Threejs提供的几何体来创建网格,对于简单几何体(如球体和方块)来说非常有效,但当你想要创建复杂的三维模型时,这不是最好的方法。通常情况下,你可以使用三维建模工具&#…

Kafka详解

文章目录 1、kafka简单介绍2、kafka使用场景3、kafka基本概念4、kafka集群1、数据冗余2、分区的写入1、使用 Partition Key 写入特定 Partition2、由 kafka 决定3、自定义规则 3、读取分区数据 5、提交策略6、kafka如何保证高并发 1、kafka简单介绍 kafka是一款分布式、支持分…

IDEA远程DeBug调试

1. 介绍 当我们在开发过程中遇到一些复杂的问题或需要对代码进行调试时,远程调试是一种非常有用的工具。使用 IntelliJ IDEA 进行远程调试可以让你在远程服务器上的应用程序中设置断点、查看变量和执行调试操作。 远程调试的好处如下: 提供更方便的调试…

《Opencv3编程入门》学习笔记—第十一章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第十一章 特征检测与匹配 一、SURF特征点检测 太复杂了!全是公式! (一)SURF算法概览 SURF,SpeededUp Rebus…

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic 话不多说先上效果 (真香) 下载地址(官方) https://www.lanzoui.com/b0bf2cfa/ 密码:glqw 软件安装包说明 文…

对 tcp out-of-window 的安全建议

TCP 收到一个 out of window 报文后会立即回复一个 ack,这是 RFC793 中 SEGMENT ARRIVES 段的要求。但这是为什么?难道不是默默丢弃才对吗? 对 oow 报文回复 ack,岂不是把正确的 ack 号回过去了吗,这样攻击者盲打一番…

Qt在Ubuntu下如何进行桌面软件开发?

文章目录 0.引言1.新建项目2.编写第一个程序3.在Qt外部启动程序 0.引言 笔者研究的方向涉及在ubuntu中运行代码,早先是直接利用控制台运行代码文件,在控制台中虽然设法将代码精简到一个三个文件中,只需要在控制台运行这三个文件即可&#xff…