欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 學習交流 > 淺論Java語言中的傳參問題

淺論Java語言中的傳參問題

2017-08-22 17:19:01 | 來源:中培企業IT培訓網

Java是當今互聯網行業中的熱門開發語言,在java中,由于沒有指針類型,其傳參的方式也發生了相應的變化。中培偉業《企業級JAVA開發最佳實踐》培訓專家李老師根據網上的信息,按之前的理解,認為java中傳參方式應該主要有兩種:傳值和傳引用

一、傳值

java中的傳值即傳遞的是原變量的一個副本。基本的數據類型,如:char,int,double等類型的變量向函數傳遞的參數,都是變量的副本都屬于傳值。函數內部不論進行任何操作,都不影響變量本身,影響的只是變量的副本。

二、傳引用

從表面上來看,java中的對象類型都是傳遞的引用,而不是傳遞的值。然而,java中對象作為實參,傳遞的實際上還是值,即java中的傳參傳遞的都是值!為什么會這么說?我會從jvm的構成的角度來解釋一下自己對這個問題的理解。接下來我們先看一下JVM的結構:

三、JVM的結構及相應的解釋

Jvm在實現的時候將屬于它的內存分為五部分,其中程序代碼(嚴格的說應當是字節碼)和基本的數據類型是放在java棧的棧幀中,而對象是從堆中分配的,堆這個東西我認為可以理解成“對象池”。程序和程序中需要用到的對象放在兩個相對獨立的區域中,那么程序怎么使用對象呢?實際上是程序中真正使用對象的地方其實只是聲明了一個對象的引用,也就是把堆中分配了的相應對象的地址放到引用中,當然引用也是放在棧內存中,棧和堆之間就是通過一個一個的引用來聯系的。至于引用,我們可以把它看做是一個指針常量,說白了,就是一個數值,這個數值所表達的是引用對象的地址。所以,不管是基本類型變量(int,float,double等)還是對象,相應的內存地址中存放的都是一個數(無符號整數,整數,浮點數等)。當方法調用時候,方法的參數會占內存中開辟一塊新的區域,同時把要傳遞的基本類型,或者引用類型名稱復制到這塊內存中,結果是,基本類型(存放在占內存中的)復制之后連同其數值也復制到了這塊內存中,而對象只是復制了引用名,實際還要聯系到原對象所在的堆區域中。

之所以說java中傳遞的都是值,是因為傳遞得是內存地址中的數,當然,這個值對于基本類型和對象類型來說意義是不一樣的,對于基本類型這個數就是其值本身,傳遞值的結果就是,改變新的變量的值不影響舊的變量的值;而對于對象來說這個數是它的地址,傳遞這個值就相當于傳遞了真實對象的引用,傳遞了引用或者說是地址的結果就是變化會全局可見。所以說java中的方法都是按值調用的!只不過基本類型和對象類型的"值"的在具體的機制上作用不同。

綜上,java中不論是基本類型還是對象,方法調用時,傳遞的都是值!

1.對于基本類型的變量,相當于操作其副本。

2.對于對象,相當于復制了一個引用,該引用指向的還是原變量的內存區域。      

因此,在這些都將在方向都將在這些方向進行有效的。只要在相關的問題在因此在各個過程,都將在相關的問題都在應該進行有效展現,因此在這些過程都將在新的過程中來展現。

想了解更多IT資訊,請訪問中培偉業官網:中培偉業

相關閱讀

主站蜘蛛池模板: 欧美一区二区三区激情 | 国产办公室无码视频在线观看 | 大粗鳮巴征服少妇视频 | 美女爽到高潮嗷嗷嗷叫免费网站 | 欧美高难度牲交视频 | 久久久久久久久久久免费精品 | 亚洲色大18成网站WWW | 欧美俄罗斯40老熟妇 | 张雨绮被揉到高潮下不了床 | 久久亚洲美女精品国产精品 | 亚洲区日韩精品中文字幕 | 粗大的内捧猛烈进出在线视频 | 国产三级A在线观看 | 777国产偷窥盗摄精品品在线 | 精品少妇爆乳无码av无码专区 | 日韩精品亚洲人成在线 | 中文字幕日韩精品一区二区三区 | 国语做受对白XXXXX在线 | 中文字幕日本一道 | 国产精品色午夜免费视频 | 麻豆视频官网 | 国产成人精品一区二区视频 | 国产精品欧美激情在线播放 | 国产成人精品无码一区二区蜜柚 | 熟女精品视频一区二区三区 | 色欲AV蜜桃一区二区三 | 亚洲欧美一级黄色录像视频 | 天天做天天大爽天天爱 | 亚洲中文字幕第一页在线 | 肉感饱满中年熟妇日本 | 蜜臂精品国产高清在线观看 | 欧美日本91精品久久久久 | 国产午夜精品av一区二区麻豆 | 亚洲日韩国产二区无码 | 欧洲熟妇色xxxx欧美老妇多毛网站 | 131美女爱做视频 | 永夜星河短剧免费观看 | 在线免费高清一区二区三区 | 国内少妇人妻丰满av | 国产在视频线在精品视频2020 | 国产精品乱码一区二区三 |