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.