黑马程序员技术交流社区
标题:
关于String类copyValueOf方法和valueOf方法的区别
[打印本页]
作者:
litaojisuanji
时间:
2013-12-20 12:48
标题:
关于String类copyValueOf方法和valueOf方法的区别
public static
String
copyValueOf
(char[] data)和public static
String
valueOf
(char[] data)好像都是把字符数组转换成字符串,有什么区别呢?
char[] chs = { '1', '2', '3', 'a', 'b', 'c', '中', '国' };
String s1 = String.copyValueOf(chs);
System.out.println(s1);//123abc中国
String s2 = String.valueOf(chs);
System.out.println(s2);//123abc中国
复制代码
作者:
zy1349
时间:
2013-12-20 13:15
我觉得你最大的疑问应该在char数组上吧?比如
char[] test = new char[]{'a','b','c'};
String a = String.valueOf(test);
String b = String.copyValueOf(test);
有什么区别?答案:没有任何区别!
首先你得知道,String的底层是由char[]实现的:通过一个char[]类型的value属性!早期的String构造器的实现呢,不会拷贝数组的,直接将参数的char[]数组作为String的value属性。然后
test[0] = 'A';
将导致字符串的变化。为了避免这个问题,提供了copyValueOf方法,每次都拷贝成新的字符数组来构造新的String对象。但是现在的String对象,在构造器中就通过拷贝新数组实现了,所以这两个方面在本质上已经没区别了。
作者:
心如岄,明如镜
时间:
2013-12-20 14:18
我正好学到这,还一头雾水呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2