黑马程序员技术交流社区

标题: 想问大家一个问题,关于String对象的,就是不明白了 [打印本页]

作者: 爱如kongcheng    时间: 2015-4-23 22:51
标题: 想问大家一个问题,关于String对象的,就是不明白了
大家看一下代码,内容很简单
  1. String a="123";
  2. String b=new String ("123");
  3. String c="456";
  4. a=c;
  5. b=c;
  6. System.out.println(a+"--"+b+"--"+c);
复制代码
输出结果也简单:456--456--456
问题一:书上说,String对象存放的字符串是不能够修改的,为什么可以重新赋值?
问题二:String对象中存放的到底是什么?是“123”还是指向“123”的地址?



作者: 邓熊财    时间: 2015-4-23 22:55
123的地址值
作者: 邓熊财    时间: 2015-4-23 22:56
你给它都全部重新赋值了吧!
作者: 飞翔的马驹    时间: 2015-4-23 23:03
    String a="123";     赋值 变量字符串a 为123
    String b=new String ("123"); 定义字符对象 b初始化 123
    String c="456";   赋值变量字符串c 为456
    a=c;      c赋值给a a就是456
    b=c;       c赋值给b b就是456
    System.out.println(a+"--"+b+"--"+c); 所以输出都为456


作者: 邓熊财    时间: 2015-4-23 23:07
创建对象b,给对象进行初始话,初始值为123,c=456,a=c,把c的值赋给a,a就等于456,对象b=c再把c的值赋给b,b就等于456,  对象中存在的是123或者后来改为456的地址值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2