黑马程序员技术交流社区
标题:
弱问:关于String s 和int[] a:
[打印本页]
作者:
官沛
时间:
2015-7-10 11:44
标题:
弱问:关于String s 和int[] a:
比如:
String s = new String("abc");
System.out.println(s);
int[] a = new int[]{1,2,3};
System.out.println(a);
字符串变量s 和数组变量 a,都是引用数据类型变量,都是在栈内存,并指向堆内存的实体。
为什么s打印出来是abc这个值,而a打印出来是地址值?
作者:
何时归来看花开
时间:
2015-7-10 11:52
字符串和数组是有区别的
作者:
官沛
时间:
2015-7-10 21:20
具体一点呢?
我们刚上到面向对象,但昨天的考试题出了一道设计这方面。现在还没搞懂~
作者:
冷雨敲窗被未温
时间:
2015-7-10 21:30
因为字符串String类重写了toString方法, 而数组没有。
作者:
青皮核桃
时间:
2015-7-10 21:51
String s = new String("abc");
其实这句话完成了两个对象的建立,new String()是在堆内存中new出来一个对象,而在abc其实是存储于方法区中字符串常量池,s指向堆内存中的new String();new String()有指向abc,s间接指向abc,当打印s时,他会默认调用String类的toString()方法,该方法重写了Objeact的toString方法,返回的是该对象本身,所以会打印"abc"
而int数组在打印a是,也默认调用toString方法,他没有重写Object类的toString方法,返回值时全路径名、类名、@+哈希值
个人理解,希望对你有帮助
作者:
我不信命ZW
时间:
2015-7-10 21:57
楼上解释得很清楚,其实我的理解就是一个是引用类型的String型对象,一个是引用类型的数组型变量,虽然都是引用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2