黑马程序员技术交流社区
标题:
这个问题不是很靠谱,关于String类型与其他内容进行“+”...
[打印本页]
作者:
倪杭乘
时间:
2012-5-2 17:55
标题:
这个问题不是很靠谱,关于String类型与其他内容进行“+”...
String类型好像能跟所都的变量进行“+”操作
让我疑惑的是全部的类型都变成了字符串形式,到底虚拟机进行了什么操作
public class IntegerDemo {
public static void main(String[] args) {
Integer i = new Integer(32);
String s = "fdfw";
Person p = new Person(18,"wangwu");
s = s+p+i;
System.out.println(s);
}
}
class Person{
int age;
String name;
public Person(int age, String name) {
super();
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "abc";
}
复制代码
后来我复写了Person中的toString类,好像问题已经解决了
对所有对象都进行了toString操作
对于基本数据类型应该是先进行了装箱,再调用了对象的toString类型
发上来大家看看吧 指点一下是不是我这样想对不对
作者:
suiabing
时间:
2012-5-2 18:03
对 {:soso_e147:}
作者:
一生一世
时间:
2012-5-2 18:08
你理解的是对的,String s = "fdfw";就是在内存中的常量池中创建了一个String类型的字符串,然后你用+号把他们都在到一起即s = s+p+i;,其实又在常量池中新创建了一个String类型的对象它的值,就是把所有的toString()方法返回的字符串连接在一起,其实你能这么写是因为Integer对象重写了Object对象的toString方法,所以才能返回指定值得字符串形式。所以你这么理解是没有错的
作者:
倪杭乘
时间:
2012-5-2 18:09
{:soso__6235880048239246314_3:} 困了睡觉去 在线9小时的高级黑马
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2