因为前几天在贴吧里看到有人问了一道面试题: 原题地址:http://tieba.baidu.com/p/3479790275?pid=61955018493&cid=0#61955018493
1 public class StringTest { 2 3 public static void change(String str){ 4 str = "bbb"; 5 } 6 7 8 public static void main(String[] args){ 9 String str = "aaa"; 10 change(str); 11 System.out.println(str); 12 } 13 }
问输出结果,我的第一感觉应该就是bbb。。
我发现我的理解一直是处于 c++ 或者 c 的思路,后来又找到一个答案,我觉得 很好的解决了我的疑惑--》http://www.programcreek.com/2013/09/string-is-passed-by-reference-in-java/
还有,从开始接触java就不理解 java只有值传递,现在稍微是理解一点了。
即使是 引用也只是把引用本身创建了一个副本,值实际上还是没有变
总感觉哪里不对,先写这么多,也希望能跟大家有交流
时间: 2024-10-09 21:37:37