A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 想飞的鱼 中级黑马   /  2014-5-25 07:48  /  1251 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

将字符数组转换成字符串,静态方法copyValueOf()和valueOf()有什么区别?
求教~

5 个回复

倒序浏览
  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对象,在构造器中就通过拷贝新数组实现了,所以这两个方面在本质上已经没区别了。

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1

查看全部评分

回复 使用道具 举报 2 0
真是楼上回答完  别人都没法回答了
回复 使用道具 举报
丁绍然 发表于 2014-5-25 08:25
char[] test = new char[]{'a','b','c'};
  String a = String.valueOf(test);
  String b = String.copy ...

原来这样啊,谢了哥们!
回复 使用道具 举报
学习了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马