2016-10-11 155 views
-2

當傳遞字符串amyFunction()時,我傳遞該引用。爲什麼當它退出時,參考指向舊的字符串?它不使用真正的字符串引用嗎?將字符串參數傳遞給函數並將其更改

import java.time.*; 

public class Main { 
    public static void main(String[] args) { 
     String a = "aaa"; 

     myFunction(a); 

     System.out.println(a); 
    } 

    private static void myFunction(String a) { 
     a = a + "111"; 
     System.out.println(a); 
    } 
} 
+0

您可以傳遞一個'StringBuilder',因爲這個方法可以修改它,或者從方法返回一個結果'String'。 Java字符串是不可修改的(常量,凍結)。 –

+0

要回答你的問題,引用僅傳遞給方法。如果在該方法中引用已更改,則新引用不會傳回。 –

回答

0

查看變量範圍。您正在創建一個變量的本地副本並將其設置在myFunction()中。本地副本的使用時間與方法一樣長。當Myfunction()完​​成修改後的「a」副本不再可用時。

相關問題