Java只有值传递,没有引用传递
2019-06-07 20:54
323 查看
今天在牛客上做了一道题目。
以下代码结果是什么?
public class foo {
public static void main(String sgf[]) {
StringBuffer a=new StringBuffer(“A”);
StringBuffer b=new StringBuffer(“B”);
operate(a,b);
System.out.println(a+”.”+b);
}
static void operate(StringBuffer x,StringBuffer y) {
x.append(y);
y=x;
}
}
我选的答案是 AB.AB
其实正确的解答应该时AB.B才是对的
看了解析加上看了GitHub中的内容我才明白
1.在还没有进行交换前
a和x 都是指向 “A”的
其中x 是a 的拷贝品 指向地址 a
b和y 是指向“B”的
其中 y是b 的拷贝品 指向地址 b
这时候 对 x 进行了 append 操作, 于是地址 a 进行了 append 操作 得到了AB
这个时候,将x 的地址给了 y 于是改变了y 指向的地址,此时y 指向了 a地址
但是 对于b 来说,它本身的地址是没有受到影响的。所以结果是AB.B
在GitHub上看到了更全面的解答
GitHub地址 为什么 Java 中只有值传递?
有兴趣的可以去看。
相关文章推荐
- java中只有值传递,没有引用传递
- JAVA参数没有引用传递,只有值传递
- 【Java基础】11、java方法中只有值传递,没有引用传递
- JAVA参数没有引用传递,只有值传递
- 贴的 java只有值传递,没有引用传递 有图 侵删
- java方法中只有值传递,没有引用传递
- Java中只有按值传递,没有按引用传递!(两种参数情况下都是值传递)
- java中只有值传递,没有引用传递
- Java中只有值传递,没有引用传递 !
- Java语言中没有引用传递,只有值传递。到底对不对?
- Java中没有引用传递只有值传递(在函数中)
- Java中只有值传递,没有引用传递
- java方法中只有值传递,没有引用传递
- java中只有值传递,没有引用传递
- Java中只有值传递,没有引用传递
- Java实例说明 Java只有值传递 没有引用传递
- Java中只有值传递,没有引用传递
- JAVA中只有值传递,没有引用传递!
- Java语言中没有引用传递,只有值传递。到底对不对?
- 为什么java方法中只有值传递,没有引用传递