五月天堂网_免费看影片_1024手机看毛片_亚洲综合四区_男人的天堂影院_在线亚洲自拍

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > Java開(kāi)發(fā)過(guò)程中的傳參問(wèn)題

Java開(kāi)發(fā)過(guò)程中的傳參問(wèn)題

2017-06-19 17:23:57 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

Java是當(dāng)今互聯(lián)網(wǎng)行業(yè)中的熱門(mén)開(kāi)發(fā)語(yǔ)言,在java中,由于沒(méi)有指針類(lèi)型,其傳參的方式也發(fā)生了相應(yīng)的變化。中培偉業(yè)《企業(yè)級(jí)Java開(kāi)發(fā)最佳實(shí)踐》培訓(xùn)專(zhuān)家李老師指出,java中傳參方式應(yīng)該主要有兩種:傳值和傳引用

一、傳值

所謂的傳值,是指?jìng)鬟fjava原變量的一個(gè)副本。char,int,double等基本數(shù)據(jù)類(lèi)型的變量向函數(shù)傳遞的參數(shù),都是變量的副本都屬于傳值。函數(shù)內(nèi)部不論進(jìn)行任何操作,都不影響變量本身,受到影響的只是變量的副本。

二、傳引用

李老師指出,java中的對(duì)象類(lèi)型從表面上來(lái)看是傳遞的引用,而不是傳遞的值。然而,java中對(duì)象作為實(shí)參,傳遞的實(shí)際上還是值,即java中的傳參傳遞的都是值!為什么會(huì)這么說(shuō)?李老師在這里從jvm的構(gòu)成的角度來(lái)解釋了自己對(duì)這個(gè)問(wèn)題的理解。他在這里介紹了JVM的結(jié)構(gòu):

  三、JVM的結(jié)構(gòu)及相應(yīng)的解釋

Jvm在實(shí)現(xiàn)的時(shí)候?qū)儆谒膬?nèi)存分為五部分,其中程序代碼(嚴(yán)格的說(shuō)應(yīng)當(dāng)是字節(jié)碼)和基本的數(shù)據(jù)類(lèi)型是放在java棧的棧幀中,而對(duì)象是從堆中分配的,堆這個(gè)東西我認(rèn)為可以理解成“對(duì)象池”。程序和程序中需要用到的對(duì)象放在兩個(gè)相對(duì)獨(dú)立的區(qū)域中,那么程序怎么使用對(duì)象呢?實(shí)際上是程序中真正使用對(duì)象的地方其實(shí)只是聲明了一個(gè)對(duì)象的引用,也就是把堆中分配了的相應(yīng)對(duì)象的地址放到引用中,當(dāng)然引用也是放在棧內(nèi)存中,棧和堆之間就是通過(guò)一個(gè)一個(gè)的引用來(lái)聯(lián)系的。至于引用,李老師表示可以把它看做是一個(gè)指針常量,說(shuō)得簡(jiǎn)單一點(diǎn)就是一個(gè)數(shù)值,這個(gè)數(shù)值所表達(dá)的是引用對(duì)象的地址。

所以,不管是基本類(lèi)型變量(int,float,double等)還是對(duì)象,相應(yīng)的內(nèi)存地址中存放的都是一個(gè)數(shù)(無(wú)符號(hào)整數(shù),整數(shù),浮點(diǎn)數(shù)等)。當(dāng)方法調(diào)用時(shí)候,方法的參數(shù)會(huì)占內(nèi)存中開(kāi)辟一塊新的區(qū)域,同時(shí)把要傳遞的基本類(lèi)型,或者引用類(lèi)型名稱(chēng)復(fù)制到這塊內(nèi)存中,結(jié)果是,基本類(lèi)型(存放在占內(nèi)存中的)復(fù)制之后連同其數(shù)值也復(fù)制到了這塊內(nèi)存中,而對(duì)象只是復(fù)制了引用名,實(shí)際還要聯(lián)系到原對(duì)象所在的堆區(qū)域中。

之所以說(shuō)java中傳遞的都是值,是因?yàn)閭鬟f得是內(nèi)存地址中的數(shù),當(dāng)然,這個(gè)值對(duì)于基本類(lèi)型和對(duì)象類(lèi)型來(lái)說(shuō)意義是不一樣的,對(duì)于基本類(lèi)型這個(gè)數(shù)就是其值本身,傳遞值的結(jié)果就是,改變新的變量的值不影響舊的變量的值;而對(duì)于對(duì)象來(lái)說(shuō)這個(gè)數(shù)是它的地址,傳遞這個(gè)值就相當(dāng)于傳遞了真實(shí)對(duì)象的引用,傳遞了引用或者說(shuō)是地址的結(jié)果就是變化會(huì)全局可見(jiàn)。所以說(shuō)java中的方法都是按值調(diào)用的!只不過(guò)基本類(lèi)型和對(duì)象類(lèi)型的"值"的在具體的機(jī)制上作用不同。

綜上,java中不論是基本類(lèi)型還是對(duì)象,方法調(diào)用時(shí),傳遞的都是值!

1.對(duì)于基本類(lèi)型的變量,相當(dāng)于操作其副本。

2.對(duì)于對(duì)象,相當(dāng)于復(fù)制了一個(gè)引用,該引用指向的還是原變量的內(nèi)存區(qū)域。      


標(biāo)簽: Java開(kāi)發(fā)
主站蜘蛛池模板: 亚洲热一区 | 性欧美ⅴidos另类护士 | 亚洲视频八区 | 国产又黄又爽又色的视频 | 成人在线观看欧美 | caoporen视频 | 国产又色又爽又黄的免费 | 极品国产在线 | 色欲色香天天天综合网站免费 | 日本黄网在线观看 | 女人高潮抽搐喷水视频 | av黄色免费网站 | 国产人妻无码一区二区三区婷婷 | 99视频播放| 国产成A人亚洲精V品无码 | 小蝌蚪视频在线观看 | 精品久热| 精品国产人成在线 | 亚洲无线码免费 | 岛国片在线播放 | 色妞永久免费视频 | 久久99热狠狠色精品一区 | 亚洲XXXX做受欧美 | 国产又粗又猛又爽视频上高潮69 | 最近免费中文字幕大全免费 | 我想看一级黄色毛片 | 狠狠色噜噜狠狠狠777米奇小说 | 成人国产一区二区三区精品不卡 | 庄园色导航 | 久久精品国产99精品国产亚洲性色 | 久久五月婷婷丁香 | 9191久久| 免费看污视频在线观看 | gogo全球大胆高清人露出91 | 国产一区欧美日韩 | 浮生影院大全免费 | 蜜臀久久精品久久久久久酒店 | 深夜特a级特黄高清毛片 | 成年人视频在线看 | 在线看黄色毛片 | 蜜臀av性久久久久蜜臀av麻豆 |