方法就是完成特定功能的代碼塊;在不少語言裏面都有函數的定義,函數在Java中被稱爲方法數組
格式: 修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2…) throw 異常{函數
函數體;spa
return 返回值;指針
}索引
修飾符: 好比public、protected、默認、private、static、abstract內存
返回值類型: 基本數據類型、引用數據類型、void等虛擬機
方法名: 符合命名規則的標識符,駝峯命名string
參數: 實際參數與形式參數;實際參數:就是實際參與運算的;形式參數: 就是定義在方法上的,用於接收實際參數io
參數類型: 基本數據類型、引用數據類型容器
參數名: 變量名
函數體: 也叫方法體,完成功能的代碼
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類型的數組,這個數組中能夠存放10個String類型的值
靜態初始化 初始化時指定數組元素的初始值,由系統決定數組長度
初始化時指定每一個數組元素的初始值,自動分配長度
格式 數組類型[] 數組名 = new 數據類型[]{元素1,元素2,元素3,…}
例如: String[] strs = new String[]{「a」, 「b」, 「c」, 「d」}或者String[] strs ={「a」, 「b」, 「c」, 「d」} 定義了一個string類型的數組,這個數組中能夠存放4個String類型的值
數組索引越界 ArrayIndexOutOfBoundsException 訪問到數組不存的索引時
空指針異常 NullPointerException 數組引用沒有指向實體,卻在操做實體中的元素時
棧 存儲局部變量(定義在方法中或者方法聲明上的變量)
堆 存儲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; } }