string valueOf(char[])和new string(char[])的区别

4
以下打印语句的输出结果相同,但在隐私泄露-堆检查方面有任何内部差异吗?
char[] ch ={'p','a','s','s','w','o','r','d'};
System.out.println(String.valueOf(ch));

System.out.println(new String(ch));

3
当你阅读Java文档时,有什么是你不理解的?我会为你进行翻译。 - Sotirios Delimanolis
1
在考虑隐私侵犯的情况下提出了这个问题。有一个叫做Fortify的工具,可以扫描整个应用程序并生成问题报告,其中包括隐私侵犯堆检查。对于String.valueof,它显示了堆检查问题,但当我使用new String(chat array)时,问题得到了解决,尽管它们之间没有区别,所以我提出了这个问题。欢迎评论@SotiriosDelimanolis - Prathamesh Ketgale
2个回答

5

没有实际的区别,因为 valueOf 的内部实现如下:

public static String valueOf(char data[]) {
    return new String(data);
}

正如您所看到的,它直接调用了new String(data)


4

没有区别

valueOf是一个静态工厂方法,它调用了String构造函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接