重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章主要介紹“Java參數(shù)傳遞機(jī)制的原理是什么”,在日常操作中,相信很多人在Java參數(shù)傳遞機(jī)制的原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Java參數(shù)傳遞機(jī)制的原理是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比邢臺(tái)縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式邢臺(tái)縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋邢臺(tái)縣地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
Java參數(shù)傳遞機(jī)制
Java究竟是應(yīng)該按照什么來傳遞參數(shù)?值?引用?還是兩者皆有?
其實(shí),弄清楚這個(gè)問題得從概念入手。什么是按值傳遞,什么是按照參數(shù)傳遞。
定義一個(gè)變量TestObject obj = new TestObject(); 然后把 obj 作為參數(shù)傳遞給一個(gè)方法。如果在這個(gè)方法中,只能改變obj指向的這個(gè)對(duì)象的內(nèi)容,那就是“值傳遞”,傳過去的值就是指向這個(gè)對(duì)象的指針。如果在這個(gè)方法中通過操作,使得返回后的obj指向另外一個(gè)對(duì)象(通過equal判斷返回來的對(duì)象是否與原對(duì)象在內(nèi)存中指向同一內(nèi)存地址),那就是“引用傳遞”,傳過去的是對(duì)這個(gè)指針變量的“引用”。
Java參數(shù)傳遞機(jī)制分析代碼
public class PersonT { public void change(Person p) { p.name = "mary"; p.age = 20; } public void changeInt(int i) { i = 8; } public void change1(Person p){ //新建對(duì)象,name為tpm,age為22 p = new Person("tom",22); } public static void main(String[] args) { PersonT t = new PersonT(); Person p = new Person("john", 18); Person p1 = p; System.out.println(p); //通過方法改變對(duì)象屬性值 t.change(p1); System.out.println(p1); System.out.println("傳回來的值指向是否一致:" + p.equals(p1)); //通過方法改變整數(shù)值 int i = 10; System.out.println("i值為:" + i); t.changeInt(i); System.out.println("i值為:" + i); //新建一對(duì)象,改變對(duì)象值 t.change1(p); System.out.println(p); } }
輸出結(jié)果為:
姓名:john年齡:18
姓名:mary年齡:20
傳回來的值指向是否一致:true
i值為:10
i值為:10
姓名:mary
年齡:20
到此,關(guān)于“Java參數(shù)傳遞機(jī)制的原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!