Java---(二)陣列與方法
一:一維陣列的宣告與記憶體分配
資料型別 陣列名稱[] = null; //宣告陣列,分配棧記憶體(用於指向實際地址)
陣列名稱 = new 資料型別[長度] //分配記憶體給陣列 分配堆記憶體
注意:陣列變數名所儲存的不是陣列實體,而是陣列堆記憶體的參考地址.
二:二維陣列
二維陣列 int arr[][] = new int[10][9];i
可以通過arr.length獲取arr陣列的行數
arr[0].length 獲取arr陣列的列數
注意:java中的二維陣列可以不是矩陣,即每一行需要用arr[i].length來取得當前行的列數.
三:方法的宣告及使用
1.方法的定義格式
public (static) 返回值型別 方法名稱(型別 引數1,型別 引數2......){
//統稱為方法主體
程式語句
return 表示式;
}
同類中由主方法呼叫的方法需要有public static修飾,或者在主函式中new 一個當前類來呼叫函式
方法中定義的變數都是區域性變數,離開方法後消失.
2.方法的過載,在同一個類中定義同名函式但引數型別或者個數不同,即為方法的過載.
常見的輸出函式 System.out.println(); 也是方法的過載
注意:過載的方法可以返回值不相同,但許可權必須相同.
3.所有引用資料型別傳入方法中進行都修改都會改變其本身
陣列就是一種引用資料型別
4.引用資料傳入方法中,實際上就是將它的堆記憶體空間交給了方法.即兩個棧記憶體指向同一個堆記憶體.
5.陣列排序
java類庫中自帶有陣列排序
需要引入java.util包 通過Arrays.sort(陣列);呼叫 預設的排序方式是升序
6.陣列複製
java中也有類庫支援陣列複製
直接呼叫 System.arraycopy(源組名,源組起點,目標組名,目標開始起點,長度);
7.可變引數
public static void fun(int...arg){ for (int i = 0; i <arg.length ; i++) { System.out.println(arg[i]); } }
8.foreach輸出
public static void fun(int ...arg){ for (int x:arg ) { System.out.println(x); } }
9.陣列傳遞實際上傳遞的是堆記憶體的使用權.一個數組可以有多個名稱指向同一個堆記憶體.每個名稱都可以改變堆記憶體中的內容