您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java參數怎么引用”,在日常操作中,相信很多人在Java參數怎么引用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java參數怎么引用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1.基本類型
基本類型作為實參時,該值會拷貝一份在方法中使用,方法中對參數的改變不會影響原來的值;
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=5;
change(i);
System.out.println(i);
}
private static void change(int i){
i=10;
}
}
輸出:5
2.引用類型
引用類型的值是堆中數據所占內存的首地址,當引用類型作為方法實參時,編譯器會在復制一份該地址在方法中使用,此時有兩種情況:
1)如果方法改變了引用指向的數據的內容,則方法外的引用指向的內容也會改變;
2)如果方法將此引用指向了其他的內存地址,則方法外該引用執行的內容不變;
第一種情況:
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t1=new Test();
changeContent(t1);
System.out.println(t1.s);
}
private static void changeContent(Test t){
t.s="change content";
}
}
class Test{
String s="empty";
}
output:
change content
第二種情況:
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t1=new Test();
changeReference(t1);
System.out.println(t1.s);
}
private static void changeReference(Test t){
t=new Test();
t.s="changeRefence";
}
}
class Test{
String s="empty";
}
output:
empty
3.當string類型作為參數時,由于string的不可變的性質,因此當方法中改變了string的內容時,方法外參數指向的內容仍然不變
public class TestString {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="old";
change(s);System.out.println(s);
}
private static void change(String s){
s="change string";
}
}
output:
old
到此,關于“Java參數怎么引用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。