[Java] 方法和數組

目錄

1. 方法

1.2 什么是方法

1.2?方法的定義

1.3?方法的調用

1.4?方法的重載

1.5?遞歸

2. 一維數組

2.1 什么是數組

2.2 數組的創建

2.3 數組的初始化

2.4 遍歷數組

2.5 引用數據類型

2.6 關于null?

2.7?數組轉字符串

2.8?數組元素的查找

2.9?數組的排序

2.10?數組的拷貝

2.11?數組逆序

2.12?Arrays類部分方法

3. 二維數組

3.1 二維數組的定義和初始化

3.2 數組的遍歷

?3.3 不規則二維數組


1. 方法

1.2 什么是方法

? ? ? ? Java中的方法就類似于C語言當中的函數,是實現一種特定的,使用頻率高的功能,專門解決一種問題的辦法。例如:求一個數的開平方,判斷一個數是不是素數。

方法也分為兩種,一種是Java語言規定的方法,還有一種是程序員根據自己的需要自定義的一些方法。

當在解決重復問題時,設置一個方法解決重復問題,可以多次調用方法去解決重復問題,不用每次使用就需要寫代碼,減少代碼冗余度。

1.2?方法的定義

修飾符? 返回值類型? 方法名(參數類型){

? ? ? ? ? ? ? ? 方法體代碼;

? ? ? ? ? ? ? ? (return 返回值;)

}

上面是方法的基本形式,舉個例子,寫一個判斷一個數是不是素數的方法:

public static boolean isPrimeNumber(int n){for (int i = 2; i < Math.sqrt(n); i++) {if(n % i == 0){return false;}}return true;}
}

public static 是修飾符,boolean 是返回值類型,返回值類型必須與return返回的類型一致,isPrimeNumber是方法名,int n是參數,下面便是方法體,如果沒有返回值,則返回值類型寫void,不用寫return。

方法不能嵌套定義,方法的命名一般是小駝峰,方法必須在類里面。

1.3?方法的調用

定義好一個方法后,需要在main函數里面進行調用,否則不會調用。

public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();boolean b = isPrimeNumber(a);if (b == true) {System.out.println(a + "是素數");}}

在調用方法時候如果方法需要傳參,便需要在調用的時候傳入對應類型的參數,然后調用方法。? ????????形參是實參的一份臨時拷貝,改變形參的值不會改變實參的值,因為形參和實參不是同一塊地址,每次調用方法都需要在棧中調用一塊空間,方法調用完銷毀。

1.4?方法的重載

方法在調用時候可能需要傳的參數的類型,順序,數量不同,但都是同一種功能的方法,這時候就可以把兩種方法用相同的名字命名,例如:

public static int add(int a,int b){return a + b;}public static double add(double a,double b){return a + b;}

上面代碼是計算兩個數的和的方法,但是傳的參數不一樣,可以用相同的名字來命名方法,這樣調用這個方法時候既可以計算兩個整型的和,也能計算兩個雙精度浮點數的和。

注意:

方法名必須相同

方法參數的類型,順序,數量其中至少有一種不同

與方法的返回值類型無關。

按理來說同一塊作用域不能有兩個相同的標識符,但是為什么類里面可以有相同名字的兩種方法呢?

其實不然,我們編寫的方法名并不是真正存儲在內存中的方法名,而編譯器會將方法+后面的參數編譯成一種方法簽名供機器識別。

我們可以通過JDK自帶的反匯編工具查看方法在機器中存儲的真正名字。

1.先將.java文件編譯成.class文件

2. 找到.class文件所在的目錄,用控制臺打開

3. 輸入javap -v 字節碼文件名就可以顯示反匯編碼了。

上面第一個方法名是add;(II)I,括號里面表示方法的參數是兩個整型,后面表示返回值是整型,第二個方法名add(DD)D,括號里面表示方法的參數是兩個double類型的,后面表示返回值是double類型。機器識別的是這種方法簽名,區分方法的重載。

下面方法簽名的一些符號:

1.5?遞歸

?遞歸就是遞推和回歸的意思,在解決一些問題時,使用遞歸將復雜的問題簡單化,就可以輕松求解。遞歸也就是方法重復調用自己,知道遇到停止條件,才停止調用,返回調用的值。

因此遞歸有兩個重要的部分:

1. 遞推公式

2. 終止條件

例如求n!;

public static void main(String[] args) {//求n的階乘Scanner sc = new Scanner(System.in);int n = sc.nextInt();System.out.println(fib(n));}public static int fib(int a){if(a == 1){return 1;}return a * fib(a-1);}

上面代碼中 a == 1是終止條件,a * fib(a-1)是遞推公式。

但是遞歸也有它的壞處,那就是容易導致棧溢出,因為每次調用方法都需要在棧里面申請空間,如果問題過于復雜,申請的空間過多,就會導致棧溢出,例如用遞歸解決斐波那契數列問題,給的數太大,就會導致棧溢出。

2. 一維數組

2.1 什么是數組

? ? ? ? 數組可以理解為相同元素的集合,數組里面可以存儲許多相同類型的數據,數組在內存中是連續存儲的。

2.2 數組的創建

數組創建的基本形式,下面我以創建整型數組為例:

int[]? a = new int[10];

int[]是數據類型,代表引用類型,a是變量名,稱為引用變量也被稱為引用,new是創建一個新的對象,后面中括號里是數組的大小。

2.3 數組的初始化

數組的初始化分為兩種動態初始化靜態初始化

動態初始化

在創建數組的時候直接指定數組的大小,不指定數組內容,系統默認賦值為0:

int[] a = new int[10];

靜態初始化

在創建數組的時候不指定數組元素的個數,而是指定數組里面的值:

int[] a = new int[]{1,2,3,4,5};

靜態變量雖然沒有指定數組的大小,但是編譯器會根據后面數據的內容來判斷數組的大小。

靜態變量初始化時候可以簡寫成:

int[] a = {1,2,3,4,5};

在Java中也支持C語言的定義數組的方法:

int a[] = {1,2,3,4,5};

當然不建議平時這樣定義數組和初始化。

在靜態初始化和動態初始化時也可以分開來寫:

//靜態初始化
int[] a;
a = new int[]{1,2,3,4,5};
//動態初始化
int[] b;
b = new int[10];

當然不能寫成如下格式:

//錯誤
int[] a;
a = {1,2,3,4,5};

數組沒有初始化的話,系統默認的值是:

?數組中存儲的是引用類型時的默認值是:null。

2.4 遍歷數組

遍歷數組有三種方法:

方法一:

下面方法中使用循環的方法來遍歷數組并打印,里面用到.length的屬性,.length是求數組長度的屬性。

int[] a = new int[]{1,2,3,4,5};
for(int i = 0;i < a.length;i++) {System.out.print(a[i] + " ");
}

方法二:

下面是for循環的的另一種版本,能夠更簡便的遍歷數組,把數組里的每個值傳給定義的 x變量,并打印。

int[] a = new int[]{1,2,3,4,5};
for (int x,a) {System.out.print(x + " ");
}

方法二的優點是遍歷數組簡單,缺點是獲取不了數組元素的下標,不能改變數組里面的值。

方法三:

這里用到了Arrays里面的toString方法,將數組傳進去返回數字里面的值的字符串形式:

import java.util.Arraysint[] a = new int[]{1,2,3,4,5};
String b = Arrays.toString(a);
System.out.println(b);

輸出結果是:[1,2,3,4,5]

2.5 引用數據類型

數組屬于引用數據類型,引用數據類型就是存儲到是數據在堆區創建的地址,存儲都引用變量里面。下面先介紹一下JVM(java虛擬機):

程序都要在JVM中運行,在JVM中的棧區申請一塊棧幀,存放方法的局部變量等,在堆區創建對象,用引用變量存放對象的地址,來使用對象。

下面是JVM里面的代碼運行時的數據區:

為什么會有兩個棧區?

本地方法棧執行的是由C/C++編寫的方法。

虛擬機棧是執行的Java的方法的。

我們今天只用到堆區和虛擬機棧。

這里定義一個整型數組:

int[] a = new int[]{1,2,3,4,5};

?int[] 是引用類型,a是引用變量,又稱引用,new是創建新對象,后面是創建的新對象,它們在內存中存儲如下:
?

?引用變量a先在棧區申請一塊空間,a是引用變量存放的是對象的地址,new創建的對象存放在堆區,a存放的地址,指向堆區里面創建的數組對象。

1. 一個引用變量只能指向一個對象。

2. 引用變量初始化賦值為null時,引用變量不指向任何對象。

3. 假設兩個引用變量a 和 b,a=b的含義是:a指向的對象變成b指向的對象

4. 引用類型的引用變量存放的是對象的地址。

在Java中數組可以作為返回值,也可以作為方法的參數:
例如:

public static int[] arr(int[] a) {int[] b = new int[a.length];for(int i = 0;i < a.length;i++) {b[i] = a[i];return b;
}

2.6 關于null?

null 在Java中被稱為空引用,也就是不指向任何一個對象:

int[] a = null;

該引用不能進行讀寫操作,或者.length操作等,如果使用就會報錯:

?

?null相當于C語言中的NULL指針,表示的是一個無效的內存。

2.7?數組轉字符串

在Java中有一個名為Arrays的類,里面有很多對數組處理的方法,Arrsys類里面的toString(數組名)的方法,能幫助我們快速的將數組轉換成字符串:

public static void main(String[] args) {//數組轉字符串int[] a = new int[]{1, 2, 3, 4, 5};String b = Arrays.toString(a);System.out.println(b);}

當然我們也可以自己書寫一個將數組轉換為字符串的方法:

public static void main(String[] args) {int[] a = new int[]{1,3,5,7,9};String b = myToString(a);System.out.println(b);
}public static String myToString(int[] a) {String arr = "[";for (int i = 0; i < a.length; i++) {arr += a[i];if(i != a.length-1) {arr += ", ";}}arr += "]";return arr;
}

2.8?數組元素的查找

方法一:順序查找

一次遍歷數組中的每個元素,知道遇到要查找的元素,返回元素下標。

public static void main(String[] args) {//查找數組中的元素,返回下標int[] a = new int[]{1,2,3,4,5};int b = 3;System.out.println(find(a,b));}public static int find(int[] a,int b) {for (int i = 0; i < a.length; i++) {if(b == a[i]) {return i;}}return -1;}

方法二:二分查找

二分查找的前提是數組元素是有序的,一次檢查一半的元素,直到查找到元素,返回下標。

public static int fingOne(int[] a,int b) {int left = 0;int right = a.length - 1;while(left <= right) {int mid = (left + right) / 2;if(b > a[mid]) {left = mid + 1;}else if(b < a[mid]) {right = mid - 1;}else {return mid;}}return -1;}

方法三:系統自帶的二分查找方法

        int[] a = new int[]{1,2,3,4,5};int c = Arrays.binarySearch(a,3);System.out.println(c);

用到Arrays類里面的binarySearch(數組名,查找元素)方法?,返回查找的數組下標,如果數組中沒有查找元素,則返回 -(最后一次二分查找左下標 + 1)。

該方法的重載還可以實現指定數組返回進行二分查找元素:

        int[] a = new int[]{1,2,3,4,5};int d = Arrays.binarySearch(a,1,3,3);System.out.println(d);

Arrays.binarySearch(數組名,范圍開始下標,范圍結束下標,查找元素);

從數組下標范圍 [1,3)里面查找3元素,返回下標。

2.9?數組的排序

方法一:冒泡排序

升序:對數組中的元素從開始依次相鄰兩個進行比較;大的數后移,直到比較到最后兩個數結束,數組中最大的數就在最后一個位置。循環往復,最后完成數組的升序排列:

public static void main(String[] args) {//冒泡排序(升序)int[] a = new int[]{1,22,5,33,66,55,9};mysort(a);System.out.println(Arrays.toString(a));}public static void mysort(int[] a) {boolean b = true;//輪數for (int i = 0; i < a.length-1; i++) {for (int j = 0; j < a.length-1-i; j++) {if(a[j] > a[j+1]) {int tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;b = false;}}if(b == true) {return;}}return;}

方法二:Java自帶的方法

Arrays類里面的.sort(數組名)方法,默認將數組內容升序排列:

        int[] a = new int[]{1,22,5,33,66,55,9};Arrays.sort(a);System.out.println(Arrays.toString(a));

2.10?數組的拷貝

方法一:

自己創建方法實現

public static void main(String[] args) {//數組的拷貝int[] a = new int[]{1,2,3,4,5};int[] b = myCopyArray(a);System.out.println(Arrays.toString(b));}public static int[] myCopyArray(int[] a) {int[] b = new int[a.length];for (int i = 0; i < a.length; i++) {b[i] = a[i];}return b;}

方法二:

Java中自帶的方法

Arrays類中的copyOf(拷貝的數組名,新數組的長度);

        int[] a = new int[]{1,2,3,4,5};int[] c = Arrays.copyOf(a,a.length);System.out.println(Arrays.toString(c));

?Arrays類里面還有一種方法可以指定數組范圍拷貝:copyOfRange(拷貝的數組名,拷貝開始的下標,拷貝結束的下標);

        int[] a = new int[]{1,2,3,4,5};int[] d = Arrays.copyOfRange(a,2,4);System.out.println(Arrays.toString(d));

注意:拷貝方法的底層方法代碼由C/C++代碼書寫,被關鍵字native修飾的方法是由C/C++代碼書寫的,運行效率高,查看不了源代碼。?

2.11?數組逆序

將數組中的元素逆序輸出:

public static void main(String[] args) {//數組逆序int[] a = new int[]{1,2,3,4,5};move(a);System.out.println(Arrays.toString(a));}public static void move(int[] a) {int left = 0;int right = a.length - 1;while(left < right) {int tmp = a[left];a[left] = a[right];a[right] = tmp;left++;right--;}}

2.12?Arrays類部分方法

查找數組指定元素(二分查找)

Arrays.binarySearch(數組名,查找元素);返回查找元素下標,若不存在查找元素,返回最后一次二分查找的左下標 + 1 取負數。

        //查找數組指定元素int[] a = new int[]{1,2,3,4,5};int b = Arrays.binarySearch(a,4);int c = Arrays.binarySearch(a,2,4,3);System.out.println(b);System.out.println(c);

數組的拷貝

Arrays.copyOf(拷貝的數組名,新數組的大小);返回拷貝的新數組。

        int[] a = new int[]{1,2,3,4,5};int[] c = Arrays.copyOf(a,a.length);System.out.println(Arrays.toString(c));

Arrays.copyOfRange(拷貝的數組名,拷貝開始下標,拷貝結束下標);拷貝數組指定范圍的數據到新數組。

        int[] a = new int[]{1,2,3,4,5};int[] d = Arrays.copyOfRange(a,2,4);System.out.println(Arrays.toString(d));

判斷兩個數組是否相等

Arrays.equals(數組1,數組2);比較數組1和數組2里面的內容是否相等。相等返回true,不相等返回false。

        //比較兩個數組是否相等int[] arr1 = new int[]{1,2,3,4,5};int[] arr2 = new int[]{1,2,3,4,5};boolean d = Arrays.equals(arr1,arr2);System.out.println(d);

數組的賦值

Arrays.fill(數組名,值);將值賦值給數組的所有元素。

        //數組賦值int[] arr3 = new int[]{1,2,3,4,5};Arrays.fill(arr3,6);System.out.println(Arrays.toString(arr3));

fill方法的重載:Arrays.fill(數組名,賦值開始坐標,賦值結束坐標,值);指定數組范圍賦值。

        //數組賦值int[] arr3 = new int[]{1,2,3,4,5};Arrays.fill(arr3,2,4,6);System.out.println(Arrays.toString(arr3));

數組的排序(升序)

Arrays.sort(數組名);對數組內的元素進行升序排列。

        int[] a = new int[]{1,22,5,33,66,55,9};Arrays.sort(a);System.out.println(Arrays.toString(a));

數組轉換成字符串

Arrays.toString(數組名);將數組轉換成字符串[1,2,3,4,5]。

        //數組轉換成字符串int[] arr4 = new int[]{1,2,3,4,5};System.out.println(Arrays.toString(arr4));

?二維數組轉換成字符串

Arrays.deepToString(數組名) ;將二維數組轉換成[ [1,2,3],[4,5,6] ]。

        //二維數組轉換成字符串int[][] a = new int[][]{{1,2,3},{4,5,6}};System.out.println(Arrays.deepToString(a));

3. 二維數組

3.1 二維數組的定義和初始化

下面是定義并初始化數組的寫法:

        int[][] a = new int[2][3];int[][] b = new int[][]{{1,2,3},{4,5,6}};int[][] c = {{1,2,3},{4,5,6}};int[][] d;d = new int[2][3];int[][] f;f = new int[][]{{1,2,3},{4,5,6}};

3.2 數組的遍歷

二維數組是特殊的一維數組,假設二維數組int[][] arr = new int[][]{{1,2,3},{4,5,6,}},arr指向的對象是一維數組,里面存放兩個一維數組對象的地址,而兩個地址位置分別是兩個一維數組。

關系如下圖:

方法一:循環遍歷

    public static void main(String[] args) {int[][] a = new int[][]{{1,2,3},{4,5,6}};for (int i = 0; i < a.length; i++) {for (int j = 0; j < a[i].length; j++) {System.out.print(a[i][j] + " ");}System.out.println();}}

方法二:for-each遍歷

    public static void main(String[] args) {int[][] a = new int[][]{{1,2,3},{4,5,6}};for(int[] b : a) {for(int c : b) {System.out.print(c + " ");}System.out.println();}}

方法三:Java自帶的方法

Arrays.deepToString(數組名);作用是將二維數組轉換成字符串

System.out.println(Arrays.deepToString(a));

打印結果:

?3.3 不規則二維數組

Java中定義數組時不可以省略行的值,可以省略列的值:

    public static void main(String[] args) {int[][] a = new int[2][];a[0] = new int[3];a[1] = new int[4];for (int i = 0; i < a.length; i++) {for (int j = 0; j < a[i].length; j++) {System.out.print(a[i][j] + " ");}System.out.println();}}

上面數組a就是不規則數組,第一行有三列,第二行有四列。

打印出來是:

在堆中存儲如下:

?

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

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

相關文章

全局異常處理:如何優雅地統一管理業務異常

在軟件開發中&#xff0c;異常處理是保證系統健壯性的重要環節。一個良好的異常處理機制不僅能提高代碼的可維護性&#xff0c;還能為使用者提供清晰的錯誤反饋。本文將介紹如何通過全局異常處理和業務異常統一處理來編寫更加優雅的代碼。 一、傳統異常處理的痛點 1.1 典型問…

PHP 編程:現代 Web 開發的基石與演進

引言 PHP&#xff08;Hypertext Preprocessor&#xff09;自1995年誕生以來&#xff0c;已成為全球最流行的服務器端腳本語言之一。盡管近年來Node.js、Python等語言在特定領域嶄露頭角&#xff0c;但PHP仍占據著超過78%的網站市場份額&#xff08;W3Techs數據&#xff09;。本…

MCU程序加密保護(一)閃存讀寫保護法 加密與解密

MCU&#xff08;微控制器單元&#xff09;的加密方法可以從硬件、軟件和通信協議三個層面來理解。以下是常見的MCU加密手段&#xff0c;按類型分類說明&#xff1a; 針對目前 STM32 系列微控制器在程序加密保護方面手段單一、保護效果有限的問題&#xff0c;本文介紹并分析了四…

汽車裝配又又又升級,ethernetip轉profinet進階躍遷指南

1. 場景描述&#xff1a;汽車裝配線中&#xff0c;使用EtherNet/IP協議的機器人與使用PROFINET協議的PLC進行數據交互。 2. 連接設備&#xff1a;EtherNet/IP機器人控制器&#xff08;如ABB、FANUC&#xff09;與PROFINET PLC&#xff08;如西門子S7-1500&#xff09;。 3. 連…

RFID系統:技術解析與應用全景

一、技術架構與運行邏輯 RFID&#xff08;Radio Frequency Identification&#xff09;系統通過無線電波實現非接觸式數據交互&#xff0c;其核心由三部分組成&#xff1a; 電子標簽&#xff08;Tag&#xff09;&#xff1a; 無源標簽&#xff1a;依賴讀寫器電磁場供電&…

25、DeepSeek-R1論文筆記

DeepSeek-R1論文筆記 1、研究背景與核心目標2、核心模型與技術路線3、蒸餾技術與小模型優化4、訓練過程簡介5、COT思維鏈&#xff08;Chain of Thought&#xff09;6、強化學習算法&#xff08;GRPO&#xff09;7、冷啟動**1. 冷啟動的目的****2. 冷啟動的實現步驟****3. 冷啟動…

開源項目實戰學習之YOLO11:12.2 ultralytics-models-sam-decoders.py源碼分析

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 另外,前些天發現了一個巨牛的AI人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。感興趣的可以點擊相關跳轉鏈接。 點擊跳轉到網站。 ultralytics-models-sam 1.sam-modules-decoders.pyblocks.py: 定義模型中的各…

Raft 協議:分布式一致性算法的核心思想

引言 在分布式系統中&#xff0c;數據一致性是核心挑戰。Raft 協議作為一種易于理解的一致性算法&#xff0c;被廣泛應用于 etcd、Consul 等系統中。 一、Raft 核心概念 1.1 角色與任期&#xff08;Term&#xff09; ? 領導者&#xff08;Leader&#xff09;&#xff1a;處…

基于DWT的音頻水印算法

基于離散小波變換&#xff08;DWT&#xff09;的音頻水印算法是一種結合信號處理與信息隱藏的技術&#xff0c;旨在將版權信息或標識隱蔽地嵌入音頻信號中&#xff0c;同時保證不可感知性和魯棒性。以下是該算法的核心步驟及關鍵技術點&#xff1a; ?1. 算法基本原理? ?DWT…

低空經濟發展現狀與前景

低空經濟發展現狀與前景 一、低空經濟的定義與范疇 低空經濟是以民用有人駕駛和無人駕駛航空器為主體&#xff0c;以載人、載貨及其他作業等多場景低空飛行活動為牽引&#xff0c;輻射帶動商業活動或公共服務領域融合發展的一種綜合性新經濟形態。其涵蓋的低空空域通常為距離…

售前工作.工作流程和工具

第一部分 售前解決方案及技術建議書的制作 售前解決方案編寫的標準操作步驟SOP: 售前解決方案寫作方法_嗶哩嗶哩_bilibili 第二部分 投標過程關鍵活動--商務標技術方案 1. 按項目管理--售前銷售項目立項 銷售活動和銷售線索的跟蹤流程和工具 1&#xff09;拿到標書&#xff…

DeerFlow試用

github拉取代碼 配置.env和conf.yaml 注意設置大模型的url和模型名稱、api_key 先啟動根目錄下的server&#xff0c;端口如果有沖突直接在default變量賦值時修改&#xff1b; 再啟動前端&#xff0c;先build再run dev&#xff1b; 根據前端完成時的地址訪問界面&#xff1…

python + streamlink 下載 vimeo 短視頻

1. 起因&#xff0c; 目的: 看到一個視頻&#xff0c;很喜歡&#xff0c;想下載。https://player.vimeo.com/video/937787642 2. 先看效果 能下載。 3. 過程: 因為我自己沒頭緒。先看一下別人的例子&#xff0c; 問一下 ai 或是 google問了幾個來回&#xff0c;原來是流式…

JavaScript【6】事件

1.概述&#xff1a; 在 JavaScript 中&#xff0c;事件&#xff08;Event&#xff09;是瀏覽器或 DOM&#xff08;文檔對象模型&#xff09;與 JavaScript 代碼之間交互的一種機制。它代表了在瀏覽器環境中發生的特定行為或者動作&#xff0c;比如用戶點擊鼠標、敲擊鍵盤、頁面…

【Java ee初階】HTTP(2)

一、HTTP的方法 方法 說明 支持的HTTP協議版本 GET 獲取資源 1.0、1.1 POST 傳輸實體主體 1.0、1.1 PUT 傳輸文件 1.0、1.1 HEAD 獲得報文首部 1.0、1.1 DELETE 刪除文件 1.0、1.1 OPTIONS 詢問支持的方法 1.1 TRACE 追蹤路徑 1.1 CONNECT 要求用隧道…

文件名是 ?E:\20250512_191204.mp4, EV軟件錄屏,未保存直接關機損壞, 如何修復?

去github上下載untrunc 工具就能修復 https://github.com/anthwlock/untrunc/releases 如果訪問不了 本機的 hosts文件設置 140.82.112.3 github.com 199.232.69.194 github.global.ssl.fastly.net 就能訪問了 實在不行&#xff0c;從這里下載&#xff0c;傳上去了 https://do…

騰訊 CodeBuddy 殺入 AI 編程賽道,能否撼動海外工具霸主地位?

在 AI 編程助手領域&#xff0c;海外的 Cursor 等工具風頭正勁&#xff0c;如今騰訊帶著 CodeBuddy 隆重登場&#xff0c;國產 AI 編程助手能否借其之力崛起&#xff1f;讓我們一探究竟。 官網&#xff1a; 騰訊云代碼助手 CodeBuddy - AI 時代的智能編程伙伴 實戰安裝教程 …

PySide6 GUI 學習筆記——常用類及控件使用方法(常用類顏色常量QColorConstants)

文章目錄 一、概述二、顏色常量表標準 Qt 顏色SVG 顏色&#xff08;部分&#xff09; 三、Python 代碼示例四、代碼說明五、版本兼容性六、延伸閱讀 一、概述 QColorConstants 是 Qt for Python 提供的一個預定義顏色常量集合&#xff0c;包含標準Qt顏色和SVG規范顏色。這些常…

MATLAB 自然語言處理入門教程

文章目錄 前言環境配置一、MATLAB NLP 工具箱概述二、核心功能與 API1. 文本數據準備2. 特征提取3. 文本分類&#xff08;傳統機器學習&#xff09;4. 深度學習文本分類&#xff08;LSTM&#xff09; 三、實戰案例&#xff1a;情感分析四、高級應用1. 命名實體識別&#xff08;…

C++ deque雙端隊列、deque對象創建、deque賦值操作

在deque中&#xff0c;front()是頭部元素&#xff0c;back()指的是尾部元素。begin()是指向頭部的迭代器&#xff0c;end()是指向尾部的下一個元素的迭代器。 push_front 頭部進行插入 pop_front 尾部進行刪除 push_back 尾部進行插入 pop_back 尾部進行刪除 deque如果同時…