方法參數(shù)
按值調用:表示方法接收的是調用者提供的值蚜枢。
按引用調用:表示方法接收的是調用者提供的變量地址。
一個方法可以修改傳遞引用所對應的變量值针饥,而不能修改傳遞值調用所對應的變量值厂抽。
JAVA只采用按值傳遞調用。也就是說丁眼,方法得到的是參數(shù)值的一個拷貝筷凤。
2、方法參數(shù)的兩種
a苞七、基本數(shù)據(jù)類型(數(shù)字藐守、布爾值);
b蹂风、對象引用卢厂;對象構造對于java對象的構造:總的來說有6種方法,
第一種是有參數(shù)的構造函數(shù)惠啄,第二種是無參數(shù)的構造函數(shù)慎恒,第三種是重載構造函數(shù),第四種是調用其他構造器的構造函數(shù)撵渡,第五種是使用初始化塊融柬,第六種是使用顯式域初始化
(1)如果在構造器中沒有顯式的給域賦予初值,那么就會自動地賦為默認值:數(shù)值為0姥闭,布爾值為false丹鸿,對象引用為null2) 如果初始化塊使用的是static,則只執(zhí)行一次
(3)下面是java中調用構造器的具體處理步驟:
1.所有數(shù)據(jù)被初始化為默認值(0棚品,false靠欢,null)
2.按順序執(zhí)行域初始化語句和初始化塊
3.執(zhí)行構造器,如果構造器里面使用了其他構造器铜跑,則首先執(zhí)行里面的構造器门怪。(4)另外還有一個finalize方法用于銷毀對象,但是由于java的垃圾回收機制相當完善锅纺,因此這個方法并不常用
文檔注釋
在開始的/**之后掷空,第一行或幾行是關于類、變量和方法的主要描述.之后囤锉,你可以包含一個或多個何種各樣的@標簽坦弟。每一個@標簽必須在一個新行的開始或者在一行的開始緊跟星號(*).多個相同類型的標簽應該放成一組。例如官地,如果你有三個@see標簽酿傍,可以將它們一個接一個的放在一起。
Object
Obje類是所有Java類的祖先驱入。每個類都使用 Object 作為超類赤炒。所有對象(包括數(shù)組)都實現(xiàn)這個類的方法。在不明確給出超類的情況下亏较,sun定義的那么多類的終極父類是Object莺褒。Object描述的是所有類的通用屬性與方法。
1雪情、toString方法
toString() 返回對象的描述信息 java.lang.Object@15db9742 類名@哈希碼值的十六進制形式遵岩。
直接輸入一個對象的時候,會調用對象的toString方法巡通。
2尘执、equals方法
equals() 返回的是比較的結果 如果相等返回true,否則false扁达,比較的是對象的內存地址值正卧。
3、hashCode方法
hashCode() 返回該對象的哈希碼值: 采用操作系統(tǒng)底層實現(xiàn)的哈希算法跪解。 同一個對象的哈希碼值是唯一的炉旷。
java規(guī)定如果兩個對象equals返回true,那么這兩個對象的hashCode碼必須一致叉讥。
?泛型
1窘行、泛型的產生
雖然可以再類型轉換的時候通過if語句進行類型檢查(instanceof),但是效率較低.(例如吃飯的時候,還需要判斷米飯里有沒有沙子,吃飯效率低).可以通過給容器加限定的形式規(guī)定容器只能存儲一種類型的對象.就像給容器貼標簽說明該容器中只能存儲什么樣類型的對象。所以在jdk5.0后出現(xiàn)了泛型图仓。
2罐盔、泛型應用:
格式:集合類<類類型> 變量名 = new 集合類<類類型>();
通過<> 來指定容器中元素的類型.
什么時候使用泛型:當類中操作的引用數(shù)據(jù)類型不確定的時候,就可以使用泛型類.
細節(jié)一:聲明好泛型類型之后,集合中只能存放特定類型元素
細節(jié)二:泛型類型必須是引用類型
細節(jié)三: 使用泛型后取出元素不需要類型轉換.
3、泛型方法
函數(shù)上的泛型定義
細節(jié):
使用泛型方法前需要進行泛型聲明救崔,使用一對尖括號 <泛型>惶看,聲明的位置在static后返回值類型前捏顺。
當一個類中有多個函數(shù)聲明了泛型,那么該泛型的聲明可以聲明在類上纬黎。
4幅骄、泛型類
格式:修飾符 class 類名<泛型>{
}
注意:靜態(tài)方法不可以使用類中定義的泛型
因為類中的泛型需要在對象初始化時指定具體的類型,而靜態(tài)優(yōu)先于對象存在本今。那么類中的靜態(tài)方法就需要單獨進行泛型聲明拆座,聲明泛型一定要寫在static后,返回值類型之前.
泛型類細節(jié):
1冠息、創(chuàng)建對象的時候要指定泛型的具體類型
2挪凑、創(chuàng)建對象時可以不指定泛型的具體類型(和創(chuàng)建集合對象一眼)。默認是Object逛艰,例如我們使用集合存儲元素的時候沒有使用泛型就是那么參數(shù)的類型就是Object
3躏碳、類上面聲明的泛型只能應用于非靜態(tài)成員函數(shù),如果靜態(tài)函數(shù)需要使用泛型瓮孙,那么
需要在函數(shù)上獨立聲明唐断。
4、如果建立對象后指定了泛型的具體類型杭抠,那么該對象操作方法時脸甘,這些方法只能操作一種數(shù)據(jù)類型。
5偏灿、所以既可以在類上的泛型聲明丹诀,也可以在同時在該類的方法中聲明泛型。