java String一旦声明字符串就不能改变
Stringsb="bbbwlirbbb";sb.replaceAll(“wlirbbb”,”hhtccc”);这样的替换是修改sb对象的类容呢,还是在一块新的内存里面写...
String sb= "bbbwlirbbb";
sb.replaceAll(“wlirbbb”,”hhtccc”);这样的替换是修改sb对象的类容呢,还是在一块新的内存里面写入bbbhhtccc。
输出结果:bbbhhtccc
下面是replace:
String s="hello";
System.out.println(s.replace("h","H"));
System.out.println(s);
输出结果:
Hello
hello
为什么两则有区别呢? 展开
sb.replaceAll(“wlirbbb”,”hhtccc”);这样的替换是修改sb对象的类容呢,还是在一块新的内存里面写入bbbhhtccc。
输出结果:bbbhhtccc
下面是replace:
String s="hello";
System.out.println(s.replace("h","H"));
System.out.println(s);
输出结果:
Hello
hello
为什么两则有区别呢? 展开
5个回答
展开全部
这个是自然的啦,
第一个的啦:当然不是新的内存写入的啦,你的sb已经初始化了呀
第二个的啦:你的s当然不会变的啦,因为你没有这样的啦:s=s.replace("h","H")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是在一块儿新的内存里生成一个新的字符串,原String 字符串所申请的内存中数据无变化。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个:是在新的内存块写入
第二个:区别在于,第一个调用的s的内存块中的值,第二个调用的是新内存块中的值
第二个:区别在于,第一个调用的s的内存块中的值,第二个调用的是新内存块中的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用赢了不笑31的回答:
String a = "abc";和String a = new String("abc"); 是不能等价的。在创建的过程中,生成的对象数量不同。
String a = "abc";和String a = new String("abc"); 是不能等价的。在创建的过程中,生成的对象数量不同。
展开全部
String a = "abc";和String a = new String("abc"); 是不能等价的。在创建的过程中,生成的对象数量不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询