我在樂字節學習的第五天(Java)

今天是我在樂字節學習的第五天,通過這五天的學習,收貨了很多,第一天學習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)方法重載
        針對:方法功能相同,參數列表不一樣,爲了見名知意,java容許它們起同樣的名字。
        在同一個類中,方法名相同,參數列表不一樣。與返回值無關。

        參數列表不一樣:
            參數的個數不一樣。
            參數的對應的數據類型不一樣。
    (8)方法重載案例
        不一樣的類型的多個同名方法的比較。
                2:數組(掌握)
    (1)數組:存儲同一種數據類型的多個元素的容器。
    (2)特色:每個元素都有編號,從0開始,最大編號是長度-1。
             編號的專業叫法:索引
    (3)定義格式
        A:數據類型[] 數組名;
            int[] a;
        B:數據類型 數組名[];
            int a[];

        推薦是用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:三個數組(兩個棧變量指向同一個堆內存)
        數組操做的兩個常見小問題:
        ArrayIndexOutOfBoundsException:數組索引越界異常
            緣由:你訪問了不存在的索引。        
        NullPointerException:空指針異常
            緣由:數組已經不在指向堆內存了。而你還用數組名去訪問元素。        
    (7)數組的常見操做
    arr.length
    int[] arr
        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;
                }
相關文章
相關標籤/搜索