关于String类型的对象初始化问题
众所周知,String是一个特殊的引用类型,那么再给它初始化的时候我通常使用这两种方式:
1.直接赋值:String s = "1234567890";
2.new对象: String s = new String("1234567890");
请问这两种方式哪一种效率更高或者有其他的好处?怎么用程序去验证这其中的差距呢??其实我最初是想用计时器去算运行的秒数,但是不知道可不可行。
笔者追加了一个程序去验证它们俩的用时,却得到了一个不想要的结果:
import java.util.Calendar;
public class String类型效率比较1 {
public static void main(String[] args) {
Calendar rightNow1 = Calendar.getInstance();
System.out.println(rightNow1.getTimeInMillis());
for(int i=1;i<=2000;i++){
String s1="12345678901";
System.out.println(s1);
}
Calendar rightNow2 = Calendar.getInstance();
System.out.println(rightNow2.getTimeInMillis());
for(int i=1;i<=2000;i++){
String s2=new String("12345678902");
System.out.println(s2);
}
Calendar c2=Calendar.getInstance();
System.out.println(c2.getTimeInMillis());
}
}
其中new String()得到的对象创建过程竟然比直接给String变量赋值过程用时短的多,为什么呢??
------解决方案--------------------String s1 = new String("12345678901")
其实创建了俩对象。
------解决方案--------------------