如果是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不确定