摘要:方法參數(shù)方法得到的都是所有參數(shù)值的拷貝,方法不能修改傳遞給它的任何參數(shù)變量的內(nèi)容。很容易得知,一個(gè)方法不可能改變一個(gè)基本數(shù)據(jù)類(lèi)型的參數(shù),下面討論參數(shù)的對(duì)象的情況。方法結(jié)束之后,不再使用。但是執(zhí)行完該方法后,和所引用的對(duì)象并沒(méi)有改變。
方法參數(shù)
方法得到的都是所有參數(shù)值的拷貝,方法不能修改傳遞給它的任何參數(shù)變量的內(nèi)容。
參數(shù)共有兩種類(lèi)型:
基本數(shù)據(jù)類(lèi)型
對(duì)象引用
除了基本數(shù)據(jù)類(lèi)型的都是對(duì)象引用,包括數(shù)組等等。
很容易得知,一個(gè)方法不可能改變一個(gè)基本數(shù)據(jù)類(lèi)型的參數(shù),下面討論參數(shù)的對(duì)象的情況。
下面這個(gè)方法可以將一個(gè)雇員的薪金提高兩倍
public static void tripleSalary(Employee x) { x.raiseSalary(200); }
當(dāng)調(diào)用
harry = new Employee(...); tripleSalary(harry);
時(shí),執(zhí)行過(guò)程如下:
x被初始化為harry值的拷貝,x是對(duì)象的引用。x和harry同時(shí)指向相同的對(duì)象。
raiseSalary方法應(yīng)用于這個(gè)對(duì)象引用。x和harry同時(shí)引用的那個(gè)Employee對(duì)象的薪金提高了200%。
方法結(jié)束之后,x不再使用。harry繼續(xù)引用那個(gè)增長(zhǎng)了薪金的對(duì)象
Java中都是值傳遞,而不是引用傳遞下面這個(gè)方法用來(lái)交換兩個(gè)雇員對(duì)象(其實(shí)做不到):
public static void swap(Employee x, Emploee y)//doesn"t work { Employee temp = x; x = y; y = temp; }
如果Java對(duì)對(duì)象采用的是按引用(地址)調(diào)用那么這個(gè)方法可以實(shí)現(xiàn)兩個(gè)對(duì)象交換數(shù)據(jù)的效果。
Employee a = new Employee("Alice",...); Employee b = new Employee("Bob",...); swap(a,b);
但是執(zhí)行完該方法后,a和b所引用的對(duì)象并沒(méi)有改變。x和y在方法執(zhí)行過(guò)程中所引用的對(duì)象改變了,但是a和b引用的對(duì)象并沒(méi)有改變,因?yàn)閤和y只是“復(fù)制品”。
這個(gè)過(guò)程說(shuō)明,對(duì)象引用也是按值傳遞的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75172.html
摘要:然而中的泛型使用了類(lèi)型擦除,所以只是偽泛型??偨Y(jié)本文介紹了泛型的使用,以及類(lèi)型擦除相關(guān)的問(wèn)題。一般情況下泛型的使用比較簡(jiǎn)單,但是某些情況下,尤其是自己編寫(xiě)使用泛型的類(lèi)或者方法時(shí)要注意類(lèi)型擦除的問(wèn)題。 簡(jiǎn)介 Java 在 1.5 引入了泛型機(jī)制,泛型本質(zhì)是參數(shù)化類(lèi)型,也就是說(shuō)變量的類(lèi)型是一個(gè)參數(shù),在使用時(shí)再指定為具體類(lèi)型。泛型可以用于類(lèi)、接口、方法,通過(guò)使用泛型可以使代碼更簡(jiǎn)單、安全。然...
摘要:系列文章請(qǐng)查看超詳細(xì)的面試題總結(jié)一之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)二之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)三之集合篇常見(jiàn)問(wèn)題下面的都是自己之前在學(xué)習(xí)的時(shí)候總結(jié)的,對(duì)于鞏固的基礎(chǔ)知識(shí)應(yīng)該有很大幫助。注意多線(xiàn)程的并發(fā)的讀寫(xiě)類(lèi)屬性會(huì)導(dǎo)致數(shù)據(jù)不同步。 系列文章請(qǐng)查看: 超詳細(xì)的Java面試題總結(jié)(一)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(二)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(...
摘要:最近在備戰(zhàn)面試的過(guò)程中,整理一下面試題。成員變量如果沒(méi)有被賦初值,則會(huì)自動(dòng)以類(lèi)型的默認(rèn)值而賦值一種情況例外被修飾但沒(méi)有被修飾的成員變量必須顯示地賦值而局部變量則不會(huì)自動(dòng)賦值。 最近在備戰(zhàn)面試的過(guò)程中,整理一下面試題。大多數(shù)題目都是自己手敲的,網(wǎng)上也有很多這樣的總結(jié)。自己感覺(jué)總是很亂,所以花了很久把自己覺(jué)得重要的東西總結(jié)了一下。 面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別 面向過(guò)程: 優(yōu)點(diǎn):性能比面...
摘要:知識(shí)點(diǎn)總結(jié)面向?qū)ο笾R(shí)點(diǎn)總結(jié)面向?qū)ο竺嫦驅(qū)ο蟾拍钍窍鄬?duì)于面向過(guò)程而言,過(guò)程其實(shí)就是函數(shù),對(duì)象是將函數(shù)和屬性進(jìn)行了封裝。指向了該對(duì)象關(guān)鍵字代表對(duì)象。靜態(tài)變量所屬于類(lèi),所以也稱(chēng)為類(lèi)變量成員變量存在于堆內(nèi)存中。 Java知識(shí)點(diǎn)總結(jié)(面向?qū)ο螅?@(Java知識(shí)點(diǎn)總結(jié))[Java, Java面向?qū)ο骫 [toc] 面向?qū)ο蟾拍?是相對(duì)于面向過(guò)程而言,過(guò)程其實(shí)就是函數(shù),對(duì)象是將函數(shù)和屬性進(jìn)行了封...
摘要:知識(shí)點(diǎn)總結(jié)泛型知識(shí)點(diǎn)總結(jié)泛型泛型泛型就是參數(shù)化類(lèi)型適用于多種數(shù)據(jù)類(lèi)型執(zhí)行相同的代碼泛型中的類(lèi)型在使用時(shí)指定泛型歸根到底就是模版優(yōu)點(diǎn)使用泛型時(shí),在實(shí)際使用之前類(lèi)型就已經(jīng)確定了,不需要強(qiáng)制類(lèi)型轉(zhuǎn)換。 Java知識(shí)點(diǎn)總結(jié)(Java泛型) @(Java知識(shí)點(diǎn)總結(jié))[Java, Java泛型] [toc] 泛型 泛型就是參數(shù)化類(lèi)型 適用于多種數(shù)據(jù)類(lèi)型執(zhí)行相同的代碼 泛型中的類(lèi)型在使用時(shí)指定 泛...
閱讀 1250·2021-11-16 11:45
閱讀 3273·2021-10-13 09:40
閱讀 864·2019-08-26 13:45
閱讀 1353·2019-08-26 13:32
閱讀 2314·2019-08-26 13:23
閱讀 1061·2019-08-26 12:16
閱讀 2951·2019-08-26 11:37
閱讀 1884·2019-08-26 10:32