欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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"; 
  }  
   
}

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

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

1、name = "123"

2、調用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"); 
  }  
   
}

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

1、name = "123"

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

3、改變所指向對象的值"123"+"234"

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

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

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

相關文章

  • Java并發(fā)計數器的深入理解

    Java并發(fā)計數器的深入理解

    這篇文章主要給大家介紹了關于Java并發(fā)計數器的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Java使用NIO包實現(xiàn)Socket通信的實例代碼

    Java使用NIO包實現(xiàn)Socket通信的實例代碼

    本篇文章主要介紹了Java使用NIO包實現(xiàn)Socket通信的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • SpringBoot Tomcat啟動實例代碼詳解

    SpringBoot Tomcat啟動實例代碼詳解

    這篇文章主要介紹了SpringBoot Tomcat啟動實例代碼詳解,需要的朋友可以參考下
    2017-09-09
  • 詳解使用Spring Boot開發(fā)Web項目

    詳解使用Spring Boot開發(fā)Web項目

    這篇文章主要介紹了詳解使用Spring Boot開發(fā)Web項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • MyBatis-Plus如何使用枚舉自動關聯(lián)注入詳解

    MyBatis-Plus如何使用枚舉自動關聯(lián)注入詳解

    這篇文章主要給大家介紹了關于MyBatis-Plus如何使用枚舉自動關聯(lián)注入的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用MyBatis-Plus具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • 詳解Java并發(fā)編程中的優(yōu)先級隊列PriorityBlockingQueue

    詳解Java并發(fā)編程中的優(yōu)先級隊列PriorityBlockingQueue

    PriorityBlockingQueue是Java中實現(xiàn)了堆數據結構的線程安全的有界阻塞隊列。本文將會深入解讀PriorityBlockingQueue的源碼實現(xiàn),感興趣的可以了解一下
    2023-05-05
  • 為什么JDK8中HashMap依然會死循環(huán)

    為什么JDK8中HashMap依然會死循環(huán)

    這篇文章主要介紹了為什么JDK8中HashMap依然會死循環(huán),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Spring MVC框架配置方法詳解

    Spring MVC框架配置方法詳解

    這篇文章主要為大家詳細介紹了Spring MVC框架的配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • SpringBoot使用LomBok的示例代碼

    SpringBoot使用LomBok的示例代碼

    這篇文章主要介紹了SpringBoot使用LomBok的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java實現(xiàn)簡單的五子棋游戲示例代碼

    Java實現(xiàn)簡單的五子棋游戲示例代碼

    這篇文章主要為大家介紹了如何利用Java語言實現(xiàn)簡單的五子棋游戲,文中的示例代碼講解詳細,對我們學習Java游戲開發(fā)有一定幫助,需要的可以參考一下
    2022-05-05

最新評論