一、Java 基礎入門:從 0 到 1 認識 Java(詳細筆記)

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;如果是想要基于這…