头条视频面试题,为什么下面代码输出 123 而不是 abc?
public class Main {
void replace(StringHolder a) {
a = new StringHolder(\"abc\");
}地方不够,往下看
楼主:static class StringHolder { public StringHolder(String value) {this.value = value;}public String value; }
楼主:public static void main() { Main m = new Main(); StringHolder test = new StringHolder(\"123\");
楼主:m.replace(test); System.out.println(test.value); } }`
程序猿.华山弟子:M
自由职业者员工:老哥就不能放编辑器截个图[笑哭]
吃吃喝喝员工:[冷汗][冷汗][冷汗]这值传递额
程序猿.娃娃菜不菜:这很简单啊[冷汗]
前今日头条员工:老哥你能贴个图么[吐血]
程序猿.娃娃菜不菜:话说头条哪个部门招java
字节跳动员工:test一直指向的都是123那个对象,a一开始跟test一起指向124,然后变成abc了,但test的指向没有变
程序猿.江南it小菜鸟:放张图也好啊
少林弟子:唉,也只有你华为的不会了
程序猿.贾雨村:大学期末考试都不会做错吧
程序猿.skrskr:头条还考java吗?看不懂,好像很难的样子
包不同:a跟test不是一回事
程序猿.昆仑弟子:引用不是指针
北京百度网讯科技有限公司员工:我搞cpp的都知道
程序猿.前腰拉扎里:调用replace之后的入参a不是test,而是test的值赋给了a
宋兵乙:因为java传对象传的是值,所以传入对象指向不可变…
程序猿.若疆赤云:值传递,传的是变量的副本。[坏笑]
黄钟公:Java里的指针不是指针 是引用
自由职业者员工:老哥就不能放编辑器截个图[笑哭]
前今日头条员工:老哥你能贴个图么[吐血]
吃吃喝喝员工:[冷汗][冷汗][冷汗]这值传递额