欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java引用傳遞和值傳遞參數

江奕云1年前8瀏覽0評論

在學習Java時,我們不可避免地會遇到參數傳遞這個話題。在Java中,參數傳遞主要分為引用傳遞和值傳遞兩種。這兩種傳遞方式的本質區別是什么呢?下面我們來詳細了解一下。

值傳遞,即傳遞的是參數的副本,被調用方法可以修改參數的值,但不會影響參數原來的值。看下面這段代碼:

public int add(int x, int y){
x = x + y;
return x;
}
int a = 1, b = 2;
int result = add(a, b);
System.out.println(result); // 輸出3
System.out.println(a); // 輸出1
System.out.println(b); // 輸出2

在這段代碼中,我們調用了一個add()方法,傳入的參數為a和b,這里的a和b即為int類型的基本數據類型。調用add()方法后,方法執行了x = x + y這個語句,x的值變成了3。但需要注意的是,這個x并不是a的引用,而是a的副本。因此,調用add()方法后,a和b的值均未發生變化。

接下來,我們再看一下引用傳遞。在Java中,傳遞參數是以引用的方式進行傳遞的。所謂引用傳遞,即在傳遞參數時,傳遞的是參數的地址。看下面這個例子:

public void changeStr(StringBuffer str){
str.append("hello");
}
StringBuffer s = new StringBuffer("world");
changeStr(s);
System.out.println(s); // 輸出worldhello

在這個例子中,我們定義了一個方法changeStr(),該方法傳入的參數是一個StringBuffer類型的引用str。在changeStr()方法中,我們調用了StringBuffer對象的append()方法,來向這個對象中添加字符串hello。需要注意的是,在調用changeStr()方法時,我們傳入的是變量s的引用,而不是值。因此,調用changeStr()方法后,變量s中保存的對象也被修改了。

通過上面的例子,我們可以看出,在Java中,參數傳遞的方式是以引用的方式進行傳遞的,但是針對不同的數據類型,傳遞方式又有所不同。對于基本數據類型,采用的是值傳遞,而對于對象類型,則采用的是引用傳遞。