【Java】数组的注意事项
1.要知道,數組也是一種類型。Java數組不是基本類型,而是引用類型。
int是基本類型,但int[] 就是引用類型了。
2.一個數組需指定類型,只能存放一種類型的元素。
如果我們在一個泛型類里面寫:
這會引發編譯錯誤(CE),因為T并不是可確定的類型。
我們應該這么寫:
這時會報黃色的Warning (起碼Eclipse有),可以用@SuppressWarning(“unchecked”)修飾方法,避免編譯警告,但是需要小心ClassCastException。
3.數組長度雖然可以動態確定,但是一旦定長,就不可改變。
畢竟,數組長度的獲取是用其length屬性獲取的,這個屬性是public的,但由于被final修飾,只能讀不能改。
不允許這樣寫(CE):
2.不允許這樣寫(CE):
int[] b = new int[3] {1, 2, 3};4.數組變量處存的不是數組元素,而是數組的引用。
舉個例子比較形象:
比如有c{1, 2, 3}和d{4, 5, 6, 7},假設數組變量內存區存數組本身,如果有c = d;語句,則c處空間是不夠的。這樣舉例子也許不是那么合適,但是數組變量處確實存的只是引用。
5.數組長度不可變,但是由于所謂的“賦值語句”本質上只是改變了數組變量存放的引用,所以表面上“數組長度可變”,然這是錯誤的。
6.int[] 是一維數組,int[][] 是二維數組,那么能否從int[]出發擴展到n維數組?
答案是no,因為Java是強類型語言,int[]中引用的是int類型,所以不能再指向int[],這在js里或許可以,但Java中不行。
7.操作數組的類在java.util包里,類名是Arrays,里面有很多static方法可供使用。
8.數組也可以用foreach循環來遍歷
9.由于數組是引用類型,所以不new一個對象,默認是null
10.多個相同類型、具有邏輯關系的對象(或基本類型)可以用數組存放。數組隨機存取,存取O(1),很方便,而且按索引尋址,很快。但是也是因為數組的“定長”,使得它顯得沒有集合框架使用方便,比如ArrayList。但是對于編寫數據結構,如順序表、順序棧等數組很方便;甚至矩陣的壓縮存儲也是用了一維數組,簡單的二維矩陣也可以用二維數組表示…用好數組也是Java的基本能力。
11.Java封裝了數組的底層實現,就好比基本類型。但還是要強調:Java數組不是基本類型!
總結
以上是生活随笔為你收集整理的【Java】数组的注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Spring框架实现数据库事务处理
- 下一篇: 【Java】基于栈的算术表达式求值