当前位置: 首页 > news >正文

java的详细发展历程

Java是一种跨平台、面向对象的编程语言,具有简单性、可移植性、安全性等特点。Java的历史可以追溯到上世纪90年代初期,以下是Java的详细发展历程:

  1. 1991年,Sun Microsystems公司的James Gosling和他的团队开始开发一种名为Oak的编程语言,目标是为嵌入式设备提供一种可靠的编程语言。

  2. 1992年,Oak更名为Java,并在同年发布了第一个Java开发工具集(Java Development Kit,简称JDK)。

  3. 1995年,Java 1.0版本发布。Java的发布引起了广泛的关注,其具有跨平台、面向对象、分布式等特点,成为Web应用程序开发的首选语言。

  4. 1996年,Java 1.1版本发布,增加了内部类、JavaBean等特性,进一步提高了开发效率。

  5. 1998年,Java 1.2版本发布,增加了集合框架、Swing用户界面组件、JDBC等特性,Java开始逐渐应用于企业级应用开发。

  6. 2000年,Java 1.3版本发布,增加了Java Platform Debugger Architecture(JPDA)、Java Naming and Directory Interface(JNDI)等特性,提高了开发者的开发效率。

  7. 2002年,Java 1.4版本发布,增加了正则表达式、NIO等特性,Java的应用范围进一步扩大。

  8. 2004年,Java 1.5版本发布,增加了泛型、注解、枚举等特性,提高了代码的可读性和可维护性。

  9. 2006年,Sun Microsystems公司发布了Java的一部分源代码,Java开始走向开源。

  10. 2009年,Java 1.6版本发布,增加了支持脚本语言、增强了性能、支持多核处理器等特性,进一步提高了Java的应用效率和性能。

  11. 2011年,Oracle公司收购了Sun Microsystems公司,Java开始由Oracle公司负责开发和维护。

  12. 2014年,Java 8版本发布,增加了Lambda表达式、Stream API、新的日期时间API等特性,提高了Java的编程效率。

  13. 2017年,Java 9版本发布,增加了模块化、JShell等特性,提高了Java的可维护性和可扩展性。

  14. 2018年,Java 10版本发布,增加了局部变量类型推断、G1垃圾收集器等特性。

  15. 2019年,Java 11版本发布,增加了HTTP客户端、ZGC垃圾收集器等特性。

  16. 2020年,Java 14版本发布,增加了Switch

    表达式的增强、Records等特性。

  17. 2021年,Java 16版本发布,增加了支持JDK版本间的移植性检测、强制JVM返回信息等特性。
  18. 除了Java语言本身的发展,Java技术生态圈的发展也非常迅速,如Java虚拟机、Java EE、Spring框架、Hibernate等都在不断地发展和演进,为Java开发者提供更多的选择和便利。

    总之,Java作为一门优秀的编程语言,经过多年的发展和演变,已经成为了企业级应用开发的主流语言之一,其在安全性、跨平台性、可移植性等方面具有优势,未来仍将继续发挥重要的作用。

相关文章:

java的详细发展历程

Java是一种跨平台、面向对象的编程语言,具有简单性、可移植性、安全性等特点。Java的历史可以追溯到上世纪90年代初期,以下是Java的详细发展历程: 1991年,Sun Microsystems公司的James Gosling和他的团队开始开发一种名为Oak的编程…...

丢石子

I 一堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win". 思路: 任何正整数都可以表示为不连续斐波那契…...

skywalking手动上报一些指标信息

skywalking的相关概念我就不介绍了,有兴趣可以参看官网文档 以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式,怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例&am…...

NUMA详解

目录 NUMA简介 NUMA开启与关闭 查看系统是否支持 关闭方法 numactl --hardware介绍 没有安装numactl工具下查看NUMA架构节点数: 查看每个NUMA节点的CPU使用情况: 看每个NUMA节点的内存使用情况: 查看NUMA下指定进程的运行情况 创建…...

H68K在Armbina系统下开AP

背景需求替代路由器,网上找了一大堆都不行 最后成功开启了AP 参考了两篇文章, 一篇是如何创建热点, 一篇是如何开启5G 树莓派4B创建5Ghz WiFi热点 – 风声 https://www.hncldz.com/2020/02/01/%e6%a0%91%e8%8e%93%e6%b4%be4b%e5%88%9b%e5%bb%ba5ghz-wifi%e7%83%ad%e7%82%b…...

还不懂Redis?看完这个故事就明白了!

还不懂Redis?看完这个故事就明白了! 我是Redis 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊源的。 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也…...

Haproxy负载均衡集群

1.Haproxy支持四层和七层 2.haproxy常用的调度算法? 3.LSV/NGINX/HAPROXT的区别? 4. 5.Haproy负载均衡部署 实验需求 利用Haproxy的运用配置出负载均衡调度器,以此来调用两台Nginx服务器进行工作 实验所需组件 Haproxy服务器:192…...

17.计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度

说明书 MATLAB代码:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度 关键词:碳捕集 虚拟电厂 需求响应 优化调度 电转气协同调度 参考文档:《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》完全复现 仿真平台&#xff1a…...

企业数字化管理中,数据治理到底怎么“治”

随着信息化、数字化的理念、技术及其应用在社会的方方面面进行扩散,数据的规模和丰富程度已经达到了一个新的高度,所以当下如何更进一步利用好数据,充分发挥数据的价值,将其真正变为高质量的数据资产成为了企业要面对的重要问题&a…...

《HelloGitHub》第 85 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …...

自动驾驶人机交互HMI产品技术方案

1. 概述 1.1 目的 本文档描述集卡自动驾驶系统中HMI产品的技术方案,设计人员遵循本方案进行设计,为项目开发实施提供技术方案保障。 1.2 范围 本文档适用于HMI产品项目。本文档用于指导HMI产品项目的UI、前端开发过程。 1.3 术语与缩写 术语/缩写 描述 HMI...

开发感悟20230426

一、element-ui样式设置 1. 可以直接在css中写个样式文件,把对应的类名改写样式,然后在main.js中引用,可以覆盖上面的,如果想给element-ui设置样式,不用设置deep了 2.可以直接修改引入的element-ui的样式&#xff0c…...

C和C++的区别

C和C的区别 1、面向对象编程:C是面向对象的语言,而C语言则不支持面向对象编程。C提供了类、对象、封装、继承、多态等面向对象的特性,使得程序结构更加清晰、可读性更强。2、模板:C提供了模板的特性,使得程序员可以通…...

【力扣-141】 环形链表 + 【力扣-142】 环形链表 II

🖊作者 : Djx_hmbb 📘专栏 : 数据结构 😆今日分享 : 霍桑效应(霍索恩效应) : 是指那些意识到自己正在被别人观察的个人具有改变自己行为的倾向。 霍桑效应告诉我们:从旁人的角度,善意的谎言和夸奖真的可以造就一个人&a…...

云计算:优势与未来趋势

文章目录 前言一、云计算的优势1. 降低IT成本2. 提高工作效率3. 提高业务的可靠性和稳定性4. 提升安全性 二、未来发展趋势1. AI与云计算的融合2. 边缘计算的发展3. 多云的趋势4. 服务器和存储的创新 三、 行业应用案例1.金融行业2.医疗保健行业3.教育行业4.零售和物流行业 四、…...

Linux namespace

​ 前言 从《initrd&init进程》可知,我们通过ssh连接linux服务器,其实主是linux启动一shell进程与我们做交互。而Linux又是多租户的,这使用得用户与用户间产生了,资源的争抢。 如何隔离资源,且让用户都无法察觉&…...

第十三章 移动和旋转(上)

移动和旋转是游戏对象最频繁地操作。我们上个章节简单介绍了Cube的移动和旋转。移动是修改transform的position属性,旋转是修改transform的eulerAngles(欧拉角)属性,两者属性值均可以使用Vector3向量来实现。需要大家注意的是&…...

视频文件切片

1.为什么网络点播系统使用m3u8更有优势?为何点播要用M3U8来搞?存成一个文件不更好吗? 一个MP4文件可能几百M或几个G,如果读取整个MP4文件的信息并且需要下载一段内容,首次打开播放超慢(加载时间长)。如果把…...

维生素的缺乏与生理功能,是否需要补充维生素【持续学习】

health & nutrition 学习自河南大学丁勇老师:https://space.bilibili.com/510028707 去医院查体内维生素缺啥:营养科或内科开单子 直接门诊查个维生素就可以。9项不到600块 正常吃饭,保湿和防晒 伤口愈合慢——蛋白质,vc 干燥…...

CUDA下载,以及下载GPU版本的pytorch

一、下载anaconda 因为这步我之前就下好了,主要参考这个链接:史上最全最详细的Anaconda安装教程 二、下载CUDA 1.首先观察自己需要什么版本的CUDA,以及是否安装过CUDA 先cmd,输入命令 nvidia-smi结果如下,所以我们…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...