Java发展简史

20世纪90年代,单片式计算机系统问世,这种系统不仅价格低廉,而且功能强大,大幅提高了消费电子产品的智能化水平。

为抢占市场,1991年Sun公司成立了由詹姆斯·高斯林领导的"Green"项目组,旨在开发能在各种消费电子产品上运行的程序架构。最初考虑使用C++编程,但由于其过于复杂庞大,且跨平台性差,最终决定在C++基础上创建新编程语言,剔除了复杂的指针和内存管理,同时实现多设备兼容。该语言最初名为Greentalk,后改名为Oak(橡树),象征力量。

1992年,Oak雏形问世,但未获硬件厂商认可而搁置。1994年,项目组发现Oak更适合互联网编程,并用它研发出能嵌入网页的Applet小程序技术。虽然Applet拯救了Oak,使其蜕变成Java,但后来Applet也很快被淘汰,技术迭代的确迅速残酷。

1995年,由于Oak名称已被注册,项目组将其重新命名为"Java",灵感来自生产咖啡而出名的印度尼西亚爪哇岛。同年,Sun公司发布Java 1.0版本,提出"Write Once, Run Anywhere"口号,Java被《时代》杂志评为年度十大佳产品之一。

1996年,JDK 1.0发布,Java首个正式运行环境版本面世。此后Java逐步被各大公司采纳,到1998年被拆分为J2SE(桌面开发)、J2EE(企业开发)和J2ME(移动开发)三个版本。

2000年代,Java不断推出重大升级版本,引入诸多新功能,逐步走向成熟。2009年,Oracle收购Sun,随后发布了JDK 7和8等重要版本。

近年Oracle保持较快的版本迭代节奏,但只有部分版本获得长期支持,如2021年的JDK 17是当前最新长期支持版本。

经过20多年发展,Java这一代表面向对象思想的语言,为工程领域带来了革命性影响,并不断拥抱变化创新。无论大数据、云计算还是分布式系统,Java都扮演着核心角色,形成了庞大的生态体系。尽管不断受到新语言的挑战,但强者自有其坚韧不拔的生命力,Java的未来可期。

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

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

相关文章

17双体系Java学习之数组的长度

数组的长度 //获取数组长度 arrays.lengthfor (int i 0; i <nums.length; i) {sum sum nums[i];}System.out.println("总和为&#xff1b;"sum);

2k_Day4:OpenFeign、Nacos、JSR303

SpringCloud-Alibaba Nacos 做为项目的注册中心、配置中心 OpenFeign 远程调用 声明式的HTTP访问 1.引入依赖OpenFeign 2.新增coupon项目被调的collection接口RequestMapping("/member/list") 3.新增member项目下feign/CouponFeignService调用的service接口 4.主函数…

免费阅读篇 | 芒果YOLOv8改进110:注意力机制GAM:用于保留信息以增强渠道空间互动

&#x1f4a1;&#x1f680;&#x1f680;&#x1f680;本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 该专栏完整目录链接&#xff1a; 芒果YOLOv8深度改进教程 该篇博客为免费阅读内容&#xff0c;直接改进即可&#x1f680;&#x1f680;&#x1f…

c++算法学习笔记 (7) BFS

1.走迷宫 #include <iostream> #include <algorithm> #include <queue> #include <cstring> using namespace std; typedef pair<int, int> PII; const int N 105; int n, m; int g[N][N]; // 存图 int d[N][N]; // 每个点到起点的距离 queue&…

【每日一题】134. 加油站

在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和 cost &…

信号处理--基于正则化聚合的共空间模态(CSP)脑电信号分类

目录 理论 工具 方法实现 代码获取 参考文献 理论 传统的通用空间模式 (CSP) 是一种流行的算法,用于对脑电图 (EEG) 信号进行分类。本文主要介绍小样本设置 (SSS) 中 CSP 的正则化和聚合技术。传统的 CSP 基于样本协方差矩阵估计。如果训练样本数量较少,其脑电图分类的…

万字数据仓库面试题及参考答案

数仓架构设计的方法和原则&#xff1a; 数仓架构设计的方法主要包括需求驱动、数据驱动和技术驱动。需求驱动是指根据业务需求进行设计&#xff0c;数据驱动是指基于数据的特点和规律进行设计&#xff0c;技术驱动是指充分利用现有技术和工具进行设计。 数仓架构设计的原则包…

Java八股文(XXL-JOB)

Java八股文のXXL-JOB XXL-JOB XXL-JOB xxl-job 是什么&#xff1f;它的主要作用是什么&#xff1f; xxl-job 是一款分布式任务调度平台&#xff0c;用于解决分布式系统中的定时任务和异步任务调度问题。 它提供了任务的注册、调度、执行和监控等功能&#xff0c;能够帮助开发者…

MindGraph:文字生成知识图

欢迎来到MindGraph&#xff0c;这是一个概念验证、开源的、以API为先的基于图形的项目&#xff0c;旨在通过自然语言的交互&#xff08;输入和输出&#xff09;来构建和定制CRM解决方案。该原型旨在便于集成和扩展。以下是关于X的公告&#xff0c;提供更多背景信息。开始之前&a…

Python错题集-9PermissionError:[Errno 13] (权限错误)

1问题描述 Traceback (most recent call last): File "D:\pycharm\projects\5-《Python数学建模算法与应用》程序和数据\02第2章 Python使用入门\ex2_38_1.py", line 9, in <module> fpd.ExcelWriter(data2_38_3.xlsx) #创建文件对象 File "D:…

[Vue]路由

Vue路由 Vue中的路由&#xff1a;路径和组件的映射关系 路由基本使用 下载 VueRouter 模块到当前工程&#xff0c;版本3.6.5 (vue2) npm i vue-router3.6.5 main.js中引入VueRouter import VueRouter from vue-router 注册插件 App.use(VueRouter) 创建路由对象 const rou…

机器学习----特征缩放

目录 一、什么是特征缩放&#xff1a; 二、为什么要进行特征缩放&#xff1f; 三、如何进行特征缩放&#xff1a; 1、归一化&#xff1a; 2、均值归一化&#xff1a; 3、标准化&#xff08;数据需要符合正态分布&#xff09;&#xff1a; 一、什么是特征缩放&#xff1a; 通…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之二 素描画风格效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之二 素描画风格效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之二 素描画风格效果 一、简单介绍 二、素描画风格效果实现原理 三、案例简单实现步骤 一、简单介绍 Python是一种跨…

react native 实现自定义底部导航与路由文件配置

首先先把需要的一些库引入 yarn install react-navigation/native yarn install react-native-screens react-native-safe-area-context yarn install react-navigation/native-stack yarn add react-navigation/bottom-tabs 创建路由文件及四个底部导航页面 router文件下的bot…

opengl使用着色器的示例程序

使用了glew库和freeglut库 #include <GL/glew.h> #include <GL/freeglut.h> #include <iostream>// 窗口大小 const GLint WIDTH = 800, HEIGHT = 600;

python 深度学习 记录遇到的报错问题12

本篇继python 深度学习 记录遇到的报错问题11_undefined symbol: __nvjitlinkadddata_12_1, version-CSDN博客 目录 一、AttributeError: module ‘tensorflow‘ has no attribute ‘app‘ 二、AttributeError: module tensorflow has no attribute placeholder 三、Attribu…

pytorch升级打怪(八)

保存模型和加载已有模型 保存并加载模型保存加载 保存并加载模型 在本节中&#xff0c;我们将研究如何通过保存、加载和运行模型预测来保持模型状态。 import torch import torchvision.models as models保存 PyTorch模型将学习的参数存储在内部状态字典中&#xff0c;称为s…

掘根宝典之C++RTTI和类型转换运算符

什么是RTTI RTTI是运行阶段类型识别的简称。 哪些是RTTI? C有3个支持RTTI的元素。 1.dynamic_cast运算符将使用一个指向基类的指针来生成一个指向派生类的指针&#xff0c;否则该运算符返回0——空指针。 2.typeid运算符返回一个指出对象类型的信息 3.type_info结构存储…

后端配置拦截器的一个问题【问题】

后端配置拦截器的一个问题【问题】 前言版权后端配置拦截器的一个问题问题解决 最后 前言 2024-3-14 00:07:28 以下内容源自《【问题】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog…

el-form 的表单校验,如何验证某一项或者多项;validateField 的使用

通常对form表单的校验都是整体校验&#xff1a; this.$refs.form.validate( valid > {if (valid) {// 校验通过&#xff0c;业务逻辑代码...} }); 如果需要对表单里的特定一项或几项进行校验&#xff0c;应该如何实现&#xff1f; 业务场景&#xff1a;下图点探测按钮时…