91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java數組正確的寫法是什么

發布時間:2022-04-25 16:34:28 來源:億速云 閱讀:245 作者:iii 欄目:編程語言

這篇“Java數組正確的寫法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java數組正確的寫法是什么”文章吧。

Java數組正確的寫法是什么

索引:命名規則、自動類型推斷、靜態動態初始化、多維數組的其他寫法、常見錯誤寫法、數組下標越界、默認值問題、數組長度問題、數組內存解析

正確寫法:

1.步驟分類:(以下int可以替換為char String double等等)
       ①一步寫法:

int [] ids = new int []{1001,1002,1003};// 聲明+初始化

int ids [] = new int []{1001,1002,1003}; // [ ]位置有兩種放法


int ids [] = {1001,1002,1003};//自動類型推斷,new int []可省


/**********錯誤示范***錯誤示范***錯誤示范***錯誤示范************/

int ids [] = new [] int{1001,1002,1003};//只有定義時的[]可以亂動

      自動類型推斷:僅在一步寫法中適用,可以省略=右邊的new int [ ]

        ②兩步寫法:

int ids [] ;   //聲明

ids = new int [ ] {1001,1002,1003} ;   //初始化

/**********錯誤示范***錯誤示范***錯誤示范***錯誤示范************/

int ids [];
ids [] = new int {1001,1002,1003};//分兩步時,左邊不加[]


int ids [];
ids = {1001,1002,1003};//分兩步時,沒有類型推斷

2.狀態分類:靜態動態必須二選一,給長度不加{},給{}不加長度

       ①靜態初始化:

兩個[ ]均為空
String [] name = new String [] {"張三","李四"} ;
//也可寫為String [] name = {"張三","李四"};

       ②動態初始化:

后面的[ ]必須帶數字規定長度,并且不能{}賦值

String [ ] name ;
name = new String [2] ;
//可以合為一步寫String name [] = new String [2];

/**********錯誤示范****錯誤示范****錯誤示范********/
int ids [3][4] = XXXXXXXXX;
int ids [3][ ] = XXXXXXXXX;
int ids [ ][4] = XXXXXXXXX;

多維數組

int arr1 [][] =XXXXXXXXXXX;
int [] arr2 []=XXXXXXXXXXX;
int [][] arr3 =XXXXXXXXXXX;
//都是正確寫法
Java主張 int [] arr = new int []{}; 寫法



//多維數組同理
int [] arr[][] =XXXXXXXX;
int [][] arr[] =XXXXXXXX;
隨便瞎基8放都是正確的
Java主張 int [][] arr = new int [][]{};寫法

不過我個人不習慣。。。
int arr0 [][] = {{1,2},{3,4},{5,6}};//正確:靜態、自動類型推斷
int arr1 [][] = new int [3][2];
int arr2 [][] = new int [3][ ];//正確:動態、可省列數[]
int arr3 [][][] = new int [3][ ][ ];//正確:動態、可省后兩個[]

默認值問題:動態[i][j]有默認值,靜態{}沒有默認值(末尾詳解)

int arr0 [][] = new int [2][2];//動態初始化,分配內存
//數組內的4個成員全部默認為0,編譯運行都不會報錯


int arr0 [][] = new int [][]{ {1,2},{3} };
//靜態初始化,編譯能通過,arr0[1][1]沒有默認值(未分配空間)
//編譯能通過,運行到arr[1][1]會報錯



int arr0[][] = new int [3][] ;
// 輸出arr0[3][0]  arr0[3][1]  arr0[3][2]  arr0[3][3].......
//都會報錯

報錯案例:Java數組正確的寫法是什么

數組下標越界:arr[1][1]在靜態初始化的時候沒有給值,所以沒有分配內存空間,編譯能通過,但是訪問的時候會報錯。該靜態初始化的數組范圍僅限于arr[0][0]  arr[0][1]  到arr[1][0]

深入內存理解:(末尾詳解)

String cod [][] = new String [3][ ];//只定義了行,列數未知
System.out.println(cod[1][1]);//未定義列,不給默認值。運行報錯

正確寫法:加一步 cod[1]=new String [2\3\4....];分配列內存,給定默認值null

Java數組正確的寫法是什么

常見錯誤寫法

① int [ ] arr1 = new int [ ] ;                       //靜態忘帶{}

② int [3] arr2 = new int [3] ;                      //前面[ ]必須空

③ int [ ] arr3 = new int [5] {1,2,3,4,5} ;     //動態不能帶{ }

數組一旦確定(聲明+初始化),長度就固定了,不能更改

數組的內存分配是連續的,系統要為數組分配一個固定的空間,如果100個空間以后被其他內容占用內存,那么數組就只能用到前99個空間,如果長度可以改變,那么arr[100]就會更改其他內容產生bug

一個例子說明數組長度問題:

二維數組遍歷,兩層for循環:

public class Test2 {
	public static void main(String args[]) {
	int arr[][] = { {1,2,3},{4,5,6,7},{8,9},{10}};
		
		for(int i = 0 ; i <arr.length ; i++){//arr.length
			for(int j = 0 ; j<arr[i].length ;j++){//arr[i].length
				System.out.println(arr[i][j]+"    ");
				}
                        System.out.println();		
}
		//System.out.println(arr[2][2]);報錯下標越界
                }
}

運行結果:

Java數組正確的寫法是什么

arr.length是第一維度長度

arr[i].length是第i行的第二維度長度

arr[i][j].length是第i行j列的第三維度的長度

數組內存解析:

以二維數組為例,分為內層和外層。形如arr[0] arr[1]的是外層,完整表達arr[1][2]的是內層

一、對于一個外層arr[1]來說,它就是一個一維數組,就會分為“初始化”和“未初始化”的兩種情況:

例1:

int arr1[][] = new int [3][];
System.out.println( arr1[1] );
//運行結果:null

此時只知道外層行數,但內層沒有初始化,沒有分配地址,故結果為null

int arr1[][] = new int [3][5];//任意給定列數
System.out.println(arr1[1]);
//運行結果:[I@15db9742

此時內層長度確定,初始化完成,arr1[1]指向一個首地址[I@15db9742

一個 [ 表示arr[1]的內層為一維數組,I是int的首字母,@后面是地址

例2:

String arr1[][] = new String [3][5];
System.out.println(arr1);
//運行結果:[[Ljava.lang.String;@15db9742

因為完整定義了String數組,故分配了空間,arr1指向arr1[0][0]的地址(整個數組的首地址)

兩個[[表示里面有二維數組,java.lang.String;是包名

例3:

float arr1[][] = new float  [3][5];
System.out.println(arr1[0]);
//結果:[F@15db9742

外層元素初始化值為:地址值

內層元素初始化值為:與一維數組初始化情況相同

一維數組初始化:

1.數組元素是整形int long short :  0

2.數組元素是浮點型float double : 0.0

3.數組元素是boolean型:false

4.數組元素是引用類型  : null

5.數組元素是char型 :0 或 '\u0000' 而非‘0’

數字0,而不是字符0,對應的ASCII碼不一樣

'\u0000'是Unicode碼第0000號位,是一個空格符,但是不是鍵盤上的空格

驗證如下:

Java數組正確的寫法是什么

經典例題:

Java數組正確的寫法是什么

解:b e可以,acdf都不行

Java數組正確的寫法是什么

以上就是關于“Java數組正確的寫法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎左旗| 边坝县| 泰宁县| 锡林浩特市| 开封市| 大悟县| 遂昌县| 突泉县| 绥江县| 东莞市| 朝阳县| 郁南县| 彩票| 吉安市| 永仁县| 乌海市| 洛阳市| 县级市| 邢台县| 阳谷县| 和平县| 正安县| 镇坪县| 仁怀市| 武鸣县| 周口市| 杭州市| 花莲市| 福海县| 玉树县| 福鼎市| 永登县| 洞口县| 海宁市| 江达县| 武夷山市| 湟源县| 鹤壁市| 绵阳市| 通道| 海门市|