青少年編程與數學 02-020 C#程序設計基礎 15課題、異常處理

青少年編程與數學 02-020 C#程序設計基礎 15課題、異常處理

  • 一、異常
    • 1. 異常的分類
    • 2. 異常的作用
    • 小結
  • 二、異常處理
    • 1. 異常處理的定義
    • 2. 異常處理的主要組成部分
    • 3. 異常處理的作用
    • 小結
  • 三、C#異常處理
    • 1. 異常的基本概念
    • 2. 異常處理的關鍵字
    • 3. 異常處理的流程
    • 4. 自定義異常
    • 5. 異常處理的最佳實踐
    • 6. 使用`using`語句
    • 7. 異常的傳播
    • 小結
  • 四、C#異常處理中的嵌套
    • 1. 嵌套的`try-catch`結構
        • 基本形式
        • 處理邏輯
    • 2. 嵌套的`try-catch-finally`結構
        • 基本形式
        • 處理邏輯
    • 3. 異常的傳播與嵌套處理
        • 異常的傳播
        • 嵌套處理的場景
    • 4. 嵌套異常處理的最佳實踐
        • 捕獲具體的異常
        • 資源清理
        • 避免過度嵌套
    • 5. 示例:嵌套異常處理
    • 小結
  • 五、異常處理和程序調試
    • 1. 異常處理
        • 主要功能:
    • 2. 程序調試
        • 主要功能:
    • 3. 異常處理與程序調試的關系
        • 異常處理是調試的一部分
        • 調試工具支持異常處理
        • 異常處理有助于提高調試效率
    • 4. 調試有助于優化異常處理
    • 5. 最佳實踐
    • 小結
  • 總結

摘要:本文詳細介紹了C#程序設計中的異常處理機制。首先解釋了異常的定義、分類及與錯誤的區別,然后闡述了異常處理的定義、組成部分及作用。重點探討了C#中異常處理的具體實現,包括異常的基本概念、關鍵字、處理流程、自定義異常、最佳實踐以及using語句的使用。此外,還討論了異常處理的嵌套機制及其應用,并提出了最佳實踐。最后,分析了異常處理與程序調試的關系,強調了異常處理在調試中的重要性及調試工具的支持,提出了相關最佳實踐。通過合理使用異常處理機制,可以顯著提高程序的健壯性和可靠性。

關鍵詞:C#;異常處理;運行時異常;檢查型異常;關鍵字;嵌套機制;程序調試

AI助手:Kimi


一、異常

在程序設計中,異常(Exception) 是指程序運行過程中出現的不正常或意外的情況,這些情況通常會打斷程序的正常執行流程。異常是程序運行時出現的錯誤或意外事件的表示,它提供了一種機制,使得程序可以在運行時檢測并響應這些意外情況。

1. 異常的分類

異常通常可以分為以下幾類:

運行時異常(Runtime Exception):

  • 這些異常通常是由程序運行時的錯誤引起的,例如空指針異常(NullPointerException)、數組越界異常(ArrayIndexOutOfBoundsException)、算術異常(ArithmeticException)等。
  • 這些異常通常是程序邏輯錯誤的體現,應該在開發過程中盡量避免。

檢查型異常(Checked Exception):

  • 這些異常是可以在編譯時被檢查的,通常是由外部環境或資源引起的,例如文件未找到異常(FileNotFoundException)、輸入輸出異常(IOException)、SQL異常(SQLException)等。
  • 檢查型異常需要在代碼中顯式處理,要么通過try-catch塊捕獲,要么通過throws聲明拋出。

2. 異常的作用

  • 錯誤處理:異常機制允許程序在運行時檢測到錯誤或意外情況,并采取適當的措施來處理這些錯誤,而不是直接導致程序崩潰。
  • 資源管理:通過異常處理,可以確保在發生錯誤時,已分配的資源(如文件流、數據庫連接等)能夠被正確釋放,避免資源泄漏。
  • 程序控制流:異常可以作為一種控制流機制,用于處理程序中的錯誤情況,使得程序可以優雅地處理異常情況,而不是直接終止。

小結

在程序設計中,異常是運行時出現的不正常或意外情況的表示,它提供了一種機制,使得程序可以在運行時檢測并響應這些意外情況。異常分為運行時異常和檢查型異常,前者通常是程序邏輯錯誤的體現,后者通常是由外部環境或資源引起的。異常的作用在于錯誤處理、資源管理和程序控制流的優化。

二、異常處理

1. 異常處理的定義

異常處理(Exception Handling) 是指在程序設計中,通過特定的機制來檢測、響應和處理運行時出現的異常情況,從而確保程序在遇到錯誤或意外時能夠穩定運行,而不是直接崩潰或終止。異常處理的核心在于提供一種優雅的方式來處理程序運行時的錯誤和意外情況,提高程序的健壯性和可靠性。

2. 異常處理的主要組成部分

異常處理通常包括以下幾個關鍵部分:

拋出異常(Throw):

  • 當程序運行時檢測到一個錯誤或異常情況時,會創建一個異常對象并將其拋出。這個異常對象包含了關于錯誤的詳細信息,如錯誤類型、錯誤消息和堆棧跟蹤等。
  • 例如,在Java中,可以通過throw關鍵字手動拋出一個異常:
    if (x < 0) {throw new IllegalArgumentException("x 不能為負數");
    }
    

捕獲異常(Catch):

  • 捕獲異常是指在代碼中定義一個或多個catch塊,用于捕獲并處理特定類型的異常。當異常被拋出時,程序會查找匹配的catch塊來處理該異常。
  • 例如,在Java中,可以通過try-catch塊來捕獲異常:
    try {int result = 10 / 0; // 可能拋出ArithmeticException
    } catch (ArithmeticException e) {System.out.println("發生算術異常: " + e.getMessage());
    }
    

聲明異常(Throws):

  • 在某些編程語言中,方法可以聲明可能拋出的異常類型。調用該方法的代碼需要處理這些異常,要么通過try-catch塊捕獲,要么通過throws聲明繼續向上拋出。
  • 例如,在Java中,可以通過throws關鍵字聲明方法可能拋出的異常:
    public void readFile() throws FileNotFoundException {FileInputStream fis = new FileInputStream("file.txt");
    }
    

資源清理(Finally):

  • 在異常處理中,finally塊用于確保某些代碼無論是否發生異常都會被執行。這通常用于資源清理,如關閉文件流、釋放數據庫連接等。
  • 例如:
    try {FileInputStream fis = new FileInputStream("file.txt");// 使用文件流
    } catch (FileNotFoundException e) {System.out.println("文件未找到: " + e.getMessage());
    } finally {fis.close(); // 確保文件流被關閉
    }
    

3. 異常處理的作用

  • 錯誤處理:異常處理機制允許程序在運行時檢測到錯誤或意外情況,并采取適當的措施來處理這些錯誤,而不是直接導致程序崩潰。
  • 資源管理:通過異常處理,可以確保在發生錯誤時,已分配的資源(如文件流、數據庫連接等)能夠被正確釋放,避免資源泄漏。
  • 程序控制流:異常可以作為一種控制流機制,用于處理程序中的錯誤情況,使得程序可以優雅地處理異常情況,而不是直接終止。

小結

異常處理是程序設計中一種重要的機制,用于檢測、響應和處理運行時出現的異常情況。它通過throwcatchthrowsfinally等關鍵字和語句,提供了一種優雅的方式來處理程序運行時的錯誤和意外情況,確保程序的穩定運行,提高程序的健壯性和可靠性。

三、C#異常處理

在C#中,異常處理是一種強大的機制,用于處理程序運行時出現的錯誤和意外情況。通過異常處理,程序可以在遇到錯誤時優雅地處理這些情況,而不是直接崩潰。C#的異常處理機制主要通過trycatchfinallythrow關鍵字來實現。

1. 異常的基本概念

在C#中,異常是通過Exception類及其子類來表示的。Exception類是所有異常的基類,它包含了一些基本的屬性和方法,如Message(錯誤信息)、StackTrace(堆棧跟蹤)等。常見的異常類型包括:

  • NullReferenceException:嘗試訪問空對象的成員時拋出。
  • ArgumentException:傳遞了無效的參數時拋出。
  • IOException:在進行輸入輸出操作時發生錯誤時拋出。
  • SqlException:在執行數據庫操作時發生錯誤時拋出。

2. 異常處理的關鍵字

C#的異常處理主要通過以下關鍵字來實現:

try:

  • try塊用于包裹可能拋出異常的代碼。如果try塊中的代碼拋出了異常,程序會跳轉到相應的catch塊進行處理。
  • 示例:
    try
    {int result = 10 / 0; // 可能拋出DivideByZeroException
    }
    

catch:

  • catch塊用于捕獲并處理異常。可以捕獲特定類型的異常,也可以捕獲所有類型的異常。
  • 示例:
    try
    {int result = 10 / 0; // 可能拋出DivideByZeroException
    }
    catch (DivideByZeroException e)
    {Console.WriteLine("發生除零異常: " + e.Message);
    }
    

finally:

  • finally塊用于執行清理操作,無論是否發生異常,finally塊中的代碼都會被執行。通常用于釋放資源,如關閉文件流、數據庫連接等。
  • 示例:
    try
    {FileStream fs = new FileStream("file.txt", FileMode.Open);// 使用文件流
    }
    catch (FileNotFoundException e)
    {Console.WriteLine("文件未找到: " + e.Message);
    }
    finally
    {fs.Close(); // 確保文件流被關閉
    }
    

throw:

  • throw關鍵字用于拋出一個異常對象。可以拋出內置的異常類型,也可以拋出自定義的異常類型。
  • 示例:
    if (x < 0)
    {throw new ArgumentException("x 不能為負數");
    }
    

3. 異常處理的流程

異常處理的流程如下:

  1. 將可能拋出異常的代碼放在try塊中。
  2. 使用一個或多個catch塊捕獲并處理特定類型的異常。
  3. 使用finally塊執行清理操作,無論是否發生異常,finally塊中的代碼都會被執行。
  4. 如果需要,可以在catch塊中使用throw關鍵字重新拋出捕獲的異常,或者在其他地方使用throw關鍵字拋出自定義異常。

4. 自定義異常

C#允許開發者定義自己的異常類型,通過繼承Exception類或其子類來實現。自定義異常可以包含額外的信息和方法,用于更精確地描述錯誤情況。

示例:

public class MyCustomException : Exception
{public MyCustomException(string message) : base(message){}
}public void MyMethod(int x)
{if (x < 0){throw new MyCustomException("x 不能為負數");}
}

5. 異常處理的最佳實踐

  • 捕獲具體的異常:盡量捕獲具體的異常類型,而不是捕獲通用的Exception類。這樣可以更精確地處理不同類型的異常。
  • 記錄異常信息:在捕獲異常時,記錄異常信息(如堆棧跟蹤)可以幫助后續的調試和問題排查。
  • 資源清理:確保在異常處理中釋放已分配的資源,如文件流、數據庫連接等。可以使用finally塊或using語句來實現。
  • 避免過度捕獲異常:不要在不必要的地方捕獲異常,這可能會掩蓋潛在的錯誤,使得問題難以發現和調試。
  • 避免忽略異常:捕獲異常后,不要忽略異常,至少應該記錄異常信息。

6. 使用using語句

在C#中,using語句提供了一種更簡潔的方式來管理資源,確保資源在使用后被正確釋放。using語句會自動調用資源的Dispose方法。

示例:

using (FileStream fs = new FileStream("file.txt", FileMode.Open))
{// 使用文件流
} // 文件流在離開using塊時自動關閉

7. 異常的傳播

如果一個方法拋出了異常,而該方法沒有捕獲處理這個異常,異常會被傳播(向上拋)到調用它的方法。如果調用鏈上的方法都沒有捕獲處理這個異常,最終程序會終止并打印異常堆棧信息。

小結

C#的異常處理機制通過trycatchfinallythrow關鍵字來實現,允許程序在運行時檢測并響應異常情況。通過合理使用異常處理機制,可以提高程序的健壯性和可靠性,確保程序在遇到錯誤時能夠優雅地處理這些情況,而不是直接崩潰。

四、C#異常處理中的嵌套

在C#中,異常處理機制可以進行嵌套,即在一個try塊中可以包含另一個try塊,或者在一個catch塊中可以包含另一個try-catch結構。這種嵌套機制允許更細致地處理復雜的錯誤情況,尤其是在處理多層調用或多個資源時。下面將詳細解析異常處理機制的嵌套。

1. 嵌套的try-catch結構

基本形式

嵌套的try-catch結構允許在try塊或catch塊中再包含一個完整的try-catch結構。這種結構可以用于處理不同層次的錯誤,或者在處理一個錯誤時可能引發另一個錯誤的情況。

try
{try{// 內層 try 塊中的代碼int result = 10 / 0; // 可能拋出 DivideByZeroException}catch (DivideByZeroException e){Console.WriteLine("內層 catch 捕獲到除零異常: " + e.Message);// 在內層 catch 塊中處理異常}
}
catch (Exception e)
{Console.WriteLine("外層 catch 捕獲到異常: " + e.Message);// 在外層 catch 塊中處理異常
}
處理邏輯
  • 內層try-catch:首先嘗試執行內層try塊中的代碼。如果內層try塊中的代碼拋出異常,內層的catch塊會嘗試捕獲并處理該異常。
  • 外層try-catch:如果內層的catch塊無法處理異常,或者在內層catch塊中又拋出了新的異常,外層的try-catch結構會嘗試捕獲并處理這些異常。

2. 嵌套的try-catch-finally結構

基本形式

嵌套的try-catch-finally結構允許在try塊、catch塊或finally塊中再包含一個完整的try-catch-finally結構。這種結構可以用于確保資源的正確釋放,即使在處理異常時也可能需要進行資源清理。

try
{try{// 內層 try 塊中的代碼FileStream fs = new FileStream("file.txt", FileMode.Open);// 使用文件流}catch (FileNotFoundException e){Console.WriteLine("內層 catch 捕獲到文件未找到異常: " + e.Message);// 在內層 catch 塊中處理異常}finally{// 內層 finally 塊中的代碼fs.Close(); // 確保文件流被關閉}
}
catch (Exception e)
{Console.WriteLine("外層 catch 捕獲到異常: " + e.Message);// 在外層 catch 塊中處理異常
}
finally
{// 外層 finally 塊中的代碼Console.WriteLine("外層 finally 塊執行");
}
處理邏輯
  • 內層try-catch-finally:首先嘗試執行內層try塊中的代碼。如果內層try塊中的代碼拋出異常,內層的catch塊會嘗試捕獲并處理該異常。無論是否發生異常,內層的finally塊都會執行,用于資源清理。
  • 外層try-catch-finally:如果內層的catch塊無法處理異常,或者在內層catch塊中又拋出了新的異常,外層的try-catch結構會嘗試捕獲并處理這些異常。無論是否發生異常,外層的finally塊都會執行,用于資源清理。

3. 異常的傳播與嵌套處理

異常的傳播

如果內層的try-catch結構無法處理某個異常,異常會被傳播到外層的try-catch結構。如果外層的try-catch結構也無法處理該異常,異常會繼續向上傳播,直到被某個catch塊捕獲,或者最終導致程序終止。

嵌套處理的場景

嵌套的異常處理機制在以下場景中特別有用:

  • 多層調用:在多層方法調用中,內層方法可能拋出異常,而外層方法需要處理這些異常。
  • 資源管理:在處理多個資源時,可能需要在不同層次上進行資源清理。
  • 復雜的錯誤處理邏輯:在處理一個錯誤時可能引發另一個錯誤,需要在不同層次上進行處理。

4. 嵌套異常處理的最佳實踐

捕獲具體的異常

盡量捕獲具體的異常類型,而不是捕獲通用的Exception類。這樣可以更精確地處理不同類型的異常。

try
{try{int result = 10 / 0; // 可能拋出 DivideByZeroException}catch (DivideByZeroException e){Console.WriteLine("內層 catch 捕獲到除零異常: " + e.Message);}
}
catch (Exception e)
{Console.WriteLine("外層 catch 捕獲到異常: " + e.Message);
}
資源清理

確保在異常處理中釋放已分配的資源,如文件流、數據庫連接等。可以使用finally塊或using語句來實現。

try
{using (FileStream fs = new FileStream("file.txt", FileMode.Open)){// 使用文件流}
}
catch (FileNotFoundException e)
{Console.WriteLine("文件未找到: " + e.Message);
}
避免過度嵌套

雖然嵌套的異常處理機制非常強大,但過度嵌套會使代碼變得復雜和難以維護。盡量通過合理的異常處理邏輯來減少嵌套的深度。

5. 示例:嵌套異常處理

下面是一個完整的示例,展示了嵌套異常處理的使用場景:

using System;
using System.IO;class Program
{static void Main(){try{try{FileStream fs = new FileStream("file.txt", FileMode.Open);try{int result = 10 / 0; // 可能拋出 DivideByZeroException}catch (DivideByZeroException e){Console.WriteLine("內層 catch 捕獲到除零異常: " + e.Message);}finally{fs.Close(); // 確保文件流被關閉}}catch (FileNotFoundException e){Console.WriteLine("內層 catch 捕獲到文件未找到異常: " + e.Message);}}catch (Exception e){Console.WriteLine("外層 catch 捕獲到異常: " + e.Message);}finally{Console.WriteLine("外層 finally 塊執行");}}
}

小結

C#中的異常處理機制支持嵌套,允許在try塊、catch塊或finally塊中再包含一個完整的try-catchtry-catch-finally結構。這種嵌套機制可以用于處理多層調用、資源管理和復雜的錯誤處理邏輯。通過合理使用嵌套異常處理機制,可以提高程序的健壯性和可靠性,確保在遇到錯誤時能夠優雅地處理這些情況,而不是直接崩潰。

五、異常處理和程序調試

異常處理和程序調試是軟件開發過程中兩個密切相關但又有所不同的概念。它們在確保程序的正確性和穩定性方面都起著至關重要的作用。下面將詳細解析它們之間的關系:

1. 異常處理

異常處理 是程序設計中的一種機制,用于在運行時檢測和響應異常情況。它通過特定的語法(如trycatchfinallythrow)來捕獲、處理和拋出異常,從而確保程序在遇到錯誤時能夠穩定運行,而不是直接崩潰。

主要功能:
  • 捕獲異常:通過try-catch塊捕獲運行時發生的異常。
  • 處理異常:在catch塊中處理捕獲的異常,避免程序崩潰。
  • 資源清理:通過finally塊確保資源(如文件流、數據庫連接等)被正確釋放。
  • 拋出異常:通過throw關鍵字手動拋出異常,用于表示程序運行時的錯誤或意外情況。

2. 程序調試

程序調試 是軟件開發過程中用于發現、定位和修復程序中的錯誤(通常稱為“Bug”)的過程。調試通過使用調試工具(如斷點、變量監視、調用堆棧等)來逐步跟蹤程序的執行過程,幫助開發者理解程序的行為,找出問題的根源并加以修復。

主要功能:
  • 發現錯誤:通過運行程序并觀察其行為,發現潛在的錯誤。
  • 定位錯誤:使用調試工具逐步跟蹤程序的執行過程,確定錯誤發生的具體位置。
  • 修復錯誤:找到錯誤的原因并進行修復,確保程序按預期運行。
  • 驗證功能:驗證程序是否實現了預期的功能,確保每個功能模塊都符合需求規格說明書的要求。

3. 異常處理與程序調試的關系

異常處理是調試的一部分

異常處理機制可以幫助開發者在調試過程中更容易地發現和定位錯誤。通過捕獲異常并記錄異常信息(如堆棧跟蹤),開發者可以快速了解錯誤發生的具體位置和原因。這使得調試過程更加高效,減少了手動排查錯誤的時間。

調試工具支持異常處理

調試工具(如Visual Studio、Eclipse等)提供了強大的功能來支持異常處理。例如:

  • 異常斷點:調試工具可以設置異常斷點,當程序拋出特定類型的異常時自動暫停,方便開發者檢查程序狀態。
  • 異常信息查看:調試工具可以顯示異常的詳細信息,包括異常類型、錯誤消息和堆棧跟蹤,幫助開發者快速定位問題。
  • 異常處理代碼調試:調試工具可以進入catch塊和finally塊,幫助開發者驗證異常處理邏輯的正確性。
異常處理有助于提高調試效率

通過合理使用異常處理機制,可以減少程序在運行時的崩潰次數,使得調試過程更加平穩。例如:

  • 捕獲和處理常見異常:通過捕獲和處理常見的運行時異常(如空指針異常、數組越界異常等),可以避免程序頻繁崩潰,減少調試中斷的次數。
  • 記錄異常信息:通過記錄異常信息(如日志),可以在調試過程中快速回顧和分析錯誤,提高調試效率。

4. 調試有助于優化異常處理

調試過程中,開發者可以驗證異常處理邏輯的正確性和有效性。例如:

  • 驗證異常處理代碼:通過逐步調試catch塊和finally塊,確保異常處理邏輯能夠正確執行,資源能夠被正確釋放。
  • 優化異常處理策略:通過調試,開發者可以發現異常處理邏輯中的潛在問題,如不必要的異常捕獲、異常處理代碼的冗余等,從而優化異常處理策略。

5. 最佳實踐

  • 合理使用異常處理:不要過度依賴異常處理來控制程序的正常流程。異常處理應該用于處理真正的錯誤和意外情況。
  • 記錄異常信息:在捕獲異常時,記錄詳細的異常信息(如堆棧跟蹤),以便后續的調試和問題排查。
  • 使用調試工具:充分利用調試工具提供的功能,如異常斷點、異常信息查看等,提高調試效率。
  • 驗證異常處理邏輯:通過調試驗證異常處理邏輯的正確性,確保在異常發生時程序能夠穩定運行并正確處理資源。

小結

異常處理和程序調試是軟件開發過程中兩個密切相關的重要環節。異常處理機制通過捕獲和處理運行時的錯誤,幫助程序在遇到錯誤時能夠穩定運行,而不是直接崩潰。調試工具則通過提供強大的功能,幫助開發者發現、定位和修復程序中的錯誤。通過合理使用異常處理機制和調試工具,可以顯著提高程序的健壯性和開發效率,確保軟件的高質量和可靠性。

總結

本文主要介紹了C#程序設計中的異常處理機制及其重要性。首先闡述了異常的定義、分類(運行時異常和檢查型異常)以及異常與錯誤的區別。接著詳細講解了異常處理的定義、組成部分(拋出異常、捕獲異常、聲明異常和資源清理)以及其作用。然后深入探討了C#中異常處理的具體實現,包括異常的基本概念、關鍵字(trycatchfinallythrow)、異常處理流程、自定義異常、最佳實踐以及using語句的使用。此外,還討論了異常處理的嵌套機制及其在多層調用和資源管理中的應用,并提出了嵌套異常處理的最佳實踐。最后,分析了異常處理與程序調試的關系,強調了異常處理在調試中的作用以及調試工具對異常處理的支持,提出了相關最佳實踐。通過合理使用異常處理機制,可以顯著提高程序的健壯性和可靠性,確保軟件的高質量和穩定性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908055.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908055.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908055.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

云原生時代 Kafka 深度實踐:05性能調優與場景實戰

5.1 性能調優全攻略 Producer調優 批量發送與延遲發送 通過調整batch.size和linger.ms參數提升吞吐量&#xff1a; props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16384); // 默認16KB props.put(ProducerConfig.LINGER_MS_CONFIG, 10); // 等待10ms以積累更多消息ba…

在 Dify 項目中的 Celery:異步任務的實現與集成

Celery 是一個強大而靈活的分布式任務隊列系統&#xff0c;旨在幫助應用程序在后臺異步運行耗時的任務&#xff0c;提高系統的響應速度和性能。在 Dify 項目中&#xff0c;Celery 被廣泛用于處理異步任務和定時任務&#xff0c;并與其他工具&#xff08;如 Sentry、OpenTelemet…

Pytorch Geometric官方例程pytorch_geometric/examples/link_pred.py環境安裝教程及圖數據集制作

最近需要訓練圖卷積神經網絡&#xff08;Graph Convolution Neural Network, GCNN&#xff09;&#xff0c;在配置GCNN環境上總結了一些經驗。 我覺得對于初學者而言&#xff0c;圖神經網絡的訓練會有2個難點&#xff1a; ①環境配置 ②數據集制作 一、環境配置 我最初光想…

2025年微信小程序開發:AR/VR與電商的最新案例

引言 微信小程序自2017年推出以來&#xff0c;已成為中國移動互聯網生態的核心組成部分。根據最新數據&#xff0c;截至2025年&#xff0c;微信小程序的日活躍用戶超過4.5億&#xff0c;總數超過430萬&#xff0c;覆蓋電商、社交、線下服務等多個領域&#xff08;WeChat Mini …

互聯網向左,區塊鏈向右

2008年&#xff0c;中本聰首次提出了比特幣的設想&#xff0c;這打開了去中心化的大門。 比特幣白皮書清晰的描述了去中心化支付的解決方案&#xff0c;并分別從以下幾個方面闡述了他的理念&#xff1a; 一、由轉賬雙方點對點的通訊&#xff0c;而不通過中心化的第三方&#xf…

PV操作的C++代碼示例講解

文章目錄 一、PV操作基本概念&#xff08;一&#xff09;信號量&#xff08;二&#xff09;P操作&#xff08;三&#xff09;V操作 二、PV操作的意義三、C中實現PV操作的方法&#xff08;一&#xff09;使用信號量實現PV操作代碼解釋&#xff1a; &#xff08;二&#xff09;使…

《對象創建的秘密:Java 內存布局、逃逸分析與 TLAB 優化詳解》

大家好呀&#xff01;今天我們來聊聊Java世界里那些"看不見摸不著"但又超級重要的東西——對象在內存里是怎么"住"的&#xff0c;以及JVM這個"超級管家"是怎么幫我們優化管理的。放心&#xff0c;我會用最接地氣的方式講解&#xff0c;保證連小學…

簡單實現Ajax基礎應用

Ajax不是一種技術&#xff0c;而是一個編程概念。HTML 和 CSS 可以組合使用來標記和設置信息樣式。JavaScript 可以修改網頁以動態顯示&#xff0c;并允許用戶與新信息進行交互。內置的 XMLHttpRequest 對象用于在網頁上執行 Ajax&#xff0c;允許網站將內容加載到屏幕上而無需…

詳解開漏輸出和推挽輸出

開漏輸出和推挽輸出 以上是 GPIO 配置為輸出時的內部示意圖&#xff0c;我們要關注的其實就是這兩個 MOS 管的開關狀態&#xff0c;可以組合出四種狀態&#xff1a; 兩個 MOS 管都關閉時&#xff0c;輸出處于一個浮空狀態&#xff0c;此時他對其他點的電阻是無窮大的&#xff…

Matlab實現LSTM-SVM回歸預測,作者:機器學習之心

Matlab實現LSTM-SVM回歸預測&#xff0c;作者&#xff1a;機器學習之心 目錄 Matlab實現LSTM-SVM回歸預測&#xff0c;作者&#xff1a;機器學習之心效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 代碼主要功能 該代碼實現了一個LSTM-SVM回歸預測模型&#xff0c;核心流…

Leetcode - 周賽 452

目錄 一&#xff0c;3566. 等積子集的劃分方案二&#xff0c;3567. 子矩陣的最小絕對差三&#xff0c;3568. 清理教室的最少移動四&#xff0c;3569. 分割數組后不同質數的最大數目 一&#xff0c;3566. 等積子集的劃分方案 題目列表 本題有兩種做法&#xff0c;dfs 選或不選…

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(5)

1.問題描述&#xff1a; 集成華為一鍵登錄的LoginWithHuaweiIDButton&#xff0c; 但是Button默認名字叫 “華為賬號一鍵登錄”&#xff0c;太長無法顯示&#xff0c;能否簡寫成“一鍵登錄”與其他端一致&#xff1f; 解決方案&#xff1a; 問題分兩個場景&#xff1a; 一、…

Asp.Net Core SignalR的分布式部署

文章目錄 前言一、核心二、解決方案架構三、實現方案1.使用 Azure SignalR Service2.Redis Backplane(Redis 背板方案&#xff09;3.負載均衡配置粘性會話要求無粘性會話方案&#xff08;僅WebSockets&#xff09;完整部署示例&#xff08;Redis Docker&#xff09;性能優化技…

L2-054 三點共線 - java

L2-054 三點共線 語言時間限制內存限制代碼長度限制棧限制Java (javac)2600 ms512 MB16KB8192 KBPython (python3)2000 ms256 MB16KB8192 KB其他編譯器2000 ms64 MB16KB8192 KB 題目描述&#xff1a; 給定平面上 n n n 個點的坐標 ( x _ i , y _ i ) ( i 1 , ? , n ) (x\_i…

【 java 基礎知識 第一篇 】

目錄 1.概念 1.1.java的特定有哪些&#xff1f; 1.2.java有哪些優勢哪些劣勢&#xff1f; 1.3.java為什么可以跨平臺&#xff1f; 1.4JVM,JDK,JRE它們有什么區別&#xff1f; 1.5.編譯型語言與解釋型語言的區別&#xff1f; 2.數據類型 2.1.long與int類型可以互轉嗎&…

高效背誦英語四級范文

以下是結合認知科學和實戰驗證的 ??高效背誦英語作文五步法??&#xff0c;助你在30分鐘內牢固記憶一篇作文&#xff0c;特別適配考前沖刺場景&#xff1a; &#x1f4dd; ??一、解構作文&#xff08;5分鐘&#xff09;?? ??拆解邏輯框架?? 用熒光筆標出&#xff…

RHEL7安裝教程

RHEL7安裝教程 下載RHEL7鏡像 通過網盤分享的文件&#xff1a;RHEL 7.zip 鏈接: https://pan.baidu.com/s/1ExLhdJigj-tcrHJxIca5XA?pwdjrrj 提取碼: jrrj --來自百度網盤超級會員v6的分享安裝 1.打開VMware&#xff0c;新建虛擬機&#xff0c;選擇自定義然后下一步 2.點擊…

結構型設計模式之Decorator(裝飾器)

結構型設計模式之Decorator&#xff08;裝飾器&#xff09; 前言&#xff1a; 本案例通過李四舉例&#xff0c;不改變源代碼的情況下 對“才藝”進行增強。 摘要&#xff1a; 摘要&#xff1a; 裝飾器模式是一種結構型設計模式&#xff0c;允許動態地為對象添加功能而不改變其…

Kotlin委托機制使用方式和原理

目錄 類委托屬性委托簡單的實現屬性委托Kotlin標準庫中提供的幾個委托延遲屬性LazyLazy委托參數可觀察屬性Observable委托vetoable委托屬性儲存在Map中 實踐方式雙擊back退出Fragment/Activity傳參ViewBinding和委托 類委托 類委托有點類似于Java中的代理模式 interface Base…

SpringBoot接入Kimi實踐記錄輕松上手

kimi簡單使用 什么是Kimi API 官網&#xff1a;https://platform.moonshot.cn/ Kimi API 并不是一個我所熟知的廣泛通用的術語。我的推測是&#xff0c;你可能想問的是關于 API 的一些基礎知識。API&#xff08;Application Programming Interface&#xff0c;應用程序編程接…