1. 程式人生 > >java初識第五天

java初識第五天

1:方法(掌握)
    (1)方法:就是完成特定功能的程式碼塊。
        注意:在很多語言裡面有函式的定義,而在Java中,函式被稱為方法。
    (2)格式:
        修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2...) {
            方法體語句;
            return 返回值;
        }

        修飾符:目前就用 public static。後面再詳細講解其他修飾符
        返回值型別:就是功能結果的資料型別
        方法名:就是起了一個名字,方便我們呼叫該方法。
        引數型別:就是引數的資料型別
        引數名:就是變數
        引數分類:
            實參:實際參與運算的資料
            形參:方法上定義的,用於接收實際引數的變數
        方法體語句:就是完成功能的程式碼塊
        return:結束方法
        返回值:就是功能的結果,由return帶給呼叫者。
    (3)兩個明確:
        返回值型別:結果的資料型別
        引數列表:引數的個數及對應的資料型別
    (4)方法呼叫
        A:有明確返回值的方法
            a:單獨呼叫,沒有意義
            b:輸出呼叫,不是很好,因為我可能需要不結果進行進一步的操作。但是講課一般我就用了。
            c:賦值呼叫,推薦方案
        B:void型別修飾的方法
            a:單獨呼叫
    (5)案例:
        A:求和方案
        B:獲取兩個數中的較大值
        C:比較兩個資料是否相同
        D:獲取三個數中的最大值
        E:輸出m行n列的星形
        F:輸出nn乘法表
    (6)方法的注意事項
        A:方法不呼叫不執行
        B:方法之間是平級關係,不能巢狀定義
        C:方法定義的時候,引數是用,隔開的
        D:方法在呼叫的時候,不用在傳遞資料型別
        E:如果方法有明確的返回值型別,就必須有return語句返回。
    (7)方法過載
        在同一個類中,方法名相同,引數列表不同。與返回值無關。
        
        引數列表不同:
            引數的個數不同。
            引數的對應的資料型別不同。
    (8)方法過載案例
        不同的型別的多個同名方法的比較。
        
2:陣列(掌握)
    (1)陣列:儲存同一種資料型別的多個元素的容器。
    (2)特點:每一個元素都有編號,從0開始,最大編號是長度-1。
             編號的專業叫法:索引
    (3)定義格式
        A:資料型別[] 陣列名;
        B:資料型別 陣列名[];
        
        推薦是用A方式,B方法就忘了吧。
        但是要能看懂
    (4)陣列的初始化
        A:動態初始化
            只給長度,系統給出預設值
            
            舉例:int[] arr = new int[3];
        B:靜態初始化
            給出值,系統決定長度
            
            舉例:int[] arr = new int[]{1,2,3};
            簡化版:int[] arr = {1,2,3};
    (5)Java的記憶體分配
        A:棧 儲存區域性變數
        B:堆 儲存所有new出來的
        C:方法區(面向物件部分詳細講解)
        D:本地方法區(系統相關)
        E:暫存器(CPU使用)
        
        注意:
            a:區域性變數 在方法定義中或者方法宣告上定義的變數。
            b:棧記憶體和堆記憶體的區別
                棧:資料使用完畢,就消失。
                堆:每一個new出來的東西都有地址
                    每一個變數都有預設值
                        byte,short,int,long 0
                        float,double 0.0
                        char '\u0000'
                        boolean false
                        引用型別 null
                    資料使用完畢後,在垃圾回收器空閒的時候回收。
    (6)陣列記憶體圖
        A:一個數組
        B:二個數組
        C:三個陣列(兩個棧變數指向同一個堆記憶體)
    (7)陣列的常見操作
        A:遍歷
            方式1:
                public static void printArray(int[] arr) {
                    for(int x=0; x<arr.length; x++) {
                        System.out.println(arr[x]);
                    }
                }
                
            方式2:
                public static void printArray(int[] arr) {
                    System.out.print("[");
                    for(int x=0; x<arr.length; x++) {
                        if(x == arr.length-1) {
                            System.out.println(arr[x]+"]");
                        }else {
                            System.out.println(arr[x]+", ");
                        }
                    }
                }
        B:最值
            最大值:
                public static int getMax(int[] arr) {
                    int max = arr[0];
                    
                    for(int x=1; x<arr.length; x++) {
                        if(arr[x] > max) {
                            max = arr[x];
                        }
                    }
                    
                    return max;
                }
                
            最小值:
                public static int getMin(int[] arr) {
                    int min = arr[0];
                    
                    for(int x=1; x<arr.length; x++) {
                        if(arr[x] < min) {
                            min = arr[x];
                        }
                    }
                    
                    return min;
                }
        C:逆序
            方式1:
                public static void reverse(int[] arr) {
                    for(int x=0; x<arr.length/2; x++) {
                        int temp = arr[x];
                        arr[x] = arr[arr.length-1-x];
                        arr[arr.length-1-x] = temp;
                    }
                }
                
            方式2:
                public static void reverse(int[] arr) {
                    for(int start=0,end=arr.length-1; start<=end; start++,end--) {
                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                    }
                }
        D:查表
                public static String getString(String[] strArray,int index) {
                    return strArray[index];
                }
        E:基本查詢
            方式1:
                public static int getIndex(int[] arr,int value) {
                    for(int x=0; x<arr.length; x++) {
                        if(arr[x] == value) {
                            return x;
                        }
                    }
                    
                    return -1;
                }
                
            方式2:
                public static int getIndex(int[] arr,int value) {
                    int index = -1;
                
                    for(int x=0; x<arr.length; x++) {
                        if(arr[x] == value) {
                            index = x;
                            break;
                        }
                    }
                    
                    return index;
                }