Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java输出说明_Java_Output - Fatal编程技术网

Java输出说明

Java输出说明,java,output,Java,Output,代码 我理解函数modify中的print语句,我还知道StringBuffer类修改字符串,因此a.append(b)使字符串引用“AB” 我的问题是如何在函数modify之外将String a更改为“AB”,但语句a=b在函数modify之外没有影响基本上,变量按值传递时,按引用传递时?Java始终使用按值传递。在引用的情况下,它是引用的值。传递引用时,可以更改引用所引用的对象,但将引用指定给其他对象不会产生任何后果 因此,在您的情况下,a引用的对象可以更改,但不能将引用分配给其他对象(它可

代码

我理解函数
modify
中的print语句,我还知道
StringBuffer
类修改字符串,因此
a.append(b)
使字符串引用“AB”


我的问题是如何在函数
modify
之外将
String a
更改为“AB”,但语句
a=b
在函数
modify
之外没有影响基本上,变量按值传递时,按引用传递时?

Java
始终使用按值传递。在引用的情况下,它是引用的值。传递引用时,可以更改引用所引用的对象,但将引用指定给其他对象不会产生任何后果


因此,在您的情况下,
a
引用的对象可以更改,但不能将引用分配给其他对象(它可以是这样的,但没有效果)。

Java
始终使用传递值。在引用的情况下,它是引用的值。传递引用时,可以更改引用所引用的对象,但将引用指定给其他对象不会产生任何后果


因此,在您的情况下,
a
引用的对象可以更改,但不能将引用指定给其他对象(可以是这样,但没有效果)。

下面是一幅简单的图片:

class Test {
    public static void main(String args[]) {
        StringBuffer a = new StringBuffer("A");
        StringBuffer b = new StringBuffer("B");
        modify(a, b);
        System.out.println(a + " " + b);
    }

    public static void modify(StringBuffer a, StringBuffer b) {
        a.append(b);
        a = b;
        System.out.println(a + " " + b);
    }
}
main修改

StringBuffer下面是一张简单的图片:

class Test {
    public static void main(String args[]) {
        StringBuffer a = new StringBuffer("A");
        StringBuffer b = new StringBuffer("B");
        modify(a, b);
        System.out.println(a + " " + b);
    }

    public static void modify(StringBuffer a, StringBuffer b) {
        a.append(b);
        a = b;
        System.out.println(a + " " + b);
    }
}
main修改

StringBuffer包含对象的变量实际上是对该对象的引用。因此,如果将其分配给另一个变量,则两个变量都引用同一个对象

将变量传递给函数时,会传递值

对于对象,传递的值是引用


因此,您可以在“修改”中将b指定给a,但效果是引用b的局部值,之后它们都相同,并且引用对象b。当您将b附加到a时,您正在修改变量a引用的对象

包含对象的变量实际上是对该对象的引用。因此,如果将其分配给另一个变量,则两个变量都引用同一个对象

将变量传递给函数时,会传递值

对于对象,传递的值是引用


因此,您可以在“修改”中将b指定给a,但效果是引用b的局部值,之后它们都相同,并且引用对象b。当您将b附加到a时,您正在修改变量a引用的对象

这可能会引起你的兴趣是的,的确如此。多谢各位+1你可能对此感兴趣是的,的确如此。多谢各位+1.