一個簡單的例子,可以看出Java中的String和StringBuffer在拼接字串過程中所耗費的時間和空間的情況.
package net.moon.demo;</p><p>import java.util.Date;</p><p>public class Test {<br />public static void main(String[] args) {<br />Date d = new Date();<br />String s = "";<br />long r = Runtime.getRuntime().freeMemory();<br />StringBuffer sb = new StringBuffer("");<br />for (int i = 0; i < 10000; i++) {<br />s += i;<br />}<br />System.out.println("String Memory used: "<br />+ ((r - Runtime.getRuntime().freeMemory()) / 1000) + "K");<br />System.out.println("String Time Used : "<br />+ (new Date().getTime() - d.getTime()) + " ms");<br />System.gc();<br />r = Runtime.getRuntime().freeMemory();<br />d = new Date();<br />for (int i = 0; i < 10000; i++) {<br />sb.append(i);<br />}<br />System.out.println("StringBuffer Memory used: "<br />+ ((r - Runtime.getRuntime().freeMemory()) / 1000) + "K");<br />System.out.println("StringBuffer Time Used : "<br />+ (new Date().getTime() - d.getTime()) + " ms");<br />}<br />}
運行後可以看出,String和StringBuffer之間效能的差別真的很大,不但已耗用時間上會有差別,在空間上的差別也是較大的.