String类的copyValueOf与valueOf的区别以及valueOf与toString的区别

发布时间:2026/7/28 17:22:08
String类的copyValueOf与valueOf的区别以及valueOf与toString的区别 1.copyValueOf与valueOf相同点这两者是静态方法且都能将字符数组或者字符数组的一部分转换为字符串。2.copyValueOf与valueOf不同点valueOf能将基本数据类型和Object类型转换成字符串而copyValueOf则不能。3.valueOf与toString的区别valueOf方法中还有个重载的方法static String valueOf(Object obj),从表面上来看都是把一个对象转换成字符串形式和Object类中的toString方法好像没什么区别。但是话不多说直接上String类的valueOf方法的源码public static String valueOf(Object obj) {return (obj null) ? null : obj.toString();}通过这一小段源码发现valueOf方法中用到了Object类中的toString方法也就是说valueOf方法依赖于toString方法。但是当valueOf方法的传入的实际参数指向为空时返回的是字符串“null”。注意。这里的实际参数可以指向空而不能直接传入null否则报空指针异常。当用Object类中的toString方法把对象转成字符串时假设一个Person类的引用p, pnull, p.toString()就会报空指针异常而用Strin类中的valueOf(p)就不会报错运行结果是字符串null。因此用valueOf方法将对象转成字符串不用担心实际参数指向是否为空即使为null也会转成“null”字符串而toString方法若实际参数指向为空则报空指针异常。所以实际开发中具体用哪种方法视实际情况而定。