一道问题

publicclass Test1 {
publicstaticvoid changeStr(String str){
str="welcome";
}
publicstaticvoid main(String[] args) {
String str="1234";
changeStr(str);
System.out.println(str);
}
}
为什么输出的是1234啊😭
java不是传递引用吗
根据常量池,change里的str引用的对象被更改为新的常量了,但为什么不影响原来的引用呢
大佬求不喷
全部评论
Java值传递,形参拿到的只是实参的副本
点赞 回复 分享
发布于 2019-03-29 10:44
建议看一下深入理解Java虚拟机,了解一下虚拟机栈里面存的哪些东西,另外java只有值传递,
点赞 回复 分享
发布于 2019-03-29 21:45
java基本数据类型和string值传递(一楼回复里面的那哥们说的对),其他引用传递
点赞 回复 分享
发布于 2019-03-29 09:07
java是值传递。 他传递的是引用的copy
点赞 回复 分享
发布于 2019-03-29 07:16

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务