1.1 Java 语言简介与发展历程

Java 是一门面向对象的高级编程语言,以“跨平台、安全、稳定”为核心特性,自诞生以来长期占据编程语言排行榜前列,广泛应用于后端开发、移动端开发、大数据等领域。

1.1.1 起源与核心人物

  • 起源背景:1991 年,Sun 公司(后被 Oracle 收购)的“Green 项目”启动,目标是开发一种能在嵌入式设备(如电视机顶盒)上运行的语言,核心开发者包括 詹姆斯·高斯林(James Gosling)(被称为“Java 之父”)。
  • 语言命名:最初名为“Oak”(橡树),因商标冲突,1995 年正式更名为“Java”(源自印尼爪哇岛,象征“活力与广泛传播”)。
  • 首次发布:1995 年 Sun 公司在 SunWorld 大会上发布 Java 1.0,同时推出 Java Applet(早期网页交互技术,后因安全问题逐渐被淘汰)。

1.1.2 关键版本迭代(LTS 版本优先)

Java 版本分为“普通版本”和“长期支持版本(LTS)”,LTS 版本提供 5-8 年官方支持,是企业生产环境的首选:

  • JDK 1.5(2004 年):里程碑版本,引入泛型、枚举、注解、foreach 循环、自动装箱/拆箱等核心特性,奠定现代 Java 基础。
  • JDK 8(2014 年):最经典的 LTS 版本,引入 Lambda 表达式、Stream API、Optional 类、接口默认方法,至今仍是企业主流。
  • JDK 11(2018 年):LTS 版本,移除永久代(改用元空间)、支持局部变量类型推断(var 关键字)、自带 HttpClient 工具类。
  • JDK 17(2021 年):最新 LTS 版本,引入密封类(Sealed Classes)、Record 类(简化实体类编写)、增强 Switch 表达式,性能大幅优化。

1.1.3 现在与未来

  • 归属权:2009 年 Oracle 收购 Sun 公司,获得 Java 版权与开发权,目前 Oracle 每 6 个月发布一个普通版本,每 3 年发布一个 LTS 版本。
  • 生态地位:Java 生态是编程语言中最完善的之一,拥有海量类库、框架(Spring、MyBatis)和工具,支持从小型应用到大型分布式系统的开发。

1.2 Java 核心优势与应用场景

Java 能长期流行,核心在于其独特的设计理念和广泛的适用性,具体优势与场景如下:

1.2.1 四大核心优势

  1. 跨平台性(一次编写,到处运行)
    这是 Java 最核心的优势。Java 源文件编译后生成 字节码文件(.class),不直接依赖操作系统,而是通过 Java 虚拟机(JVM) 解释执行——不同操作系统(Windows、macOS、Linux)只需安装对应版本的 JVM,即可运行同一套字节码文件。
    ✅ 示例:在 Windows 上编写的 Java 程序,无需修改代码,复制到 Linux 服务器上(安装 Linux 版 JVM)即可直接运行。

  2. 纯面向对象编程(OOP)
    Java 严格遵循面向对象思想,万物皆可“类与对象”,支持封装、继承、多态三大特性,能更好地模拟现实世界,降低复杂系统的开发与维护成本。
    ❌ 例外:基本数据类型(如 intchar)不是对象,但可通过“包装类”(如 Integer)转为对象。

  3. 安全性与稳定性

    • 安全机制:Java 自带“沙箱机制”(限制程序访问本地资源)、类加载器(防止恶意代码篡改核心类)、异常处理(避免程序崩溃),适合开发金融、支付等对安全要求高的系统。
    • 内存管理:通过 垃圾回收器(GC) 自动回收无用内存,无需手动释放(对比 C/C++ 的 free/delete),大幅减少内存泄漏问题。
  4. 生态丰富与社区活跃

    • 官方提供庞大的 Java 核心类库(JDK API),涵盖 IO、集合、多线程、网络等功能,无需重复造轮子。
    • 第三方框架(Spring Boot、MyBatis、Dubbo)、工具(Maven、Git)、社区(Stack Overflow、GitHub)成熟,问题能快速找到解决方案。

1.2.2 四大主流应用场景

应用领域核心技术/框架典型案例
后端开发Java EE、Spring Boot、Spring Cloud电商系统(淘宝、京东)、金融系统(银行核心系统)
移动端开发Android 原生开发手机 APP(早期微信、抖音核心模块)
大数据开发Hadoop、Spark、Flink数据计算(用户行为分析、实时推荐)
桌面应用开发Swing、AWT(传统)、JavaFX企业内部工具(如报表系统、管理端)

1.3 开发环境搭建(JDK 下载、安装、环境变量配置)

Java 开发的基础是 JDK(Java Development Kit,Java 开发工具包),必须先完成 JDK 安装与环境变量配置,才能编译和运行 Java 程序。以下以 JDK 17(LTS 版本,Windows 10/11 系统) 为例,步骤详细到“小白可follow”:

1.3.1 第一步:下载 JDK

  1. 访问官方地址:打开 Oracle 官网 JDK 下载页(链接),建议用 LTS 版本(如“Java SE 17 LTS”)。
  2. 选择系统版本
    • Windows 系统:根据电脑位数选择(64 位选“Windows x64 Installer”,exe 格式;32 位选“Windows x86 Installer”,目前主流电脑均为 64 位)。
    • macOS 系统:选“macOS x64.dmg”(Intel 芯片)或“macOS AArch64.dmg”(M1/M2 芯片)。
    • Linux 系统:选“Linux x64 RPM Package”或“Linux x64 Compressed Archive”(解压版)。
  3. 登录 Oracle 账号:Oracle 要求登录后才能下载,若无账号,点击“Create Account”注册(免费,填写邮箱、密码即可)。
  4. 开始下载:登录后点击对应版本的“Download”,等待 exe 文件下载完成(约 200-300MB)。

1.3.2 第二步:安装 JDK

  1. 双击运行安装包:打开下载的 jdk-17_windows-x64_bin.exe,弹出安装向导,点击“下一步”。
  2. 选择安装路径(关键!)
    • 建议 自定义路径(默认路径在 C 盘,若 C 盘空间不足可改到其他盘),例如:D:\Program Files\Java\jdk-17(路径中不能有中文、空格或特殊字符,否则后续会报错)。
    • 记住这个路径(后续配置环境变量要用),点击“下一步”。
  3. 等待安装完成:安装过程约 1-2 分钟,无需额外操作,最后点击“关闭”。

⚠️ 注意:JDK 11 及以上版本无需单独安装 JRE(JRE 已集成在 JDK 中,可通过 jlink 工具生成独立 JRE,新手暂无需关注)。

1.3.3 第三步:配置环境变量(Windows 系统)

环境变量的作用是让系统“找到”JDK 的编译工具(javac.exe)和运行工具(java.exe),否则在命令行输入 javac 会提示“不是内部或外部命令”。

步骤 1:打开环境变量设置
  • 方法 1:右键“此电脑” → “属性” → “高级系统设置” → “环境变量”。
  • 方法 2:Win + R 输入 sysdm.cpl → 回车 → “高级” → “环境变量”。
步骤 2:配置“JAVA_HOME”变量(用户变量/系统变量均可,推荐用户变量)
  1. 在“用户变量”栏点击“新建”,弹出“新建用户变量”窗口:
    • 变量名:JAVA_HOME(大小写敏感,必须全大写)。
    • 变量值:粘贴第一步的 JDK 安装路径(例如 D:\Program Files\Java\jdk-17)。
  2. 点击“确定”保存。
步骤 3:配置“Path”变量
  1. 在“用户变量”栏找到“Path”变量,双击打开(或选中后点击“编辑”)。
  2. 点击“新建”,输入 %JAVA_HOME%\bin%JAVA_HOME% 是引用上一步的 JAVA_HOME 变量,自动指向 JDK 的 bin 目录)。
  3. 再点击“新建”,输入 %JAVA_HOME%\jre\bin(JDK 17 无单独 JRE 目录,可省略此步,若后续报错再补充)。
  4. 点击“上移”,将这两个路径移到最顶部(避免与其他软件的 Java 版本冲突),然后依次点击“确定”关闭所有窗口。
步骤 4:验证配置是否成功
  1. 打开 新的命令提示符(CMD)(注意:必须关闭旧 CMD 重新打开,否则环境变量不生效)。
  2. 输入以下两个命令,若输出类似结果,则配置成功:
    • 命令 1:java -version(查看 Java 运行环境版本)
      ✅ 成功输出:java version "17.0.9" 2023-10-17 LTS(版本号可能因下载的 JDK 版本略有不同)。
    • 命令 2:javac -version(查看 Java 编译器版本)
      ✅ 成功输出:javac 17.0.9

❌ 常见错误与解决:

  • 若提示“‘javac’ 不是内部或外部命令”:检查 JAVA_HOME 路径是否正确,Path 中是否添加 %JAVA_HOME%\bin,且是否打开新 CMD。
  • 若提示“找不到或无法加载主类”:暂不涉及,后续编写程序时再排查。

1.4 主流 IDE 使用(IntelliJ IDEA / Eclipse 基础操作)

IDE(集成开发环境)能简化 Java 开发(自动补全、语法检查、一键运行),主流工具是 IntelliJ IDEA(简称 IDEA)Eclipse,新手推荐 IDEA 社区版(免费、功能足够入门)。

1.4.1 IntelliJ IDEA(社区版)使用教程

1. 下载与安装
  • 官网地址:IntelliJ IDEA 下载页,选择“Community”(社区版,免费),下载对应系统版本。
  • 安装步骤:
    • 双击安装包,勾选“Create Desktop Shortcut”(创建桌面快捷方式)、“Associate .java files”(关联 .java 文件),点击“Next”。
    • 安装路径建议自定义(如 D:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.2),点击“Install”,等待完成。
2. 首次启动配置
  • 首次打开 IDEA,选择“Skip Remaining and Set Defaults”(跳过默认配置,新手无需修改)。
  • 主题选择:可在“Appearance & Behavior → Appearance”中切换“Light”(浅色)或“Darcula”(深色,保护眼睛)。
  • 配置 JDK:
    • 打开“File → Project Structure → SDKs”,点击“+”号,选择“JDK”。
    • 浏览到 JDK 安装路径(如 D:\Program Files\Java\jdk-17),点击“OK”,IDEA 会自动识别 JDK 版本。
3. 创建第一个 Java 项目
  1. 点击“New Project”,进入项目创建界面:

    • 左侧选择“Java”,右侧“Project SDK”选择已配置的 JDK 17,点击“Next”。
    • 取消勾选“Create project from template”(不使用模板,从零开始),点击“Next”。
    • 项目命名:例如“JavaHelloWorld”,项目路径自定义(如 D:\JavaProjects\JavaHelloWorld),点击“Finish”。
  2. 创建“包(Package)”:

    • 包用于分类管理 Java 类(避免类名冲突),右键 src 目录 → “New → Package”,输入包名(命名规范:全小写,多层级用点分隔,如 com.example.demo),点击“OK”。
  3. 创建“Java 类(Class)”:

    • 右键包名(com.example.demo) → “New → Java Class”,类名输入“HelloWorld”(命名规范:首字母大写,驼峰式),点击“OK”。
4. 编写与运行代码
  • 在 HelloWorld 类中输入代码(IDEA 会自动补全):
    package com.example.demo; // 包名,必须在类的最顶部public class HelloWorld {// main 方法:程序入口,固定格式public static void main(String[] args) {// 输出语句:在控制台打印“Hello World!”System.out.println("Hello World!");}
    }
    
  • 运行程序:
    • 方法 1:右键代码编辑区 → “Run ‘HelloWorld.main()’”。
    • 方法 2:点击类名旁的绿色三角形图标(▶️),选择“Run ‘HelloWorld’”。
  • 查看结果:底部“Console”面板会输出 Hello World!,表示运行成功。
5. 常用快捷键(提升效率)
  • psvm + 回车:快速生成 main 方法(public static void main(String[] args))。
  • sout + 回车:快速生成输出语句(System.out.println();)。
  • Ctrl + D:复制当前行到下一行。
  • Ctrl + Y:删除当前行。
  • Ctrl + /:单行注释(//)或取消注释。

1.4.2 Eclipse(开源免费)简要对比

Eclipse 是老牌 IDE,开源免费,但界面和操作流畅度略逊于 IDEA,适合习惯轻量级工具的用户:

  • 下载:官网 Eclipse 下载页,选择“Eclipse IDE for Java Developers”。
  • 核心操作:创建项目(File → New → Java Project)、创建类(New → Class)、运行(右键 → Run As → Java Application),流程与 IDEA 类似。
  • 优缺点:占用内存小,但自动补全、代码提示功能不如 IDEA 智能,新手建议优先选 IDEA 社区版。

1.5 第一个 Java 程序:HelloWorld(代码解析 + 运行流程)

“Hello World”是所有编程语言的入门案例,通过它可理解 Java 程序的基本结构、编译与运行逻辑。

1.5.1 完整代码与逐行解析

以下是标准的 HelloWorld 代码(基于 IDEA 中的 com.example.demo.HelloWorld 类):

// 1. 包声明:指定当前类所在的包,必须放在代码最顶部
package com.example.demo;// 2. 类声明:public 是访问修饰符,HelloWorld 是类名(必须与文件名一致)
public class HelloWorld {// 3. main 方法:程序的“入口”,JVM 运行程序时会首先执行此方法// public:公开访问权限,JVM 可调用// static:静态方法,无需创建对象即可调用// void:无返回值(不需要向调用者返回结果)// main:方法名(固定,不能修改)// String[] args:参数数组,用于接收命令行传入的参数(新手暂无需使用)public static void main(String[] args) {// 4. 输出语句:调用 System 类的 out 对象的 println 方法,在控制台打印字符串// System:Java 核心类库中的类(位于 java.lang 包,无需手动导入)// out:System 类的静态成员变量(类型是 PrintStream)// println:PrintStream 类的方法,作用是“打印字符串并换行”System.out.println("Hello World!");}
}

⚠️ 必须遵守的语法规则:

  1. 类名与文件名一致:若类用 public 修饰,文件名必须和类名完全相同(大小写敏感),例如 HelloWorld.java 对应 public class HelloWorld
  2. 分号结尾:Java 语句必须以 ; 结束(println("..."); 后的分号不能漏)。
  3. 大括号配对:classmain 方法的代码块必须用 {} 包裹,且要对齐(IDE 会自动格式化)。

1.5.2 两种运行方式(IDE 可视化 + 命令行)

方式 1:IDE 中运行(推荐新手)

如 1.4.1 节所述,右键类 → Run,直接在 Console 面板查看结果,IDE 会自动完成“编译 → 运行”的全过程,无需手动操作。

方式 2:命令行运行(理解底层流程)

通过命令行运行,能清晰看到 Java 程序“源文件 → 字节码 → 运行”的步骤,适合理解原理:

  1. 找到 .java 源文件路径
    若 IDEA 项目路径是 D:\JavaProjects\JavaHelloWorld,则 .java 文件路径为 D:\JavaProjects\JavaHelloWorld\src\com\example\demo\HelloWorld.java(包名对应文件夹层级)。

  2. 编译:javac 命令生成 .class 字节码文件

    • 打开 CMD,通过 cd 命令进入 .java 文件所在目录:
      cd D:\JavaProjects\JavaHelloWorld\src\com\example\demo
    • 输入编译命令:javac HelloWorld.javajavac 是 JDK 的编译器工具)。
    • 若代码无语法错误,执行后会在当前目录生成 HelloWorld.class 文件(字节码文件,JVM 可识别的格式)。
  3. 运行:java 命令执行字节码

    • 注意:运行时需要“带包名”执行,因此不能在 demo 目录下直接运行,需回到 src 目录(包名的根目录):
      cd ../../../../(从 demo 目录回到 src 目录)。
    • 输入运行命令:java com.example.demo.HelloWorldjava 是 JVM 的运行工具,后面跟“包名.类名”,无需加 .class 后缀)。
    • 执行后,CMD 会输出 Hello World!,表示运行成功。

1.5.3 常见错误与解决

错误现象原因分析解决方法
编译时提示“找不到符号”变量名/方法名拼写错误(如 sout 写成 soutt检查代码拼写,确保与标准语法一致
运行时提示“找不到或无法加载主类”运行命令未带包名,或包名与路径不匹配回到 src 目录,用“包名.类名”格式运行(如 java com.example.demo.HelloWorld
编译时提示“类 HelloWorld 是公共的,应在名为 HelloWorld.java 的文件中声明”文件名与 public 类名不一致(如文件名是 helloworld.java将文件名改为与类名完全一致(大小写敏感)

1.6 Java 运行机制(JVM、JRE、JDK 关系 + 跨平台原理)

理解 Java 运行机制,是掌握 Java 跨平台特性的核心,也是后续学习 JVM 调优、性能优化的基础。

1.6.1 JVM、JRE、JDK 三者的关系

首先明确三个核心概念的定义,再通过“包含关系”和“比喻”理解它们的作用:

组件英文全称核心作用包含内容
JDKJava Development KitJava 开发工具包,供开发者编写、编译程序JRE + 开发工具(javac、java、javadoc 等)
JREJava Runtime EnvironmentJava 运行环境,供用户运行 Java 程序JVM + 核心类库(java.lang、java.util 等)
JVMJava Virtual MachineJava 虚拟机,负责将字节码转为机器码执行类加载器、执行引擎、垃圾回收器等
包含关系(从大到小):

JDK ⊇ JRE ⊇ JVM + 核心类库
(JDK 包含 JRE,JRE 包含 JVM 和运行所需的核心类库)

通俗比喻:
  • 把 Java 程序比作“蛋糕”:
    • JDK 是“全套烘焙工具 + 食材 + 烤箱”(开发者用它做蛋糕)。
    • JRE 是“食材 + 烤箱”(用户用它加热蛋糕吃,不需要烘焙工具)。
    • JVM 是“烤箱”(核心设备,负责把“生蛋糕坯(字节码)”烤成“熟蛋糕(运行结果)”)。

1.6.2 Java 程序完整运行流程

Java 程序从编写到运行,需经历 4 个步骤,每个步骤的作用如下:

  1. 编写:创建 .java 源文件
    开发者用文本编辑器(或 IDE)编写 Java 代码,保存为 .java 后缀的源文件(人类可读的文本格式)。

  2. 编译:javac 编译为 .class 字节码
    JDK 的 javac 编译器读取 .java 文件,检查语法错误后,将其转换为 字节码文件(.class)——字节码是一种“中间代码”,既不是机器码,也不是源文件,只能被 JVM 识别。
    ✅ 关键:字节码文件是“平台无关”的,在 Windows 上编译的 .class 文件,可直接复制到 Linux 上运行。

  3. 加载:JVM 类加载器加载 .class
    运行 java 类名 命令时,JVM 的“类加载器(ClassLoader)”会根据类名找到对应的 .class 文件,将其加载到 JVM 的内存中(方法区),并创建对应的 Class 对象(用于后续实例化)。

  4. 执行:JVM 执行字节码
    JVM 的“执行引擎”会将字节码转换为当前操作系统能识别的 机器码(平台相关),然后交给 CPU 执行,最终输出运行结果。
    优化:为提升性能,JVM 会对“热点代码”(频繁执行的代码)采用 JIT(即时编译) 技术,将其直接编译为机器码缓存起来,避免每次都解释执行。

流程示意图(文字版):
.java 源文件 → [javac 编译] → .class 字节码文件 → [JVM 类加载] → [JVM 执行引擎(解释/编译为机器码)] → 操作系统执行 → 输出结果

1.6.3 跨平台原理(为什么“一次编写,到处运行”)

Java 跨平台的核心在于 “字节码 + JVM”的分离设计

  • 字节码平台无关:无论在哪个操作系统上编译,生成的 .class 字节码格式都是统一的,不存在“Windows 字节码”“Linux 字节码”的区别。
  • JVM 平台相关:Oracle 为不同操作系统提供了对应的 JVM 实现(如 Windows 版 JVM、Linux 版 JVM),这些 JVM 能将统一的字节码转换为当前系统的机器码。

例如:

  • 在 Windows 上:Java 代码 → 字节码 → Windows 版 JVM → Windows 机器码 → 运行
  • 在 Linux 上:同一字节码 → Linux 版 JVM → Linux 机器码 → 运行

正是因为 JVM 屏蔽了不同操作系统的差异,开发者才无需为每个平台编写不同的代码,实现“一次编写,到处运行”。

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

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

相关文章

uniapp:根据目的地经纬度,名称,唤起高德/百度地图来导航,兼容App,H5,小程序

1、需要自行申请高德地图的key,配置manifest.json 2、MapSelector选择组件封装 <template><view><u-action-sheet :list="mapList" v-model="show" @click="changeMap"></u-action-sheet></view> </template&…

我对 WPF 动摇时的选择:.NET Framework 4.6.2+WPF+Islands+UWP+CompostionApi

目录 NET Framework 4.6.2的最大亮点 为什么固守462不升级 WPF-开发体验的巅峰 为什么对WPF动摇了 基于IslandsUWP的滤镜尝试 总结 NET Framework 4.6.2的最大亮点 安全性能大提升&#xff1a; 默认启用TLS1.2协议&#xff0c;更安全&#xff0c;它为后续的版本提供了重…

SpringBoot大文件下载失败解决方案

SpringBoot大文件下载失败解决方案 后端以文件流方式给前端接收下载文件,文件过大时出现下载失败的情况或者打开后提示文件损坏,实际是字节未完全读取写入。 针对大文件下载失败的情况,以下是详细的解决方案: 大文件下载失败的主要原因 内存溢出:一次性加载大文件到内存…

torch.gather

torch.gather 介绍 torch.gather(input, dim, index, *, sparse_gradFalse, outNone) → Tensor 沿由 dim 指定的轴收集值。 对于三维张量&#xff0c;输出按如下方式确定&#xff1a; out[i][j][k] input[index[i][j][k]][j][k] # 如果 dim 0 out[i][j][k] input[i][i…

Golang | http/server Gin框架简述

http/server http指的是Golang中的net/http包&#xff0c;这里用的是1.23.10。 概览 http包的作用文档里写的很简明&#xff1a;Package http provides HTTP client and server implementations. 主要是提供http的客户端和服务端&#xff0c;也就是能作为客户端发http请求&a…

Vision Transformer (ViT) :Transformer在computer vision领域的应用(三)

Experiment 上来的一段话就概括了整章的内容。 We evaluate the representation learning capabilities of ResNet, Vision Transformer (ViT), and the hybrid. 章节的一开头就说明了,对比的模型就是 ResNet,CNN领域中的代码模型。 ViT。 上一篇中提到的Hybrid模型,也就是…

5-12 WPS JS宏 Range数组规范性测试

Range()数组是JS宏中不缺少的组成部分,了解Range()数组的特性必不可少,下面我们一起测试一下各种Range()数组。 1.Range()数组特性 单元格区域:Range("a2:m2")与Range("a2","m2")的类型都是:Range/Object,功能都为单元格区域,功能…

uniapp微信小程序保存海报到手机相册canvas

在uniapp中实现微信小程序保存海报到手机相册&#xff0c;主要涉及Canvas绘制和图片保存。以下是关键步骤和代码示例&#xff1a; 一、关键代码展示&#xff1a; 1. 模板配置&#xff1a;页面展示该海报&#xff0c;可直接查看&#xff0c;也可下载保存到手机相册&#xff0c;h…

glib2-2.62.5-7.ky10.x86_64.rpm怎么安装?Kylin Linux RPM包安装详细步骤

一、准备工作 ​确认系统版本​ 这个包是 ky10的&#xff08;也就是 openEuler 20.03 LTS SP3 或类似版本&#xff09;&#xff0c;而且是 ​x86_64 架构&#xff08;就是常见的64位电脑&#xff09;​。 你要先确认你的系统是不是这个版本&#xff0c;不然可能装不上或者出问题…

webrtc之语音活动下——VAD人声判定原理以及源码详解

文章目录前言一、高斯混合模型介绍1.高斯模型举例1&#xff09;定义2&#xff09;举例说明2.高斯混合模型(GMM)1&#xff09;定义2&#xff09;举例说明3&#xff09;一维曲线二、VAD高斯混合模型1.模型训练介绍1&#xff09;训练方法2&#xff09;训练结果2.噪声高斯模型分布1…

【Redis】-- 主从复制

文章目录1. 主从复制1.1 主从复制是怎么个事&#x1f914;1.2 拓扑结构1.2.1 一主一从拓扑1.2.2 一主多从拓扑1.2.3 树形拓扑1.3 主从复制原理1.3.1 复制过程1.3.2 数据同步PSYNC1.3.2.1 replicationid/replid (复制id)1.3.2.2 复制偏移量维护1.3.3 psync运行流程1.3.4 全量复制…

开源炸场!阿里通义千问Qwen3-Next发布:80B参数仅激活3B,训练成本降90%,长文本吞吐提升10倍​

开源炸场&#xff01;阿里通义千问Qwen3-Next发布&#xff1a;80B参数仅激活3B&#xff0c;训练成本降90%&#xff0c;长文本吞吐提升10倍​ 开源世界迎来震撼突破&#xff01; 通义千问团队最新发布的Qwen3-Next架构&#xff0c;以其独创的"小而精"设计理念&#x…

【C++入门】C++基础

目录 1. 命名空间 1.1 命名空间的创建和使用 2. 输入输出 2.1 输出 2.2 输入 3. 缺省参数 3.1 全缺省 3.2 半缺省 4.函数重载 4.1 为什么C支持重载而C语言不支持&#xff1f; 4.1.2 编译的四个过程 4.2 extern是什么 5.引用 5.1 引用的特性 5.1.1 引用的“隐式类…

如何往mp4视频添加封面图和获取封面图?

前言&#xff1a;大家好&#xff0c;之前有给大家分享过mp4录像的方案&#xff0c;今天给大家分享的内容是&#xff1a;如何在添加自定义的封面图到mp4里面去&#xff0c;以及在进入回放mp4视频列表的时候&#xff0c;怎么获取mp4视频里面的封面图&#xff0c;当然这个获取到的…

你的第一个Transformer模型:从零实现并训练一个迷你ChatBot

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;注册即送-H卡级别算力&#xff0c;80G大显存&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生更享专属优惠。 引言&#xff1a;破除神秘感&#xff0c;拥抱核心思想 …

【20期】沪深指数《实时交易数据》免费获取股票数据API:PythonJava等5种语言调用实例演示与接口API文档说明

​ 随着量化投资在金融市场的快速发展&#xff0c;高质量数据源已成为量化研究的核心基础设施。本文将系统介绍股票量化分析中的数据获取解决方案&#xff0c;涵盖实时行情、历史数据及基本面信息等关键数据类型。 本文将重点演示这些接口在以下技术栈中的实现&#xff1a; P…

RabbitMQ如何保障消息的可靠性

文章目录什么是消息可靠性&#xff1f;RabbitMQ消息可靠性的三个维度1. 生产者到Exchange的可靠性2. Exchange到Queue的可靠性3. Queue到消费者的可靠性核心机制详解Publisher Confirm机制消息持久化Mandatory参数消费者确认机制&#xff08;ACK&#xff09;最佳实践建议1. 合理…

二十、DevOps落地:Jenkins基础入门(一)

二十、DevOps落地&#xff1a;Jenkins基础入门&#xff08;一&#xff09; 文章目录二十、DevOps落地&#xff1a;Jenkins基础入门&#xff08;一&#xff09;1、DevOps初识1.1 什么是DevOps1.2 DevOps相关工具链1.3 什么是CICD&#xff1f;1.4 持续集成CI介绍1.5 持续交付和持…

简单易实现的数据校验方法Checksum

简单易实现的数据校验方法Checksum 在数据传输中&#xff0c;Checksum&#xff08;校验和&#xff09; 扮演着 “数据完整性哨兵” 的角色。它的主要作用是 快速检测数据在传输过程中是否发生了错误 。 下面我将详细解释它的作用、工作原理、优缺点以及典型应用。 核心作用&…

再次深入学习深度学习|花书笔记1

我已经两年没有碰过深度学习了&#xff0c;写此文记录学习过程&#xff0c;加深理解。 深度学习再次深入学习深度学习|花书笔记1信息论第四节 数值计算中的问题上溢出 和 下溢出病态条件优化法再次深入学习深度学习|花书笔记1 这本书说的太繁琐了&#xff0c;如果是想要基于这…