答案应该是A。简单说一下,我知道楼主疑惑在哪里,你没有真正理解“String类型的对象是不可改变的;一旦创建了一个字符串对象,它的内容是不能被改变的”这句话。String创建的是不可变字符串, 在java 中使用字符串最重要的一个规则必须记住,一个字符串对象一旦被创建,它的内容就是固定不变的。String是类类型变量,重新声明对象就会新建对象,比如String b =a.toLowerCase(); b 指向了一个新被创建字符串地址,字符串接收的字符是abcd,也就是a调用toLowerCase()方法得到的字符串。虽然b调用了replace方法,但调用完成后字符串b没有任何改变啊,它还在那里。