在程序中,字符串类型是用的较多的类,String是final类。我们在创建一个String对象时,可采用两种方法:
1)String st = "abc";
2) String st = new String("abc");
这两种方法都会创建一个字符串对象,但是,效率却不一样,
第一种方法在创建String对象时,他首先是判断string共享池中有没有abc的string对象,如果有,直接将引用指向他,如果没有,他才创建string对象abc并将他放在String共享池中,当第二次再有String st = "abc";时,直接从共享池拿来,而不用从新创建,除非共享池中没有时才创建,这样提高了效率。
第二中new方法是普通的创建对象方法,对象不能共享,每new一个对象都要为他分配新的内存空间。
正因为string类型存在这一特殊性,所以我们在创建string对象时,使用第一种方法更好。
另外,由于string类型一旦创建了,内容就不在变了,如果是要经常改变的,定义为StringBuffer类型,效率更高。