摘要:中方法參數(shù)的傳遞眾所周知,語言中只有值傳遞,看起來很好理解的一句話,那么來看一個例子輸出結(jié)果這是一個經(jīng)典問題,我想說說自己的理解首先,變量和分別包含一個字符串對象的引用。按值傳遞,當變量和傳遞給方法,和的引用的副本被傳遞。
Java中方法參數(shù)的傳遞:
眾所周知,Java語言中只有值傳遞,看起來很好理解的一句話,那么來看一個例子:
輸出結(jié)果:
這是一個經(jīng)典問題,我想說說自己的理解:
首先,變量sa和sb分別包含一個字符串對象的引用。不是引用本身,它們是用于存儲一個內(nèi)存地址的變量。Java按值傳遞,當變量sa和sb傳遞給opertion()方法,sa和sb的引用的副本被傳遞。而不是sa和sb引用本身。
如圖:
作為參數(shù)傳入opertion()方法時:
當在opertion()方法中sb=sa時:
由此可以看出sa和sb的副本都指向’A’的內(nèi)存地址,但是主方法中的sa和sb引用都沒有發(fā)生過變化,變化的是副本sa和sb的指向地址,下面還有一段代碼說明問題:
大家都知道String是不可變的,改變的只是引用地址,由此可以說明參數(shù)傳進來的不是引用的本身
PS:(希望大家看的時候能提出自己的看法,并能指出有錯誤的或表達不準確的地方,在下定當積極配合)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/70648.html
摘要:有種流行的觀點說的另外一個特殊之處在于,在方法調(diào)用傳參數(shù)時,是按值傳遞的,其他普通對象是引用傳遞。然而這種說法是大大錯誤的,至少是完全誤解了值傳遞和引用傳遞的概念。方法調(diào)用傳參只有一種傳遞就是值傳遞。 上篇文章說到Java的String是比較特殊的對象,它是不可變的。 有種流行的觀點說String的另外一個特殊之處在于,在方法調(diào)用傳參數(shù)時,String是按值傳遞的,其他普通對象是引用傳...
摘要:為什么中只有值傳遞首先回顧一下在程序設(shè)計語言中有關(guān)將參數(shù)傳遞給方法或函數(shù)的一些專業(yè)術(shù)語。方法的參數(shù)和被初始化為兩個對象引用的拷貝,這個方法交換的是這兩個拷貝總結(jié)程序設(shè)計語言對對象采用的不是引用調(diào)用,實際上,對象引用是按值傳遞的。 1、為什么 Java 中只有值傳遞? 首先回顧一下在程序設(shè)計語言中有關(guān)將參數(shù)傳遞給方法(或函數(shù))的一些專業(yè)術(shù)語。按值調(diào)用(call by value)表示方法...
摘要:接下了,我們調(diào)用方法,來嘗試改變的值以此驗證中的傳值方式。我們將作為實參傳給方法,形參來接受這個實參,在這里就體現(xiàn)出了兩種傳參方式的不同。中只有值傳遞這一種方式,只不過對于引用類型來說,傳遞的參數(shù)是對象的引用罷了。 前言 這幾天在整理java基礎(chǔ)知識方面的內(nèi)容,對于值傳遞還不是特別理解,于是查閱了一些資料和網(wǎng)上相關(guān)博客,自己進行了歸納總結(jié),最后將其整理成了一篇博客。 值傳遞 值傳遞是指...
摘要:作用用來過濾文件對象抽象方法用來過濾文件的方法測試指定抽象路徑名是否應該包含在某個路徑名列表中。參數(shù)使用方法遍歷目錄得到的每一個文件對象接口實現(xiàn)此接口的類實例可用于過濾器文件名。 showImg(https://segmentfault.com/img/bVbwliY?w=1212&h=129);FileFileter showImg(https://segmentfault.com/...
閱讀 2664·2021-11-22 15:25
閱讀 1525·2021-11-15 17:59
閱讀 1219·2021-09-29 09:34
閱讀 1671·2021-09-26 09:46
閱讀 3116·2021-09-02 15:40
閱讀 1272·2019-08-30 15:56
閱讀 3365·2019-08-30 15:55
閱讀 753·2019-08-29 17:08