黑马程序员技术交流社区

标题: 求解关于String类的一个小方法 [打印本页]

作者: 想飞的鱼    时间: 2014-5-25 07:48
标题: 求解关于String类的一个小方法
将字符数组转换成字符串,静态方法copyValueOf()和valueOf()有什么区别?
求教~


作者: 丁绍然    时间: 2014-5-25 08:25
  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对象,在构造器中就通过拷贝新数组实现了,所以这两个方面在本质上已经没区别了。
作者: youcyou    时间: 2014-5-25 09:12
真是楼上回答完  别人都没法回答了
作者: 想飞的鱼    时间: 2014-5-25 13:53
丁绍然 发表于 2014-5-25 08:25
char[] test = new char[]{'a','b','c'};
  String a = String.valueOf(test);
  String b = String.copy ...

原来这样啊,谢了哥们!
作者: zhrnghgwsws    时间: 2014-5-26 01:28
学习了。。




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