日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

温故(2):pass by value

發布時間:2025/4/16 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 温故(2):pass by value 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Java領域中,這是一個被討論得非常多的話題。可是,至今我發現還有很多人沒有搞清楚(當然也包括本人)。直到看了這篇文章“Does Java pass by reference or pass by value? ”,才算完全明白。

從中,我發現一個很有趣的東西:圖形比文字更能讓人看懂、更直觀。在上面那篇文章中,我想大家只要看看圖(畫的真棒)就可大致明白其中原理了。

為了便于理解,本人大致總結一下:

1、pass-by-reference和pass-by-value概念上有何不同?

推薦以下這篇文章“Reference 不為人知的一面”,從中摘取一段,解釋的比較清楚:到底什么是pass by value?什么又是 pass by reference 呢?打個比方,pass by value 就是資料的「分身」傳遞過去,pass by reference 就是資料的「本尊」傳遞過去。

2、傳遞methods參數才會出現pass-by-reference/value的問題

大家都知道Java中所有對象變量都是reference,但這與我們所說的pass-by-reference/value沒有什么關系。pass-by-reference/value只會在方法調用中才會出現,也就是說方法的參數是通過pass-by-reference還是pass-by-value進行傳遞。

3、Java中都是以pass-by-value的方式傳遞方法參數

Java中所有的參數都是采用pass-by-value進行傳遞,無論是Primitive type(int,short,float等),還是Objects。

4、區分可變對象(Mutable Objects)和不可變對象(Immutable Objects)

這兩種對象很容易引起誤會,看下面兩個例子:

EX?1:

public class Test {
??? public static void test(String str) {
??????? str = "World";?//1
??? }
??? public static void main(String[] args) {
??????? String string = "Hello";
??????? test(string);
??????? System.out.println(string);
??? }
}
  運行結果:

Hello

-----------------------------

EX 2:

public class Test {
??? public static void test(StringBuffer str) {
??????? str.append(", World!"); //2
??? }
??? public static void main(String[] args) {
??????? StringBuffer string = new StringBuffer("Hello");
??????? test(string);
??????? System.out.println(string);
??? }
}
  運行結果:

Hello, World!

為什么一個能改變,而另一個不能改變呢?其實這就是不可變和可變對象引起的問題。根據第一篇文章你就應該很容易弄明白,String是不可變對象,在代碼1處的str變量已經變成指向了另一個對象的reference(賦值語句相當于new),也就是說它只修改了另一個對象;而StringBuffer是可變對象,在代碼2處它修改的是同一個對象。


轉載于:https://www.cnblogs.com/sunsonbaby/archive/2004/12/14/77190.html

總結

以上是生活随笔為你收集整理的温故(2):pass by value的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。