---------------------- android培訓、java培訓、期待與您交流! ----------------------
轉義字符:通過\來轉變後面字母或者符號的含義。
\n:換行符。只轉變它後面的字符。
\b:退格;
\r:按下回車鍵;windows系統中,回車符由兩個字符來表示\r\n
\t;製表符。相當於tab鍵。
1、函數的定義
函數就是定義在類中的具有特定功能的一段獨立小程序。
函數也稱爲方法。
函數的格式:
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,...)
{
執行語句;
return 返回值;
}
返回值類型:函數運行後的結果的數據類型。
參數類型:是形式參數的數據類型。
形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。
實際參數:傳遞給形式參數的具體數值。
return:用於結束函數。return語句只有在文檔末時可以省略
返回值:該函數運算後的結果,該結果會返回給調用者。
public static void getResult(int num) { System.out.println(num*3 + 5); return;//沒有具體的值,可以省略 } //當函數運行後,沒有具體的返回值時,這時返回值類型用一個特殊的關鍵字來標識。 //該關鍵字就是void。void代表的是函數沒有具體返回值的情況。 //當函數的返回值類型是void時,函數中的return語句可以省略不寫。 函數中可以調用函數,不能在函數中定義函數。保證在類中即可。 |
2、函數的特點:
定義函數可以將功能代碼進行封裝
便於對該功能進行復用
函數只有被調用纔會被執行
函數的出現提高了代碼的複用性
對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那麼該函數中的return語句如果在最後一行可以省略不寫。
class FunctionDemo { public static void main(String[] args) { int x = getResult(4); //System.out.println(x*3+6); int y = getResult(10000000); System.out.println("x="+x); System.out.println("y="+y); }} //發現以上的運算,因爲獲取不同數據的運算結果,代碼出現了重複。 //爲了提高代碼的複用性,對代碼進行抽取。 //將這個部分定義成一個獨立的功能,方便於日後使用。 //Java中對功能的定義是通過函數的形式來體現的, public static int getResult(int x) { return x*3+6; } |
3、函數的應用-----主函數的功能就是調用編寫的函數
l 兩個明確 • 明確要定義的功能最後的結果是什麼?(返回值類型) • 明確在定義該功能的過程中,是否需要未知內容參與運算(參數列表:參數類型及個數) l 示例: • 需求:定義一個功能,可以實現兩個整數的加法運算。 • 分析: • 該功能的運算結果是什麼?兩個數的和,也是一個整數(int) • 在實現該功能的過程中是否有未知內容參與運算?加數和被加數是不確定的。(兩個參數int,int) • 代碼: int getSum(int x,int y) { return x+y; } |
4、函數的重載(overload)
重載的概念:
在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。
重載的特點:
與返回值類型無關,只看參數列表。
(重載示例)
//返回兩個整數的和 int add(int x,int y){return x+y;} //返回三個整數的和 int add(int x,int y,int z){return x+y+z;} //返回兩個小數的和 double add(double x,double y){return x+y;} 什麼時候用重載? 當定義的功能相同,但參與運算的未知內容不同, 那麼,這時就定義一個函數名稱以表示其功能,方便閱讀,而通過參數列表來區分多個同名函數。 |
5、數組
數組的概念:
同一種類型數據的集合。其實數組就是一個容器。可以自動給數組中的元素從0開始編號,方便操作這些元素。
格式:
格式1、元素類型[ ] 數組名 = new 元素類型[元素個數或數組長度]; 示例:int[ ] arr = new int[5]; new用來在內存中開闢一個容器實體。 格式2、元素類型[ ] 數組名 = new 元素類型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7}; |
內存結構
Java程序在運行時,需要在內存中的分配空間。爲了提高運算效率,有對空間進行了不同區域的劃分,因爲每一片區域都有特定的處理數據方式和內存管理方式。
->棧內存:用於存儲局部變量,當數據使用完,所佔空間會自動釋放。
->堆內存:
l 數組和對象,通過new建立的實例都存放在堆內存中。
l 每一個實體都有內存地址值
l 堆內存中實體的變量都有默認初始化值
int 0;double 0.0;float 0.0f;boolean flase ;
l 實體不再被使用,會在不確定的時間內被垃圾回收器回收
->方法區,本地方法區,寄存器
int[ ] arr = new int[4];
0x0012
棧內存 |
|
堆內存 |
new int[4] |
arr 0x0012 |
arr[0] |
||
arr[1] |
|||
|
arr[2] |
||
arr[3] |
|||
|
垃圾回收機制:不定時的清除不再使用的實體
1、內存地址值
2、默認初始化值
3、垃圾回收機制
---------------------- android培訓、java培訓、期待與您交流! ----------------------
詳細請查看:http://edu.csdn.net/heima