黑马程序员技术交流社区

标题: String类下 方法copyValueOf和valueOf有什么区别啊? [打印本页]

作者: tajufa    时间: 2015-6-14 21:07
标题: String类下 方法copyValueOf和valueOf有什么区别啊?
如下,这两个用起来都一样啊。有什么区别吗?
static String copyValueOf(char[] chs)
把字符数组转换成字符串底层调用new String(char[] chs)
static String valueOf(char[] chs)
把字符数组转换成字符串底层调用new String(char[] chs)


作者: 黑马晓飞    时间: 2015-6-14 21:16
我觉得你的疑问应该在char数组上吧?首先你得知道,String的底层是由char[]实现的:通过一个char[]类型的value属性!早期的String构造器的实现呢,不会拷贝数组的,直接将参数的char[]数组作为String的value属性。然后test[0] = 'A';将导致字符串的变化。为了避免这个问题,提供了copyValueOf方法,每次都拷贝成新的字符数组来构造新的String对象。但是现在的String对象,在构造器中就通过拷贝新数组实现了,所以这两个方面在本质上已经没区别了。我觉得这个解释还可以。有什么问题再问我。
作者: 黑马贾永强    时间: 2015-6-14 21:17
踩一下 嘎嘎嘎嘎嘎嘎灌灌灌灌灌




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2