1. 程式人生 > 實用技巧 >Java---(二)陣列與方法

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.陣列傳遞實際上傳遞的是堆記憶體的使用權.一個數組可以有多個名稱指向同一個堆記憶體.每個名稱都可以改變堆記憶體中的內容