最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解java的值傳遞、地址傳遞、引用傳遞

 更新時間:2017年06月25日 14:52:19   投稿:lqh  
這篇文章主要介紹了詳解java的值傳遞、地址傳遞、引用傳遞的相關(guān)資料,需要的朋友可以參考下

詳解java的值傳遞、地址傳遞、引用傳遞

一直來覺得對值傳遞和地址傳遞了解的很清楚,剛才在開源中國上看到一篇帖子介紹了java中的值傳遞和地址傳遞,看完后感受頗深。下邊總結(jié)下以便更容易理解。

按照以前的理解,java中基本數(shù)據(jù)類型是值傳遞,對象是地址(引用)傳遞。給大家看個例子:

public class ObjectTrans { 
   
  public static void main(String[] args) { 
    String name = "123"; 
    SChange(name); 
    System.out.println(name); 
  } 
     
  public static void SChange (String str) {   
    str = "234"; 
  }  
   
}

大家思考下,這個例子輸出的結(jié)果應(yīng)該是123呢還是234呢?結(jié)果是123。why?一句話表達(dá):對象也是值傳遞,只是把這個對象的引用copy了一份。

其實java本來就是值傳遞,沒有c++那樣的指針傳遞,分步分析下上邊的代碼:

1、name = "123"

2、調(diào)用SChange  str 和 name 共同指向 “123”(拷貝name的引用賦給str)

3、str 重新賦值并指向“234”

4、name指向不變還是“123”

下邊看另外一段代碼:

public class ObjectTrans { 
   
  public static void main(String[] args) { 
    StringBuilder name = new StringBuilder("123"); 
    SChange(name); 
    System.out.println(name); 
  } 
     
  public static void SChange (StringBuilder str) {   
    //str = "234"; 
    str.append("234"); 
  }  
   
}

那么這段代碼輸出的結(jié)果應(yīng)該是什么呢?答案是123234,why?同樣分步分析:

1、name = "123"

2、調(diào)用SChange  str 和 name 共同指向 “123”(拷貝name的引用賦給str)

3、改變所指向?qū)ο蟮闹?123"+"234"

4、引用沒變只是值變了,所以結(jié)果為123234

如果不明白請留言,自己好好分析下。。。請記住一句話:java只有值傳遞。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java中的四種單例模式淺析

    Java中的四種單例模式淺析

    這篇文章主要給大家介紹了關(guān)于Java中四種單例模式的相關(guān)資料,其中包括餓漢式、懶漢式、懶漢式(雙重鎖)及內(nèi)部類等四種,分別給出了詳細(xì)的示例代碼和介紹,需要的朋友們下面來一起看看吧。
    2017-05-05
  • form-data與x-www-form-urlencoded的區(qū)別以及知識延伸

    form-data與x-www-form-urlencoded的區(qū)別以及知識延伸

    這篇文章主要給大家介紹了關(guān)于form-data與x-www-form-urlencoded的區(qū)別以及知識延伸,form-data和x-www-form-urlencoded都是HTTP請求中用于傳輸表單數(shù)據(jù)的編碼格式,需要的朋友可以參考下
    2023-11-11
  • Springboot自帶線程池的實現(xiàn)

    Springboot自帶線程池的實現(xiàn)

    本文主要介紹了Springboot自帶線程池的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • mybatis批量更新與插入方式

    mybatis批量更新與插入方式

    這篇文章主要介紹了mybatis批量更新與插入方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringFramework應(yīng)用接入Apollo配置中心過程解析

    SpringFramework應(yīng)用接入Apollo配置中心過程解析

    這篇文章主要介紹了SpringFramework應(yīng)用接入Apollo配置中心過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot中實現(xiàn)訂單30分鐘自動取消的項目實踐

    SpringBoot中實現(xiàn)訂單30分鐘自動取消的項目實踐

    現(xiàn)在電子商務(wù)平臺上訂單創(chuàng)建成功,等待支付,一般會給30分鐘的時間,本文主要介紹了SpringBoot中實現(xiàn)訂單30分鐘自動取消的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java中自定義泛型方法及其應(yīng)用示例代碼

    Java中自定義泛型方法及其應(yīng)用示例代碼

    泛型方法是Java中一個強大的特性,它允許我們在方法級別使用類型參數(shù),提高代碼的復(fù)用性和類型安全性,通過本文,讀者可以學(xué)習(xí)如何定義和使用泛型方法,并了解其在處理集合、比較對象、創(chuàng)建實例等任務(wù)中的應(yīng)用,感興趣的朋友一起看看吧
    2025-02-02
  • Java字符串常量池示例詳解

    Java字符串常量池示例詳解

    作為最基礎(chǔ)的引用數(shù)據(jù)類型,Java設(shè)計者為 String 提供了字符串常量池以提高其性能,下面這篇文章主要給大家介紹了關(guān)于Java字符串常量池的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • java驗證碼組件kaptcha使用方法

    java驗證碼組件kaptcha使用方法

    這篇文章主要介紹了java驗證碼組件kaptcha使用方法,很不錯的一個組件,可以在JAVA開發(fā)中使用,大家都試試吧
    2013-11-11
  • Java中Scanner用法實例解析

    Java中Scanner用法實例解析

    Scanner?指的是java.util包下的Scanner類,可以接收控制臺輸入的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中Scanner用法實例的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11

最新評論

红安县| 永济市| 栖霞市| 始兴县| 霍林郭勒市| 满城县| 德阳市| 依安县| 七台河市| 博湖县| 新龙县| 新平| 都安| 阆中市| 马关县| 平凉市| 三门峡市| 广州市| 耿马| 湄潭县| 杭州市| 垫江县| 龙山县| 柳州市| 东兰县| 康乐县| 武乡县| 桑植县| 永德县| 水富县| 兴化市| 万荣县| 盐源县| 常州市| 黔南| 上思县| 开封市| 乃东县| 渝北区| 阜南县| 车险|