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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

7.3 SpringBoot整合MyBatis分页插件github.pageHelper:实现图书列表API

文章目录 前言一、自己实现分页第一步,count 查询 总记录数(totalCount),计算总页数(totalPages)第二步,limit 查询 指定页数据 二、不考虑分页的查询图书列表MapperBookServiceImplBookListPar…

FastDFS单机部署及SpringBoot整合

前言 FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),可以解决高容量和负载平衡问题。FastDFS应满足其服务基于文件的网站的要求,如照片共享网站和视…

Maynor的博客专家成长之路——暨2023年中复盘

文章目录 博客专家成长之路——暨2023年中复盘前言念念不忘的博客专家每天只做三件事敲代码写博客健健身 我的感悟 不足之处未来:和CSDN共同成长最后 博客专家成长之路——暨2023年中复盘 前言 ​ 2023年不知不觉已经过去了半年有余,也是时候作年中复盘…

ChatGPT 是什么?

写在前面:这篇文章是今年1月份对chatgpt做调研学习时写的,都是从别处搬来的,纯扫盲的作用。本来一直以草稿的形势存在,但今天整理博客,顺便给发出来吧。 文章目录 1. ChatGPT简介1.1 ChatGPT 支持的场景举例 2 ChatGPT…

计算机网络————应用层

文章目录 概述域名系统DNS域名结构域名服务器解析过程常见的DNS记录DNS报文格式基础结构部分问题部分资源记录(RR, Resource Record)部分 万维网WWWURLHTTPHTTP发展HTTP报文结构请求报文响应报文 cookie 内容分发网络CDN 概述 应用层的具体内容就是规定应用进程在通信时所遵循的…

python数据分析之利用多种机器学习方法实现文本分类、情感预测

大家好,我是带我去滑雪! 文本分类是一种机器学习和自然语言处理(NLP)任务,旨在将给定的文本数据分配到预定义的类别或标签中。其目标是为文本数据提供自动分类和标注,使得可以根据其内容或主题进行组织、排…

【AI】PyTorch安装记录及Anaconda环境配置

【AI】PyTorch安装记录及Anaconda环境配置 说下本地环境,RTX4070 12GB GPU;618刚买,不能让他闲着,配置一下炼丹环境,开始为打工人工作。为了方便后续部署模型之间依赖不冲突,所以使用Anaconda管理Python环…

网络环境TFTPNFS搭建

文章目录 1. TFTP服务搭建2. NFS 环境搭建 1. TFTP服务搭建 1、Ubuntu上搭建TFTP服务器,需要安装tftp-hpa和tftpd-hpa,命令如下: sudo apt-get install tftp-hpa tftpd-hpa sudo apt-get install xinetd2、TFTP也需要一个文件夹来存放文件…

Django DRF - 【Token】认证基本使用

一. 前言 Django Rest Framework Token是Django Rest Framework中的一个扩展,用于实现用户认证和授权。它为每个用户生成一个唯一的Token,并将其存储在数据库中。在用户进行API请求时,用户需要在请求的HTTP Header中包含Token,这…

考场作弊行为自动抓拍告警算法 yolov7

考场作弊行为自动抓拍告警系统通过yolov7python网络模型算法,考场作弊行为自动抓拍告警算法实时监测考场内所有考生的行为,对考生的行为进行自动抓拍,并分析判断是否存在作弊行为。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff…

关于Apache Dubbo反序列化漏洞(CVE-2023-23638)的预警提示与对应的Zookeeper版本

公司在升级dubbo过程中因zookeeper版本不匹配,导致服务注册和调用出现异常 一、漏洞详情 Apache Dubbo是一款高性能、轻量级的开源Java服务框架。 Apache官方发布安全公告,修复了Apache Dubbo中的一个反序列化漏洞(CVE-2023-23638&#xff…

玩转C++调试之Python的GDB库增强

玩转C调试之Python的GDB库增强 0.导语 调试是软件开发过程中不可或缺的一环,而GDB(GNU调试器)作为一款功能强大的调试工具,在开发者中得到广泛应用。除了传统的命令行调试功能外,GDB还提供了Python的GDB库,…

计算机网络——自顶向下方法(第一章学习记录)

什么是Internet? 可以从两个不同的方面来理解Internet。(它的构成。它的服务) 1.因特网的主要构成 处在因特网的边缘部分就是在因特网上的所有主机,这些主机又称为端系统(end system),端系统通过因特网服…

【C2】文件,时间,多线程,动静态库

文章目录 1.文件:fprint/fgets/fwrite/fread,ftell/rewind/fseek/fflush1.1 文本文件:FILE结构体1.2 二进制文件:没有行概念1.3 文件定位:linux下文本文件模式和二进制文件模式没有区别。fgets和fprintf以行方式读写文…

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册

【测试效率提升技巧】xmind测试用例转换为excel工具使用手册 一、前置环境配置二、执行Xmind2testcase的转换方法1.在控制台输入xmind2testcase [path/xmind文件路径] [-csv] [-xml] [-json],例:xmind2testcase /root/homin/XX测试点.xmind -csv ##在当前…

MacOS 升级golang版本后无法debug,升级delve版本

golang版本升级到1.20以后导致debug失效了,本文针对MacOS系统,win系统也可作参考。 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.4 (maximum supported version 1.19) 1、升级delve版本 brew install delve 安装…

抖音seo账号矩阵系统源码代开发组件

一.开发矩阵系统的项目背景: 目录 一.开发矩阵系统的项目背景: 二.短视频矩阵系统SaaS模板组件通常包含以下几个方面的内容: 三.抖音SEO账号矩阵系统源码的技术搭建过程可以分为几个步骤: 1.确定系统的需求和目标&#xff0c…

MATLAB App Designer基础教程 Matlab GUI入门(一)

MATLAB GUI入门 第一天 学习传送门: 【MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程】 https://www.bilibili.com/video/BV16f4y147x9/?p2&share_sourcecopy_…

Spring Boot是什么?详解它的优缺点以及四大核心

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、Spring Boot 是什么? 二、Spring Boot 的优缺点 1、优点 ①可快速构建独立的 Spring 应用 ②直接嵌入Tomcat、Jett…

基于SpringBoot+mybatis+layui就业管理系统设计和实现

基于SpringBootmybatislayui就业管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…