***********************************String类是final类,上面的代码为什么可以改变它的内容呢?
还有String类中的replace、toUpperCase也可以改变它本身的内容吗?
"\u0000"这个转义字符是放在双引号的,这也可以转义吗?
它和'\u0000'有什么区别呢?
**********************************
注意 楼主
(1). final 修饰变量 这个变量是常量 之不能被修改
final 修饰类 这个类不能被继承 一个类不能被继承和这个类的对象的引用是不是常量引用是不相干的
并不是这个类是final类 它的引用也跟着就是final的了
区分下情况就OK
(2). replace toUpperCase返回值就是String类的引用 所以 他并没有改变这个调用方法的字符串对象的内容
String x =str.replace(, ); 这就没改变str指向对象的内容
如果 str =str.replace(, ); 仅仅是改变了这个str指向的对象 从原来的堆内存的对象 换到了由replace或者toUpperCase方法产生的堆内存中新的对象u00
(3). 这个\u u的意思是Unicode 的意思 \u0000这个是一个整体 本身是一个 Unicode编码值为0000对应的字符 不是转义 是一个整体 你可以打印System.out.println('\u0000');//单引号哦!
单个字符既可以放在''里面 也可以放在"" "\u0000\u0001\u0002" 但是 ''里面只能放一个字符 '\u0000' 或者'\u0001' 或者'\u0002' 如果 '\u0000\u0001' 编译就会出错!
|