class NeiCun
{
public static void change(int[] arr){
arr[0]=arr[0]+10;
}
public static void change(int i){
i=i+10;
}
public static void main(String[] args)
/*
int[] arr={5};
change(arr);
System.out.println(arr[0]);//15
int[] arr={5};
change(arr[0]);//change(int i)
System.out.println(arr[0]);//5
int i=5;
change(i);//change(int i)
System.out.println(i);//5
*/
}
}
《第四天總結》 張倫琦
《函數和數組》
1. 函數
1.1方法定義
A.函數的來源
給我打印5*5矩形
再給我打印6*6矩形
再給我打印7*7矩形
存在大量的重複代碼。怎麼能讓代碼不重複呢?
寫一次,能夠多次使用。代碼重用(reuseable)
爲了解決代碼重複的問題。
我的代碼爲啥能執行?因爲代碼在main方法中。
既然Java有一個方法叫main,那麼我能有一個方法嗎?
public static void print( )
public static 修飾符 ;
void 返回值類型 ;
print 函數名
B.函數的定義
函數就是定義在類中的具有特定功能的一段獨立小程序。
函數也稱爲方法。
public static void print( int row ,int col )
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,…)
{
執行語句;
//return 返回值;
}
返回值類型:函數運行後的結果的數據類型。
參數類型:是形式參數的數據類型。八種基本數據類型
形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。
實際參數:傳遞給形式參數的具體數值。
return:1.用於結束函數。把結果給調用者。如是void那麼return可以省略.不是void return不能省略。
返回值:該函數運算的結果,結果的數據類型。該結果會返回給調用者。
1.2方法特點
A.函數的特點(重點,理解其中的意思)
a.定義函數可以將功能代碼進行封裝
b.便於對該功能進行復用
c.函數只有被調用纔會被執行
d.函數的出現提高了代碼的複用性
e.對於函數沒有具體返回值的情況
f.函數中只能調用函數,不可以在函數內部定義函數。
g.定義函數時,函數的結果應該返回給調用者,交由調用者處理。
B.return的作用:
1.結束方法
2.返回方法執行的結果
3.如果是void可以省略不寫
4.如果寫可以寫一個也可以寫多個
5.後面不能直接跟語句
C.返回值類型:
告訴方法的使用者,放執行完成後結果的數據類型
void:說明方法執行完成後沒有結果
1.3方法應用
A.明確返回值類型:輸出
B.明確參數列表:輸入
C.至於代碼,可以寫的很垃圾,也可以寫的很高效
D.一定要了解方法和方法的參數在棧中的存放特點!
1.main()方法在棧的最底層。
2.在方法調用完成的同時如果有返回值則返回給調用者並清除自身空間。
1.4方法的重載
A.在同一個類中
B.方法名稱相同
C.參數列表不同(參數的個數不同,參數的類型不同,參數類型的順序不同,其中形參名稱不考慮)
D.返回值類型也不考慮
說簡單一點就是,重載的函數要能夠通過調用被計算機明確的識別出來,
識別不出來的就不行。
2. 數組
2.1數組定義(一、二兩種格式)
A.數組的定義
1.同一種類型數據的集合。其實數組就是一個容器。
2.變量能存數據,但是變量太多,用起來不方便,我要搞一個東西能存一堆變量。
3.數組是連續的有標號的一片內存空間
4.標號從0開始,到length-1
5.數組有長度,長度是幾個空就幾個長度
B.創建數組的兩種格式
格式一:
元素類型[] 數組名 = new 元素類型[元素個數或數組長度];
示例:int[] arr = new int[5];
1.數組長度不能是負數
2.數組使用以前不能是null
3.數組使用時不要下標越界
格式二:
元素類型[] 數組名 = new 元素類型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
注意:
[]arr 和 arr[] 都可以!
2.2數組的內存
A.數組在內存中的存放
方法在內存中存放在“棧”中,
數組在內存中存放在“堆”中,
方法通過指針調用在堆中的數組。
B.Java中的內存分配
1.棧 : 方法在運行的時候會進棧,方法中定義的變量會隨着進棧。
隨着方法的出棧而出棧。
2.堆: 數組在內存中存放在“堆”中,
方法通過指針調用在堆中的數組。
3.方法區:方法沒有運行的時候。暫時不需要管
4.寄存器:是CPU相關,給我們關係不大。沒法控制。不需要你管
5.本地方法區:是和本地平臺,本地操作系統相關的方法。不需要你管
C.實例講解:
int[] arr是數組的引用在棧裏,{12,13,14,15,18}是數組的實體在堆裏
Java的垃圾回收機制負責回收對內存中的垃圾。
int[] arr={12,13,14,15,18};