String a=new String(""); 和String a=new String();有区别吗

来源:百度知道 编辑:UC知道 时间:2024/06/17 09:08:19

如果是Java的话结果没有大区别,尤其是实例化之后的a的实例都是""。

唯一的区别是String a=new String(""); 中产生了两个""的实例,一个是显式给出的"",另外一个是用new构造的"";而String a=new String();只产生了一个new构造的默认的""。

产生这种结果的原因是Java里面,String是一个非常特殊的类型,这个特殊体现在他的每一个实例都是不可修改的。所以无论是显式的给出字符串,还是用new都会产生一个唯一的不可修改的字符串实例。

不过楼主的两种写法都晦涩难懂,尤其第一种还多产生了一个实例。建议写成普通的String a = "";语句。

当然
String a=new String(""); a为空字符
String a=new String(); a为null

String a=new String(""); a肯定是空字符串
String a=new String(); a不确定