今天是我在樂字節學習的第五天,通過這五天的學習,收貨了很多,第一天學習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; }