1. 程式人生 > >方法與陣列

方法與陣列

方法

        方法就是完成特定功能的程式碼塊;在很多語言裡面都有函式的定義,函式在Java中被稱為方法

        格式: 修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2…) throw 異常{

                                函式體;

                               return 返回值;

                             }

詳解

修飾符: 比如public、protected、預設、private、static、abstract

返回值型別: 基本資料型別、引用資料型別、void等

方法名: 符合命名規則的識別符號,駝峰命名

引數: 實際引數與形式引數;實際引數:就是實際參與運算的;形式引數: 就是定義在方法上的,用於接收實際引數

引數型別: 基本資料型別、引用資料型別

引數名: 變數名

函式體: 也叫方法體,完成功能的程式碼

return: 結束當前方法

返回值: 返回給呼叫者的結果

//第一步 程式從main方法開始執行
public static void main(String[] args) {
    // 第二步 定義兩個int型別的變數
    int first = 10;
    int second = 20;
    // 第三步 呼叫方法
    int subValue = sub(first, second);
    // 第七步 輸出方法返回的結果
    System.out.println(subValue);
}

// 第四步 把實參傳遞給形參
public static int sub(int one, int two) {
    // 第五步 計算結果
    // 第六步 返回結果
    return one - two;
}

方法注意事項

        方法不呼叫不執行

        方法與方法是平級關係,不能巢狀定義

        方法定義的時候引數之間用逗號隔開

        方法呼叫的時候不用在傳遞資料型別

        如果方法有明確的返回值,一定要有return返回值

方法過載

        在一個類中,允許存在一個以上的同名方法,只要它們的引數個數或者型別不同

        特點: 與返回值無關,只看方法名和引數列表

                   在呼叫時,虛擬機器通過引數列表的不同來區分同名方法

陣列

        陣列是儲存同一種資料型別多個元素的集合(容器);陣列可以儲存基本資料型別,也可以儲存引用資料型別

        格式

                 資料型別[] 陣列名;或者 資料型別 陣列名[];

陣列的初始化

        Java中的陣列必須先初始化,然後才能使用

        為陣列中的陣列元素分配記憶體空間,併為每個陣列元素賦值

初始化方式

        動態初始化 初始化時只指定陣列長度,自動分配初始值

        格式:資料型別[] 陣列名 = new 資料型別[陣列長度]

        例如: String[] strs = new String[10];定義了一個String型別的陣列,這個陣列中可以存放3個String型別的值

        靜態初始化 初始化時指定陣列元素的初始值,由系統決定陣列長度

       靜態初始化

        初始化時指定每個陣列元素的初始值,自動分配長度

        格式 陣列型別[] 陣列名 = new 資料型別[]{元素1,元素2,元素3,…}

        例如: String[] strs = new String[]{“a”, “b”, “c”, “d”}或者String[] strs ={“a”, “b”, “c”, “d”}            定義了一個string型別的陣列,這個陣列中可以存放4個String型別的值

陣列常見的丟擲異常

        陣列索引越界 ArrayIndexOutOfBoundsException 訪問到陣列不存的索引時

        空指標異常    NullPointerException 陣列引用沒有指向實體,卻在操作實體中的元素時

Java中的記憶體分配

        棧 儲存區域性變數(定義在方法中或者方法宣告上的變數)

        堆 儲存new出來的東西

        方法區

        本地方法區 和系統相關

        暫存器 CPU使用

堆記憶體的特點:

        1 每一個new出來的東西都有地址值

        2 每個變數都有預設值 byte、short、int、long ---0;float、double---0.0;char---‘\u0000’;boolean---false; 引用型別---null

        3 使用完後就變成了垃圾,沒有立即回收,會在垃圾回收器空閒的時候回收

// 逆序
public static void main(String[] args) {
    int[] arr = {12, 13,14,15,16};
   arrToString(arr);
   reverse(arr);
   arrToString(arr);
}

public static void arrToString(int[] arrs) {
   String print = "{";
    for (int i = 0; i < arrs.length ; i++) {
        if (arrs.length - 1 == i) {
            print += arrs[i] + "}";
            System.out.println(print);
            return;
        }
        print += arrs[i] + ",";
    }
}
public static void reverse(int[] arrS){
    for (int i = 0; i < arrS.length / 2; i++) {
        int temp = arrS[i];
        arrS[i] = arrS[arrS.length - 1 - i];
        arrS[arrS.length - 1 - i] = temp;