A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家看一下代码,内容很简单
  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”的地址?


4 个回复

倒序浏览
123的地址值
回复 使用道具 举报
你给它都全部重新赋值了吧!
回复 使用道具 举报
    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

回复 使用道具 举报
创建对象b,给对象进行初始话,初始值为123,c=456,a=c,把c的值赋给a,a就等于456,对象b=c再把c的值赋给b,b就等于456,  对象中存在的是123或者后来改为456的地址值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马