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

JDK(Java Development Kit)从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结,按时间顺序排列

以下是 JDK(Java Development Kit)从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结,按时间顺序排列:
在这里插入图片描述


1. JDK 1.0 (1996)

  • 发布年份:1996年1月23日
  • 关键特性
    • Java首次正式发布
    • 核心语言特性:类、接口、异常处理。
    • 核心API:java.langjava.iojava.awt(图形界面库)。

2. JDK 1.1 (1997)

  • 发布年份:1997年2月19日
  • 关键特性
    • 内省(Reflection):允许运行时检查类和方法。
    • JDBC(Java Database Connectivity):数据库连接API。
    • 匿名内部类:简化事件监听器等场景。
    • java.util扩展:新增HashtableVector等集合类。

3. JDK 1.2 (1998)

  • 发布年份:1998年12月8日
  • 关键特性
    • 命名改为JDK 1.2(原计划为JDK 2.0,但版本号保留1.x)。
    • Collections Framework:引入ArrayListHashMap等通用集合类。
    • strictfp关键字:确保浮点运算的平台一致性。
    • Thread类增强:join()sleep()等方法。

4. JDK 1.3 (2000)

  • 发布年份:2000年5月8日
  • 关键特性
    • HotSpot JVM:取代原来的JIT编译器,显著提升性能。
    • javax包扩展
      • javax.sound(音频处理)
      • javax.management(JMX管理)
      • javax.swing(改进的GUI库)。
    • 增强的I/O(NIO前身):初步支持非阻塞I/O。

5. JDK 1.4 (2002)

  • 发布年份:2002年2月6日
  • 关键特性
    • 正则表达式(Regex)java.util.regex包。
    • assert关键字:断言机制(调试工具)。
    • 日志APIjava.util.logging
    • 改进的I/O(NIO前身)RandomAccessFileFileChannel
    • 图像处理增强java.awt.image包。

6. JDK 5 (2004)

  • 发布年份:2004年9月30日
  • 关键特性
    • 泛型(Generics):类型参数化(如List<String>)。
    • 注解(Annotations)@Override@Deprecated等元数据标记。
    • 自动装箱/拆箱:基本类型与包装类自动转换。
    • 枚举(Enums):类型安全的枚举类型。
    • 可变参数(Varargs):方法参数可接受可变数量的参数(如method(int... args))。
    • 静态导入:通过import static直接导入静态方法或常量。

7. JDK 6 (2006)

  • 发布年份:2006年12月11日
  • 关键特性
    • 脚本引擎(Scripting Engine):支持JavaScript等脚本语言嵌入Java应用。
    • Java DB(Derby):内置数据库。
    • JVM改进:性能优化(如垃圾回收算法改进)。
    • 注解扩展@SafeVarargs@FunctionalInterface(后移至JDK 8)。
    • XML数字签名:增强安全性。

8. JDK 7 (2011)

  • 发布年份:2011年7月28日
  • 关键特性
    • try-with-resources:自动关闭资源(如FileInputStream)。

      try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {// 自动关闭br
      }
      
    • 钻石操作符(Diamond Operator):简化泛型实例化。

      List<String> list = new ArrayList<>(); // 无需重复指定类型
      
    • 字符串切换(String in Switch):允许switch语句使用字符串。

    • NIO.2:增强的文件系统API(路径操作、文件监控)。

    • Fork/Join框架:支持分治算法的并行计算。


9. JDK 8 (2014)

  • 发布年份:2014年3月18日
  • 关键特性
    • Lambda表达式:引入函数式编程支持。

      list.forEach(item -> System.out.println(item));
      
    • Stream API:对集合进行声明式数据处理。

      List<String> filtered = list.stream().filter(s -> s.length() > 3).collect(Collectors.toList());
      
    • 默认方法(Default Methods):接口中可定义默认实现。

    • 新的日期时间API(java.time包):替代DateCalendar

    • Optional类:避免空指针异常。

    • 并行数组排序Arrays.parallelSort()


10. JDK 9 (2017)

  • 发布年份:2017年9月21日
  • 关键特性
    • 模块化系统(JPMS):通过module-info.java定义模块。

      module com.example {requires java.logging;exports com.example.service;
      }
      
    • 私有化JDK内部API:减少对sun.misc等包的依赖。

    • HTTP Client(Preview):内置HTTP客户端(java.net.http包)。

    • JShell:交互式Java REPL(Read-Eval-Print Loop)。

    • 集合工厂方法:简化不可变集合创建。

      List<String> list = List.of("a", "b", "c");
      

11. JDK 10 (2018)

  • 发布年份:2018年3月20日
  • 关键特性
    • 局部变量类型推断(var):通过var声明局部变量。

      var list = new ArrayList<String>(); // 类型由初始化表达式推断
      
    • 应用类数据共享(AppCDS):减少JVM内存占用。

    • 垃圾回收器改进:并行垃圾回收器(Parallel GC)默认替换CMS。

    • 实验性特性Stringindent()describeConstable()等。


12. JDK 11 (2018, LTS)

  • 发布年份:2018年9月25日
  • 关键特性
    • HTTP Client正式版:从Preview升级为稳定版本。
    • Windows上的Flight Recorder(JFR):性能分析工具。
    • 新的垃圾回收器ZGC:低延迟垃圾回收器(实验性)。
    • 删除Java EE模块:移除java.xml.bind等模块。
    • 文本块(Text Blocks):多行字符串支持。
      String html = """<div><p>Hello World</p></div>""";
      

13. JDK 12 (2019)

  • 发布年份:2019年3月19日
  • 关键特性
    • Switch表达式(Preview):支持yield和表达式形式。
    • 垃圾回收器改进G1垃圾回收器的-XX:ZapUnusedHeapArea参数。
    • Shenandoah GC(实验性):低暂停时间垃圾回收器。
    • 字符串压缩(Compact Strings):优化字符串存储。

14. JDK 13 (2019)

  • 发布年份:2019年9月17日
  • 关键特性
    • 文本块(Text Blocks)正式版:从Preview升级为稳定版本。
    • Switch表达式改进:支持yieldcase合并。
    • 记录类(Records,Preview):简化数据载体类的定义。
      public record Person(String name, int age) { }
      

15. JDK 14 (2020)

  • 发布年份:2020年3月17日
  • 关键特性
    • 记录类(Records):从Preview升级为稳定版本。

    • 模式匹配(Pattern Matching):初步支持instanceof后直接解构对象(Preview)。

      if (obj instanceof Person p) {System.out.println(p.name);
      }
      
    • 可变参数的私有方法:允许私有方法使用可变参数。

    • 文本分段(Text Blocks改进):支持转义字符。


16. JDK 15 (2020)

  • 发布年份:2020年9月15日
  • 关键特性
    • 密封类(Sealed Classes):限制哪些类可以继承当前类(Preview)。

      public sealed class Shape permits Circle, Rectangle { }
      
    • 隐藏类(Hidden Classes):用于生成临时类(如代理类)。

    • 增强的switch表达式:返回值并支持yield

    • Text Blocks改进:支持转义字符和更灵活的语法。


17. JDK 16 (2021)

  • 发布年份:2021年3月16日
  • 关键特性
    • 弃用removeIf的并发修改:修复ConcurrentModificationException
    • 虚拟线程(Virtual Threads):实验性轻量级线程(Preview)。
    • 简化的switch语法:允许yield和表达式形式。
    • 强封装(Strong Encapsulation):强制限制对内部API的访问。

18. JDK 17 (2021, LTS)

  • 发布年份:2021年9月14日
  • 关键特性
    • 密封类(Sealed Classes):从Preview升级为稳定版本。
    • 文本块改进:支持转义字符和更灵活的语法。
    • 强封装(Strong Encapsulation):默认禁用内部API访问。
    • 新的垃圾回收器Shenandoah:低暂停时间GC(实验性)。
    • 移除javawsapplet:淘汰旧版浏览器插件技术。

19. JDK 18 (2022)

  • 发布年份:2022年3月15日
  • 关键特性
    • 虚拟线程(Virtual Threads):从Preview升级为稳定版本。
    • 结构化并发(Structured Concurrency):通过StructuredTaskScope管理线程。
    • 向量API(Vector API):支持SIMD指令优化计算密集型代码(Preview)。
    • 模式匹配改进:支持instanceof后直接解构嵌套对象。

20. JDK 19 (2022)

  • 发布年份:2022年9月19日
  • 关键特性
    • 虚拟线程改进:支持Stack WalkingThread.startVirtual()
    • 模式匹配for switch:支持switch表达式匹配记录类。
    • 精确的ARC(Accurate Race Conditions):改进竞争条件检测。
    • 记录模式(Record Patterns):解构记录类字段。
      if (obj instanceof Person(String name)) { ... }
      

21. JDK 20 (2023)

  • 发布年份:2023年3月21日
  • 关键特性
    • 模式匹配for switch正式版:从Preview升级为稳定版本。
    • 记录模式增强:支持嵌套记录的解构。
    • 虚拟线程改进:支持Thread.startVirtual()
    • 强封装增强:进一步限制内部API访问。
    • Vector API改进:支持更多硬件指令集。

22. JDK 21 (2023)

  • 发布年份:2023年9月19日
  • 关键特性
    • 虚拟线程改进:支持Stack WalkingThread.startVirtual()
    • Vector API改进:支持更多CPU指令集(如AVX512)。
    • JFR增强:更详细的性能分析事件。
    • String分割优化String.split()支持正则表达式改进。
    • Record类改进:支持private构造函数。

23. JDK 22 (2024)

  • 发布年份:2024年3月19日
  • 关键特性
    • Vector API改进:支持更多CPU指令集(如AVX512)。
    • Record类改进:支持private构造函数。
    • JFR增强:更详细的性能分析事件。
    • String拼接优化+操作符的性能提升。

LTS版本推荐

  • 长期支持(LTS)版本:每3年发布一次,提供更长时间的维护和支持。
    • JDK 8(2014,支持至2030)
    • JDK 11(2018,支持至2029)
    • JDK 17(2021,支持至2029)
    • JDK 21(2023,支持至2030)

版本差异总结表

版本关键特性LTS发布年份
JDK 5泛型、注解、枚举2004
JDK 7try-with-resources、NIO.2、Fork/Join2011
JDK 8Lambda、Stream API、新日期API2014
JDK 11HTTP Client正式版、文本块、移除Java EE模块2018
JDK 17密封类、虚拟线程、强封装2021
JDK 21虚拟线程优化、Vector API、JFR增强2023

注意事项

  • 版本兼容性:升级JDK版本时需检查依赖库的兼容性(如Spring Boot对JDK版本的限制)。
  • 性能调优:新版本通常包含GC和JIT编译器优化,需重新调整JVM参数。
  • 实验性特性:带有Preview或Incubating标签的特性可能在后续版本中变更或移除。

通过选择合适的JDK版本,可以更好地平衡功能需求、性能优化和长期维护成本。

相关文章:

JDK(Java Development Kit)从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结,按时间顺序排列

以下是 JDK&#xff08;Java Development Kit&#xff09;从发布至今所有主要版本 的详细差异、新增特性及关键更新的总结&#xff0c;按时间顺序排列&#xff1a; 1. JDK 1.0 (1996) 发布年份&#xff1a;1996年1月23日关键特性&#xff1a; Java首次正式发布。核心语言特性…...

【3分钟准备前端面试】yarn

目录 Yarn核心概念核心机制解析工作流与命令详解高级功能剖析性能优化策略常见问题解决方案Yarn与...

[16届蓝桥杯 2025 c++省 B] 移动距离

思路&#xff1a;这题很多人肯定一眼就觉得是直线&#xff0c;因为无限方案&#xff0c;怎么走随便你&#xff0c;极限状态会误以为是直线&#xff0c;实际上你会发现&#xff0c;只有往右走是直线&#xff0c;往上走时一个弧线操作&#xff0c;就算你一下往右&#xff0c;一下…...

二叉树(中)-- 堆

堆是一个独立的数据结构&#xff0c;堆是一个二叉树。堆和栈几乎没有什么关联 堆是一个完全二叉树&#xff0c;可以用数组存储 大堆&#xff1a; 任何一个父亲都大于等于孩子小堆&#xff1a; 任何一个父亲都小于等于孩子 请注意&#xff0c;小堆大堆并不一定是升序或降序&…...

艾伦·图灵:计算机科学与人工智能之父

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 艾伦图灵&#xff1a;计算机科学与人工智能之父 一、天才的诞生与早期生涯 1912年6月…...

Doris 安装部署、实际应用及优化实践:对比 ClickHouse 的深度解析

在实时分析、报表系统以及高并发 OLAP 查询等场景中&#xff0c;列式存储数据库因其卓越的查询性能逐渐成为主流。Doris 和 ClickHouse 是近年来最受欢迎的两款开源 OLAP 引擎&#xff0c;本文将系统介绍 Doris 的安装部署、应用场景及优化实践&#xff0c;并与 ClickHouse 做一…...

Vue的学习总结-day02

一、Vue的基本语法 1、Vue.js 使用双大括号 {{ }} 来表示文本插值&#xff1a; <template><div class"demo">{{msg}}</div> </template> 2、指令 v-bind&#xff1a;动态绑定一个或多个特性&#xff0c;或一个组件 prop。 <template…...

MySQL 中查询 VARCHAR 类型 JSON 数据的

在数据库设计中&#xff0c;有时我们会将 JSON 数据存储在 VARCHAR 或 TEXT 类型字段中。这种方式虽然灵活&#xff0c;但在查询时需要特别注意。本文将详细介绍如何在 MySQL 中有效查询存储为 VARCHAR 类型的 JSON 数据。 一、问题背景 当 JSON 数据存储在 VARCHAR 列中时&a…...

Spring Boot 的启动流程

Spring Boot 是一个用于简化 Spring 应用程序开发的框架&#xff0c;它通过自动配置和约定优于配置的原则&#xff0c;大大降低了开发者的工作量。下面我们将深入探讨 Spring Boot 的启动流程&#xff0c;帮助你理解其背后的工作机制。 1. 启动入口 Spring Boot 应用的启动入…...

JMeter的接口测试步骤

创建测试计划 新建测试计划&#xff1a; 打开 JMeter&#xff0c;右键点击 Test Plan&#xff0c;选择 Add -> Threads (Users) -> Thread Group。双击 Thread Group&#xff0c;设置线程数&#xff08;用户数&#xff09;、循环次数等参数。 添加取样器&#xff08;S…...

Linux基础14

一、搭建LAMP平台 安装包&#xff1a;mariadb-server、php、php-mysqlnd、php-xml、php-json 搭建平台步骤&#xff1a; ​ php步骤&#xff1a; ​ 创建网页&#xff1a;index.php ​ 网页内编写php语言&#xff1a; > ​ eg&#xff1a;<?p…...

七种数码管驱动/LED驱动综合对比——《器件手册--数码管驱动/LED驱动》

十四、数码管驱动/LED驱动 名称 工作原理 应用场景 优缺点 特点 LED驱动 LED驱动的核心是为发光二极管提供稳定的电流。LED的亮度与电流成正比&#xff0c;而其正向电压相对稳定。驱动电路需要根据电源电压和LED的正向电压&#xff0c;通过限流电阻或恒流芯片来控制电流。…...

【25软考网工笔记】第二章 数据通信基础(2) 信道延迟计算

目录 一、信道延迟 1. 线路延迟 1&#xff09;线路延迟与传输距离的关系 2&#xff09;光纤线路与电缆线路的传播速度 3&#xff09;线路延迟计算示例&#xff1a;1000米电缆的延迟 2. 发送延迟 1&#xff09;发送延迟的定义与计算 2&#xff09;发送延迟的影响因素 3.…...

代码随想录第16天:(二叉树)

一、最大二叉树&#xff08;Leetcode 654&#xff09; class Solution:def constructMaximumBinaryTree(self, nums: List[int]) -> TreeNode:# 基础条件&#xff1a;当数组只有一个元素时&#xff0c;直接返回该元素构建的二叉树节点if len(nums) 1:return TreeNode(nums[…...

Android activity属性taskAffinity的作用

1. taskAffinity的基本概念 在Android开发中&#xff0c;taskAffinity是一个定义在标签中的属性&#xff0c;用于指定Activity与哪个任务&#xff08;Task&#xff09;相关联。默认情况下&#xff0c;应用的所有Activity都共享同一个任务堆栈&#xff0c;其taskAffinity值为应…...

Vuex Actions 多参数传递的解决方案及介绍

Vuex Actions 多参数传递的解决方案及介绍 引言 在Vuex状态管理模式中&#xff0c;Actions 扮演着至关重要的角色。它主要用于处理异步操作&#xff0c;并且可以提交 Mutations 来修改全局状态。然而&#xff0c;在实际开发中&#xff0c;我们常常会遇到需要向 Actions 传递多…...

SQL学习--基础语法学习

SQL和excle对比 学习目标 单表查询 项目背景 SQL 练习环境 SQL Online Compiler - Next gen SQL Editor 商品信息表&#xff1a;https://study-zhibo.oss-cn-shanghai.aliyuncs.com/test/%E5%95%86%E5%93%81%E4%BF%A1%E6%81%AF%E8%A1%A8.csv 订单明细表&#xff1a;https://…...

ProfibusDP转ModbusTCP接流量计技巧

ProfibusDP转ModbusTCP接流量计技巧 在现代工业自动化系统中&#xff0c;设备的互联互通至关重要。为了实现不同协议设备之间的数据交换与统一管理&#xff0c;Profibus DP主站转Modbus TCP网关成为了一个重要的解决方案。本文将详细介绍这一转换方案及其在电磁流量计中的应用…...

【数据结构与算法】ArrayList 和 顺序表

文章目录 &#x1f332;List&#x1f332;1. 线性表&#x1f332;2. 顺序表&#x1f33f;2.1 MyArrayList2.1.1 类中重写所有接口方法1.新增元素2.在pos位置新增元素(指定位置)3.判定是否包含了某个特定元素 4.查找特定元素对应的位置 5.获取pos下标的元素 6.给pos位置的元素替…...

VMware Fusion Pro/Player 在 macOS 上的完整安装与使用指南

VMware Fusion Pro/Player 在 macOS 上的完整安装与使用指南—目录 一、VMware 产品说明二、下载 VMware Fusion三、安装前准备四、安装 VMware Fusion步骤 1&#xff1a;安装程序步骤 2&#xff1a;首次启动配置步骤 3&#xff1a;输入许可证 五、创建虚拟机步骤 1&#xff1a…...

GESP2025年3月认证C++七级( 第三部分编程题(1)图上移动)

参考程序&#xff08;动态规划&#xff09; #include <cstdio> using namespace std; const int K 25; // 最大步数 多开一点 const int N 505; // 最大结点数 const int E N << 1; // 最多边数&#xff08;因为是无向图&#xff0c;每条边…...

将LINUX系统本机文件上传到LINUX虚拟机,未联网的情况下

将LINUX系统本机文件上传到LINUX虚拟机,未联网的情况下 1.将需要上传的文件,归档为.iso镜像文件 命令:mkisofs -r -o myiso.iso /iso/tool 2.打开虚拟机,选择需要挂载的光盘 3.创建挂载点,一般在/mnt目录下 mkdir /mnt/tool 4.临时挂载镜像 mount /dev/cdrom /mnt/tool 5.需要…...

Selenium之Actions事件

鼠标、键盘组合键 在使用selenium的时候&#xff0c;有的时候我们需要鼠标单击、双击、拖动&#xff1b;或者是按下键盘的某个键&#xff0c;松开某个按键&#xff0c;以及组合键的使用&#xff1b;今天我们就来看一看&#xff0c;怎么样实现上面的操作 先把准备工作做好&…...

高等数学同步测试卷 同济7版 试卷部分 上 做题记录 第三章微分中值定理与导数的应用同步测试卷 A 卷

第三章微分中值定理与导数的应用同步测试卷 A 卷 一、单项选择题(本大题共5小题,每小题3分,总计15分) 1. 2. 3. 4. 5. 二、填空题(本大题共5小题,每小题3分,总计15分) 6. 7. 8. 9. 10. 三、求解下列各题(本大题共5小题,每小题6分,总计…...

使用Vscode排除一些子文件搜索

打开用户/工作区设置 全局生效&#xff1a;打开命令面板&#xff08;CtrlShiftP 或 CmdShiftP&#xff09;&#xff0c;搜索并选择 Preferences: Open User Settings (JSON)。 仅当前项目生效&#xff1a;在项目根目录下创建 .vscode/settings.json 文件&#xff08;如果不存在…...

《前端面试题之 CSS篇(第一集)》

目录 1、CSS的盒模型2、CSS选择器及其优先级3、隐藏元素的方法有那些4、px、em、rem的区别及使用场景5、重排、重绘有什么区别6、水平垂直居中的实现7、CSS中可继承与不可继承属性有哪些8、Sass、Less 是什么&#xff1f;为什么要使用他们&#xff1f;9、CSS预处理器/后处理器是…...

第九天 开始Unity Shader的学习之单张纹理

Unity Shader的学习笔记 第九天 开始Unity Shader的学习之单张纹理 文章目录 Unity Shader的学习笔记前言一、基础纹理二、单张纹理① Properties② Cg代码块的变量③ 顶点着色器和片元着色器的结构体(a2v 和 v2f)④ 顶点着色器vert⑤ 片元着色器 frag效果展示 总结 前言 前几…...

Linux-内核驱动-led

登记设备号&#xff08;后面可以动态分配&#xff09; 自己定义内核函数 登记设备名字和功能 exit和init在内核启动自动执行 这样定义直接操作物理地址 ioctl 定义了设备文件的各种操作&#xff0c;并准备将其注册到内核中。 代码中声明了一个cdev结构体变量cdev&#xff0c;这…...

Web 项目实战:构建属于自己的博客系统

目录 项目效果演示 代码 Gitee 地址 1. 准备工作 1.1 建表 1.2 引入 MyBatis-plus 依赖 1.3 配置数据库连接 1.4 项目架构 2. 实体类准备 - pojo 包 2.1 dataobject 包 2.2 request 包 2.3 response 包 2.3.1 统一响应结果类 - Result 2.3.2 用户登录响应类 2.3.3…...

C++算法(1):stringstream详解,高效字符串处理与类型转换的利器

什么是stringstream&#xff1f; stringstream是C标准库中的一个类&#xff0c;定义在<sstream>头文件中。它提供了一种方便的方式来处理字符串与其他数据类型之间的转换和格式化操作。stringstream结合了istringstream和ostringstream的功能&#xff0c;既可以用于输入…...

【前端】【css】flex布局详解

Flex 布局&#xff08;Flexible Box Layout&#xff0c;弹性盒子布局&#xff09;是 CSS3 中的一种布局模式&#xff0c;用于在容器中更高效地分配空间并对齐内容&#xff0c;即使它们的大小是动态未知的。它非常适用于响应式设计。 一、Flex 布局的基本概念 1. 启用 Flex 布局…...

Python Cookbook-5.15 根据姓的首字母将人名排序和分组

任务 想将一组人名写入一个地址簿&#xff0c;同时还希望地址簿能够根据姓的首字母进行分组&#xff0c;且按照字母顺序表排序。 解决方案 Python 2.4 的新 itertools.groupby 函数使得这个任务很简单: import itertools def qroupnames(name_iterable):sorted_names sort…...

深入探析C#设计模式:访问者模式(Visitor Pattern)的原理与应用

引言 在软件开发中&#xff0c;设计模式为我们提供了高效、可维护的解决方案。而在众多设计模式中&#xff0c;访问者模式&#xff08;Visitor Pattern&#xff09;以其独特的结构和应用场景&#xff0c;在复杂系统中发挥着重要作用。本文将深入讲解访问者模式的定义、原理、优…...

2025蓝桥杯省赛C/C++研究生组游记

前言 至少半年没写算法题了&#xff0c;手生了不少&#xff0c;由于python写太多导致行末老是忘记打分号&#xff0c;printf老是忘记写f&#xff0c;for和if的括号也老是忘写&#xff0c;差点连&&和||都忘记了。 题目都是回忆版本&#xff0c;可能有不准确的地方。 …...

RPA VS AI Agent

图片来源网络 RPA&#xff08;机器人流程自动化&#xff09;和AI Agent&#xff08;人工智能代理&#xff09;在自动化和智能化领域各自扮演着重要角色&#xff0c;但它们之间存在显著的区别。以下是对两者区别的详细分析&#xff1a; 一、定义与核心功能 RPA&#xff08;机…...

软件信息化项目等级分类评定表

对信息化项目进行分类评级管理,能够优化资源配置、保障项目成效。可从项目性质、规模、战略价值等维度分类,依据技术、风险、收益等指标评级,进而实现精细化管理。 分类管理 按项目性质分类:可分为业务流程优化项目,如优化企业采购流程的信息化项目,旨在提升效率;还有信…...

从0~1搭建自动化备份全网服务器数据平台

目录 摘要: 一、项目背景 1.1 rsync简介 作用&#xff1a; 特点&#xff1a; 语法&#xff1a; 1.2 项目需求 配置需求&#xff1a; 二、项目环境 2.1 项目拓扑结构 2.2 软硬件环境清单 三、任务清单 3.1 项目环境搭建 3.2 服务器部署 Web服务器搭建部署&#…...

用户态视角理解内核ROP利用:快速从shell到root的进阶

用户态视角理解内核ROP利用:快速从shell到root的进阶 一、摘要 本文仅限于快速从用户态向内核态入门,可能会有很多不严谨的地方,存在问题请及时告知感谢!本文旨在通过对比用户态 ROP 利用和内核 ROP 利用,揭示两者在利用手法上的相似性。通过分析用户态漏洞利用的流程,结合…...

我又叕叕叕更新了~纯手工编写C++画图,有注释~

本次更新内容: 优化性能,朗读 提前申明:如果运行不了,请到主页查看RedpandaDevc++下载,若还是不行就卸了重装。 版本号:1.26.36 779行 24690字 最终结果预览 代码预览 //版本号 :v1.26.36 //最终归属权为作者(饼干帅成渣)所有 //禁止转载 //仅供学习,不得用于违法 #…...

【家政平台开发(37)】家政平台蜕变记:性能优化与代码重构揭秘

本【家政平台开发】专栏聚焦家政平台从 0 到 1 的全流程打造。从前期需求分析,剖析家政行业现状、挖掘用户需求与梳理功能要点,到系统设计阶段的架构选型、数据库构建,再到开发阶段各模块逐一实现。涵盖移动与 PC 端设计、接口开发及性能优化,测试阶段多维度保障平台质量,…...

基于springboot+vue的秦皇岛旅游景点管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 用户登录 旅游路…...

图像预处理-翻转与仿射变换

一.图像翻转 cv2.flip(img,flipcode) 参数 - flipcode : 指定翻转类型的标志&#xff0c;为0&#xff0c;表示沿x轴翻转&#xff0c;>0(默认1) 表示沿y轴翻转&#xff0c;为 <0(默认-1) 表示水平垂直翻转 OpenCV中&#xff0c;图片的镜像旋转以图像的中心为原点 impo…...

[ABC400F] Happy Birthday! 3 题解

考虑正难则反。问题转化为&#xff1a; 一个环上有 n n n 个物品&#xff0c;颜色分别为 c o l i col_i coli​&#xff0c;每次操作选择两个数 i , j i, j i,j 使得 ∀ k ∈ [ i , j ] , c o l k c o l i ∨ c o l k 0 \forall k \in [i, j], col_k col_i \lor col_k …...

使用nuxt3+tailwindcss4+@nuxt/content3在页面渲染 markdown 文档

nuxt3tailwindcss在页面渲染 markdown 文档 页面效果 依赖 “nuxt/content”: “^3.4.0” “tailwindcss”: “^4.0.10” “nuxt”: “^3.16.2” “tailwindcss/vite”: “^4.0.10” tailwindcss/typography (这个是格式化 md 样式用的) 注意&#xff1a; 这里nuxt/content…...

畅游Diffusion数字人(23):字节最新表情+动作模仿视频生成DreamActor-M1

畅游Diffusion数字人(0):专栏文章导航 前言:之前有很多动作模仿或者表情模仿的工作,但是如果要在实际使用中进行电影级的复刻工作,仅仅表情或动作模仿还不够,需要表情和动作一起模仿。最近字节跳动提出了一个表情+动作模仿视频生成DreamActor-M1。 目录 贡献概述 核心动…...

多模态学习分析(MLA)驱动高中差异化教学策略研究

一、引言 1.1 研究背景 在当今时代&#xff0c;教育数字化转型的浪潮正席卷全球&#xff0c;深刻地改变着教育的面貌。这一转型不仅是技术的革新&#xff0c;更是教育理念、教学模式和教育管理的全面变革。随着互联网、大数据、人工智能等现代信息技术在教育领域的广泛应用&a…...

为什么ASCII的A是65[特殊字符]

为什么ASCII的A是65 1. ASCII是怎么来的 ASCII是1960年代美国标准协会制定的&#xff0c;目的是统一计算机字符编码。它们要在**7个比特位&#xff08;0-127&#xff09;**里&#xff0c;塞下所有英文字符&#xff0c;数字&#xff0c;标点和控制符。 2. 为什么A是65&#x…...

Python正则表达式实战技巧:如何高效处理文本匹配?

当你需要在Python中处理文本数据时&#xff0c;正则表达式绝对是你的瑞士军刀。无论是数据清洗、日志分析还是表单验证&#xff0c;掌握正则表达式都能让你事半功倍。今天我们就来聊聊Python中re模块的那些实用技巧和常见陷阱。 为什么正则表达式如此重要&#xff1f; 想象一…...

驱动学习专栏--写在前面

此专栏基于正点原子的文档【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 开发板为luckfox的rv1106开发板&#xff0c;之前参加过一个CM1相机的开源项目&#xff0c;与其吃灰不如作为一个学习的工具来发挥余热 所以文档中的一些东西需要对应的在rv1106平台上做修改&#xff…...

Java中的Map vs Python字典:核心对比与使用指南

一、核心概念 1. 基本定义 Python字典&#xff08;dict&#xff09; &#xff1a;动态类型键值对集合&#xff0c;语法简洁&#xff0c;支持快速查找。Java Map&#xff1a;接口&#xff0c;常用实现类如 HashMap、LinkedHashMap&#xff0c;需声明键值类型&#xff08;泛型&…...