先看最后一张图后面说的引用数据局部变量。再看我的代码,输出数组名是地址,输出字符串名是张三,为什么?比如我想要字符串的那个地址值,怎么获得?我知道数组的人遍历会获得arr的值。最主要想弄明白就是为什么字符串输出的不是地址。有知道的说下谢谢。
数组的引用和数组的元素是两个不一样的东西
System.out.println(arr);//数组的引用
System.out.println(arr[0]+","+arr[1]","+arr[2]);//数组的元素
这个是正确的。
。
这里涉及到一个叫toString()的方法,toString碰到“println”之类的输出方法时会自动调用,调用toString()方法会返回一个字符串(比如返回的地址值)。字符串类型的toString()方法有重载过,使得输出的是值,而不是地址。想输出地址值的话,将System.out.println(name);改成System.out.println(name.Object.toString());