大家都知道值傳遞和引用傳遞,下面我來通過以一個問題和示例來解決引用類型傳遞的原理
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比東興網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式東興網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋東興地區(qū)。費用合理售后完善,十年實體公司更值得信賴。? 1)先創(chuàng)建了引用類型Person里面有String name 和int age?
? 2)new 一個對象,把這個對象的值賦給a,再把a賦給Person類型的b
package classtest1224;
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
主函數(shù)Person a = new Person();
a.setAge(18);
a.setName("zzt");
Person b = a;
System.out.println("--------------");
System.out.println(a);
System.out.println(b);
System.out.println("--------------");
System.out.println("接下來改變a的Name看看b的值能不能改變");
b.setName("慢慢學");
System.out.println(a);
System.out.println(b);
思考:將a的值賦值給了b,通過改變b的值能改變a的值嗎?
你的結(jié)果是這樣嗎?
Person{name='zzt', age=18}
Person{name='慢慢學', age=18}測試結(jié)果如下
Person{name='慢慢學', age=18}
Person{name='慢慢學', age=18}
是不是挺奇怪的,這就是引用傳遞具體
可以見下面這張圖?
提出問題1.String的字符串池問題所以所有引用類型的值是不是都是這也傳遞的呢?經(jīng)過我的學習,除了String類剩下的都是可以的下來就看看String類到底是怎么樣的
String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2);
比較結(jié)果會是怎么樣的?true?false?
是內(nèi)容一樣但是地址不一樣,所以結(jié)果是false嗎?
測試結(jié)果:true?
我先看了String源碼發(fā)現(xiàn)底層是final的字符數(shù)組,意思就是她的值是不可改變的,那為什么字符串可以進行a+="abc";操作呢?
原因是:每次修改String類型的值都會重新創(chuàng)建一個出來,所以對字符串的操作是非常浪費資源的。但因為java的垃圾回收機制,長時間不用的又會被回收掉!
不多廢話了!直接上代碼!??!
String c = "abc";
String d = c;
System.out.println("改變c看看d的值是否改變");
c+="d";
System.out.println(d);
測試結(jié)果如下?
以上是我這篇博客的內(nèi)容如有不正確的地方希望大家指出?。。?p>你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧通過改變c的值發(fā)現(xiàn)d的值并沒有改變
原理是:String類型有特定的字符串池,每次改變字符串的值就會向常量池中添加新的字符串,如下如圖所示:?
網(wǎng)頁題目:引用傳遞示例,以及String類型如何傳遞的原理-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article2/psooc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站改版、域名注冊、全網(wǎng)營銷推廣、自適應網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)