Java中的字符串是对象,所以它应该是引用?

Kev*_*vin -1 java

我是 Java 的初学者,最近遇到了一个关于 Java String 概念的面试问题:

public class Test1 {

    public static void changeStr(String str){
        str="welcome";
    }

    public static void main(String[] args) {
        String str="1234";
        changeStr(str);
        System.out.println(str);
     }
}
Run Code Online (Sandbox Code Playgroud)

我认为输出应该是“welcome”,但是,我在 Eclipse 中对其进行了测试,它显示“1234”,Java 字符串不是引用,因此在方法 changeStr 中将 Java 字符串“str”引用更改为“welcome” ?

请原谅我的初学者问题!

Boh*_*ian 5

对象的引用传递给方法并分配给参数,这是一种局部变量。

将不同的对象引用分配给参数对保存原始对象引用的方法之外的变量没有任何作用。

String 也是不可变的,因此无法更改其值(例如setValue()方法)。