12.Java语言的发展

JAVA语言的诞生是具有一定戏剧性的,可以说是命运多舛,差点凉凉,差点GG,差点嗝屁。

image-20240327153343805

在1990年的时候Sun(Stanford University Network:斯坦福大学网络)公司成立了一个由 James Gosling 领导的Green计划,准备为下一代的职能家电,也就是电视机、微波炉、电话等去编写一个通用的控制器,这个负责人就是James Gosling,它也名为Java语言之父。

在一开始的时候,这个团队是准备用C++来编写的,但是发现C++在很多方面存在一些问题,使用起来十分不方便,导致项目的进展非常的缓慢,但是大神不愧是大神,编程语言不方便,就自己造一个,所以他们就造了一个全新的语言:Oak语言,起这个名字是因为他们项目团队的门前长了一颗橡树,Oak就是橡树的意思。

到了1992年的时候,Green计划已经完成了新平台的部分功能。包括Green的操作系统、Oak的程序设计语言、类库等。简单理解就是,已经用Oak语言已经做了很多很多事情了。

Sun公司看见这个团队这么牛逼,所以就在11月份,成立了由Sun公司全资的子公司,它的名字就叫做 FirstPerson有限公司。因为这家公司大多数都是程序员,不太会管理,所以因为管理不善, FirstPerson有限公司几乎凉凉,Oak语言也差点凉凉。

但是到了1994年,随着互联网行业进入到快速的发展阶段,Java语言之父James Gosling非常有商业眼光,它立马改写了Oak语言。在同年秋天,完成了第一个Oak语言的网页浏览器,它的名字叫做WebRunner,这个浏览器现在已经不用了,但是在当时,它是一个跨时代的产品,Sun公司看到它们这么牛逼,所以就准备去给Oak注册商标了,但是Oak已经被一家投资公司美国橡树资本管理有限公司给注册过了,所以只能改名叫:JAVA。因为外国的程序员都是比较爱喝咖啡,而生产咖啡豆的地方叫做爪哇岛,所以就改名,叫做JAVA。

改完名字之后,在1995年的时候,正式推出了JAVA。

image-20240327160129987

随后又出现了1.0、1.1、1.2、1.3、1.4版本,但是Sun公司发现了,每次更新只改小数点后面一位,太小家子气了,所以从5开始就改成了大版本号更新,称之为 Java5.0。在06年的时候又推出了6.0。到了09年的时候,Sun公司被Oracle甲骨文公司收购了。Oracle公司在全球而言是非常厉害的公司,是仅次于微软的第二大网络公司。所以Java在Oracle手中,市场份额越来越大,语言的版本也在不断更新,到目前为止,最新的就是刚推出来的Java17。通过这么多版本出现的时间可以发现,从Java9开始,基本上都是6个月出一次版本,Java之所以要保持这么快的更新速度,其实就是为了紧贴市场的发展,使得Java自己不会被淘汰。

image-20240327160704529

但是这么快的更新速度会给我们开发者造成学习上的困扰,所以为了解决这些问题,Java会把这些版本分成两种:1、普通版(过渡版本);2、正式版(长期支持版本)(长期支持版本会有LTS后缀)。

在这么多版本当中,其中Java8、Java11、还有我们现在学习用的Java17,就是LTS长期支持版本,所以从这一方面它就降低了开发者的学习成本。在这么多版本当中,其中有三个版本非常的重要:

  • Java5.0:这是Java的第一个大版本更新。
  • Java8.0:这个是目前绝大数公司正在使用的版本。因为这个版本最为稳定。
  • Java17.0:这个是我们课程中学习的版本。

这些版本向下兼容。新的版本只是在原有的基础上添加了一些新的功能而已。

举例:

用8版本开发的代码,用11版本能运行吗?必须可以的。

用11版本开发的代码,用8版本能运行吗?不一定。

如果11版本开发的代码,没有用到9~11的新特性,那么用8是可以运行的。

如果11版本开发的代码,用到了9~11的新特性,那么用8就无法运行了。

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

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

相关文章

【unity】unity安装及路线图

学习路线图 二、有关unity的下载 由于unity公司是在国外,所以.com版(https://developer.unity.cn/)不一定稳定,学习时推荐从.cn国内版(https://developer.unity.cn/)前往下载,但是后期仍需回…

通过dockerfile制作代码编译maven3.8.8+jdk17 基础镜像

一、背景: paas平台维护过程中有一个流水线的工作需要支持运维,最近有研发提出新的需求要制作一个代码编译的基础镜像出来,代码编译的基础镜像需求如下: maven版本:3.8.8版本 jdk版本:17版本,小…

C++中的STL简介与string类

目录 STL简介 STL的版本 STL的六大组件 string类 标准库中的string类 string类的常用接口 string类对象对容量的操作 size()函数与length()函数 capacity()函数 capacity的扩容方式 reserve()函数 resize()函数 string类对象的操作 push_back()函数 append()函数 operator()函数…

Redis与数据库的一致性

Redis与数据库的数据一致性 在使用Redis作为应用缓存来提高数据的读性能时,经常会遇到Redis与数据库的数据一致性问题。简单来说,就是同一份数据同时存在于Redis和数据库,如何在数据更新的时候,保证两边数据的一致性。首先&#…

用Blender给MetaHuman不同胖瘦身体模型做插值,计算过度模型

用Blender给MetaHuman不同胖瘦身体模型做插值,计算过度模型 本篇文章所有想法和代码均为ChatGPT所写 需求:MetaHuman的身体有瘦、标准、胖三个体型,想要通过三个体型插值计算出符合用户体型的更多模型 建议:chatGPT建议用Blender&…

Mysql数据库:主从复制与读写分离

目录 前言 一、Mysql主从复制概述 1、Mysql主从复制概念 2、Mysql主从复制功能和使用场景 2.1 功能(为何使用主从复制) 2.2 适用场景(何时使用主从复制) 3、Mysql复制的类型 3.1 基于SQL语句的复制(Statement默…

【原生小程序-增加友盟统计】

1.project.config.json中 //最外面的 {"packNpmManually": true,"packNpmRelationList": [{"packageJsonPath": "./package.json","miniprogramNpmDistDir": "./"}] }2.在终端中输入npm init -y 3.再输入命令np…

整理git上的模板框架

vite-vue3.0-ts-pinia-uni-app 技术栈的app框架 功能:基于 uni-app,一端发布多端通用,目前已经适配 H5、微信小程序、QQ小程序、Ios App、Android App。 taro3vue3tsnutuipinia taro3 框架小程序跨端平台 vue3.0-element-vite-qiankun 后台…

HarmonyOS实战开发-如何构建多种样式弹窗

介绍 本篇Codelab将介绍如何使用弹窗功能,实现四种类型弹窗。分别是:警告弹窗、自定义弹窗、日期滑动选择器弹窗、文本滑动选择器弹窗。需要完成以下功能: 点击左上角返回按钮展示警告弹窗。点击出生日期展示日期滑动选择器弹窗。点击性别展…

【动态规划】Leetcode 62. 不同路径I 63. 不同路径II

【动态规划】Leetcode 62. 不同路径I 63. 不同路径II Leetcode 62. 不同路径ILeetcode 63. 不同路径II ---------------🎈🎈62. 不同路径I 题目链接🎈🎈------------------- ---------------🎈🎈63. 不同路…

【YOLOv5改进系列(7)】高效涨点----使用yolov8中的C2F模块替换yolov5中的C3模块

文章目录 🚀🚀🚀前言一、1️⃣ C3模块和C2F模块详解1.1 🎓 C3模块1.2 ✨BottleNeck模块1.3 ⭐️C2F模块 二、2️⃣添加C2f和C2F_Bottleneck模块代码三、3️⃣新建yolov5s_C2F.yaml文件四、4️⃣修改yolo.py中的parse_model函数五…

Collction的三种遍历

目录 集合体系结构 迭代器遍历: 增强for遍历: Lambda表达式遍历 集合体系结构 List 系列集合 : 添加元素是有序的、可重复的,有索引的; 有序的:存和取的顺序是一样的; Set 系列集合 &#…

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Sui与Revolut合作,加速Sui区块链教育和采用

作为全球一体化金融平台,Revolut与Sui合作推出了最新的加密货币学习课程。Revolut拥有全球超过4,000万用户,提供一系列数字银行产品和服务,包括购买和出售加密货币,其中包括SUI。 Revolut的学习计划为其用户提供有关Sui的教育&am…

蓝桥杯嵌入式学习笔记(7):ADC程序设计

目录 前言 1. ADC原理 1.1 主要特性 1.2 模拟输出电路图 2. 使用CubeMX进行源工程的配置 2.1 引脚配置 2.2 配置AD1 2.3 配置AD2 2.4 配置时钟 3. 代码编程 3.1 预备工作 3.2 bsp_adc.h文件编写 3.3 bsp_adc.c文件编写 3.4 main.c编写 3.4.1 时钟函数配置 3…

java子集(力扣Leetcode78)

子集 力扣原题链接 问题描述 给定一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。可以按任意顺序返回解集。 示例 示例 1: 输入:nums [1,2,3] 输出&#x…

python3将exe 转支持库错误 AssertionError: None does not smell like code

exe -> pyc包(*.exe_extracted) 安装反编译工具 exe反编译工具:pyinstxtractor.py下载:https://sourceforge.net/projects/pyinstallerextractor/ python pyinstxtractor.py hello.exe包反编译 懒的写!!! 这有详…

英语广场期刊投稿发表论文

《英语广场》是由国家新闻出版总署批准的正规期刊,杂志本着“轻松读原作,快乐学英语”的宗旨,倡导“寓学于乐”的学习理念,其活泼的办刊风格和优秀的文章选材受到读者特别是广大中学生的广泛欢迎,取得了良好的社会效益…

redis 的设计与实现(三)——对象

1. 前言: 在第一章节我们了解到了,redis底层所涉及的数据结构,但是这并非是离我们最近的一层,在此之上,redis实现了一层对象与我们交互。我们在本篇内容中将了解到: 对象对应的实现redis一些常用特性的实现…

数字化坚鹏:小熊电器面向数字化转型的大数据顶层设计实践培训

小熊电器面向数字化转型的大数据顶层设计实践培训圆满结束 ——努力打造“数据技术营销”三轮驱动的数字化领先企业 小熊电器股份有限公司由李一峰创立于2006年,是一家专业从事创意小家电研发、设计、生产和销售的实业型企业。2019年8月23日正式在深交所挂牌上市。…