锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码鲁网中文电影,亚洲伦理中文字幕,亚洲xxxxxxhttp://www.tkk7.com/achan2bj/category/52696.htmlzh-cnSat, 29 Sep 2012 12:17:47 GMTSat, 29 Sep 2012 12:17:47 GMT60ArrayList鍜孷ector鐨勬瘮杈冦愯漿銆?/title><link>http://www.tkk7.com/achan2bj/archive/2012/09/29/388819.html</link><dc:creator>achan2bj</dc:creator><author>achan2bj</author><pubDate>Sat, 29 Sep 2012 01:38:00 GMT</pubDate><guid>http://www.tkk7.com/achan2bj/archive/2012/09/29/388819.html</guid><description><![CDATA[<p><strong>Vector 榪樻槸ArrayList――鍝竴涓洿濂斤紝涓轟粈涔堬紵</strong></p><p><strong><br /></strong>瑕佸洖絳旇繖涓棶棰樹笉鑳戒竴姒傝岃錛屾湁鏃跺欎嬌鐢╒ector姣旇緝濂斤紱鏈夋椂鏄疉rrayList錛屾湁鏃跺欒繖涓や釜閮戒笉鏄?nbsp; </p><p>鏈濂界殑閫夋嫨銆備綘鍒寚鏈涜兘澶熻幏寰椾竴涓畝鍗曡偗瀹氱瓟妗堬紝鍥犱負榪欒鐪嬩綘鐢ㄥ畠浠共浠涔堛備笅闈㈡湁4涓鑰冭檻  </p><p>鐨勫洜绱狅細  </p><p>l API  </p><p>l 鍚屾澶勭悊  </p><p>l 鏁版嵁澧為暱鎬?nbsp; </p><p>l 浣跨敤妯″紡  </p><p>涓嬮潰閽堝榪?涓柟闈㈣繘琛屼竴涓鎺㈣  </p><p><strong>API </strong> </p><p>鍦ㄧ敱Ken Arnold絳夌紪钁楃殑銆奐ava Programming Language銆?Addison-Wesley, June 2000)涓涔︿腑鏈夎繖  </p><p>鏍風殑鎻忚堪錛孷ector綾諱技浜嶢rrayList.銆傛墍鏈変粠API鐨勮搴︽潵鐪嬭繖涓や釜綾婚潪甯哥浉[b]浼箋備絾浠栦滑涔嬮棿涔熻繕  </p><p>鏄湁涓浜涗富瑕佺殑鍖哄埆鐨勩?br /><strong>鍚屾鎬?/strong></p><p>Vector鏄悓姝ョ殑銆傝繖涓被涓殑涓浜涙柟娉曚繚璇佷簡Vector涓殑瀵硅薄鏄嚎紼嬪畨鍏ㄧ殑銆傝孉rrayList鍒欐槸寮傛  </p><p>鐨勶紝鍥犳ArrayList涓殑瀵硅薄騫朵笉鏄嚎紼嬪畨鍏ㄧ殑銆傚洜涓哄悓姝ョ殑瑕佹眰浼氬獎鍝嶆墽琛岀殑鏁堢巼錛屾墍浠ュ鏋滀綘涓?nbsp; </p><p>闇瑕佺嚎紼嬪畨鍏ㄧ殑闆嗗悎閭d箞浣跨敤ArrayList鏄竴涓緢濂界殑閫夋嫨錛岃繖鏍峰彲浠ラ伩鍏嶇敱浜庡悓姝ュ甫鏉ョ殑涓嶅繀瑕佺殑  </p><p>鎬ц兘寮閿銆?nbsp; </p><p><strong>鏁版嵁澧為暱</strong></p><p>浠庡唴閮ㄥ疄鐜版満鍒舵潵璁睞rrayList鍜孷ector閮芥槸浣跨敤鏁扮粍(Array)鏉ユ帶鍒墮泦鍚堜腑鐨勫璞°傚綋浣犲悜榪欎袱縐嶇被  </p><p>鍨嬩腑澧炲姞鍏冪礌鐨勬椂鍊欙紝濡傛灉鍏冪礌鐨勬暟鐩秴鍑轟簡鍐呴儴鏁扮粍鐩墠鐨勯暱搴﹀畠浠兘闇瑕佹墿灞曞唴閮ㄦ暟緇勭殑闀垮害錛?nbsp; </p><p>Vector緙虹渷鎯呭喌涓嬭嚜鍔ㄥ闀垮師鏉ヤ竴鍊嶇殑鏁扮粍闀垮害錛孉rrayList鏄師鏉ョ殑50%,鎵浠ユ渶鍚庝綘鑾峰緱鐨勮繖涓泦  </p><p>鍚堟墍鍗犵殑絀洪棿鎬繪槸姣斾綘瀹為檯闇瑕佺殑瑕佸ぇ銆傛墍浠ュ鏋滀綘瑕佸湪闆嗗悎涓繚瀛樺ぇ閲忕殑鏁版嵁閭d箞浣跨敤Vector鏈変竴  </p><p>浜涗紭鍔匡紝鍥犱負浣犲彲浠ラ氳繃璁劇疆闆嗗悎鐨勫垵濮嬪寲澶у皬鏉ラ伩鍏嶄笉蹇呰鐨勮祫婧愬紑閿銆?nbsp; </p><p><strong>浣跨敤妯″紡</strong></p><p>鍦ˋrrayList鍜孷ector涓紝浠庝竴涓寚瀹氱殑浣嶇疆錛堥氳繃绱㈠紩錛夋煡鎵炬暟鎹垨鏄湪闆嗗悎鐨勬湯灝懼鍔犮佺Щ闄や竴  </p><p>涓厓绱犳墍鑺辮垂鐨勬椂闂存槸涓鏍風殑錛岃繖涓椂闂存垜浠敤O(1)琛ㄧず銆備絾鏄紝濡傛灉鍦ㄩ泦鍚堢殑鍏朵粬浣嶇疆澧炲姞鎴栫Щ闄?nbsp; </p><p>鍏冪礌閭d箞鑺辮垂鐨勬椂闂翠細鍛堢嚎褰㈠闀匡細O(n-i)錛屽叾涓璶浠h〃闆嗗悎涓厓绱犵殑涓暟錛宨浠h〃鍏冪礌澧炲姞鎴栫Щ闄ゅ厓  </p><p>绱犵殑绱㈠紩浣嶇疆銆備負浠涔堜細榪欐牱鍛紵浠ヤ負鍦ㄨ繘琛屼笂榪版搷浣滅殑鏃跺欓泦鍚堜腑絎琲鍜岀i涓厓绱犱箣鍚庣殑鎵鏈夊厓绱?nbsp; </p><p>閮借鎵ц浣嶇Щ鐨勬搷浣溿傝繖涓鍒囨剰鍛崇潃浠涔堝憿錛?nbsp; </p><p>榪欐剰鍛崇潃錛屼綘鍙槸鏌ユ壘鐗瑰畾浣嶇疆鐨勫厓绱犳垨鍙湪闆嗗悎鐨勬湯绔鍔犮佺Щ闄ゅ厓绱狅紝閭d箞浣跨敤Vector鎴?nbsp; </p><p>ArrayList閮藉彲浠ャ傚鏋滄槸鍏朵粬鎿嶄綔錛屼綘鏈濂介夋嫨鍏朵粬鐨勯泦鍚堟搷浣滅被銆傛瘮濡傦紝LinkList闆嗗悎綾誨湪澧炲姞  </p><p>鎴栫Щ闄ら泦鍚堜腑浠諱綍浣嶇疆鐨勫厓绱犳墍鑺辮垂鐨勬椂闂撮兘鏄竴鏍風殑—O(1)錛屼絾瀹冨湪绱㈠紩涓涓厓绱犵殑浣跨敤緙烘瘮杈冩參  </p><p>錛峅(i),鍏朵腑i鏄儲寮曠殑浣嶇疆.浣跨敤ArrayList涔熷緢瀹規槗錛屽洜涓轟綘鍙互綆鍗曠殑浣跨敤绱㈠紩鏉ヤ唬鏇垮垱寤?nbsp; </p><p>iterator瀵硅薄鐨勬搷浣溿侺inkList涔熶細涓烘瘡涓彃鍏ョ殑鍏冪礌鍒涘緩瀵硅薄錛屾墍鏈変綘瑕佹槑鐧藉畠涔熶細甯︽潵棰濆鐨勫紑  </p><p>閿銆?nbsp; </p><p>鏈鍚庯紝鍦ㄣ奝ractical Java銆嬩竴涔︿腑Peter Haggar寤鴻浣跨敤涓涓畝鍗曠殑鏁扮粍錛圓rray錛夋潵浠f浛Vector  </p><p>鎴朅rrayList銆傚挨鍏舵槸瀵逛簬鎵ц鏁堢巼瑕佹眰楂樼殑紼嬪簭鏇村簲濡傛銆傚洜涓轟嬌鐢ㄦ暟緇?Array)閬垮厤浜嗗悓姝ャ侀澶?nbsp; </p><p>鐨勬柟娉曡皟鐢ㄥ拰涓嶅繀瑕佺殑閲嶆柊鍒嗛厤絀洪棿鐨勬搷浣溿?/p><img src ="http://www.tkk7.com/achan2bj/aggbug/388819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/achan2bj/" target="_blank">achan2bj</a> 2012-09-29 09:38 <a href="http://www.tkk7.com/achan2bj/archive/2012/09/29/388819.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java闈㈣瘯棰樺強絳旀錛堝熀紜棰?22閬擄紝浠g爜棰?9閬擄級 [杞琞http://www.tkk7.com/achan2bj/archive/2012/09/29/388818.htmlachan2bjachan2bjSat, 29 Sep 2012 01:31:00 GMThttp://www.tkk7.com/achan2bj/archive/2012/09/29/388818.html闃呰鍏ㄦ枃

achan2bj 2012-09-29 09:31 鍙戣〃璇勮
]]>
JAVA鐨勫綰跨▼瀹炵幇http://www.tkk7.com/achan2bj/archive/2012/09/24/388422.htmlachan2bjachan2bjMon, 24 Sep 2012 03:18:00 GMThttp://www.tkk7.com/achan2bj/archive/2012/09/24/388422.html1.JAVA澶氱嚎紼嬪疄鐜版柟寮?br />JAVA澶氱嚎紼嬪疄鐜版柟寮忎富瑕佹湁涓夌錛氱戶鎵縏hread綾匯佸疄鐜癛unnable鎺ュ彛銆佷嬌鐢‥xecutorService銆丆allable銆丗uture瀹炵幇鏈夎繑鍥炵粨鏋滅殑澶氱嚎紼嬨傚叾涓墠涓ょ鏂瑰紡綰跨▼鎵ц瀹屽悗閮芥病鏈夎繑鍥炲鹼紝鍙湁鏈鍚庝竴縐嶆槸甯﹁繑鍥炲肩殑銆?p>2.緇ф壙Thread綾誨疄鐜板綰跨▼
緇ф壙Thread綾葷殑鏂規硶灝界琚垜鍒椾負涓縐嶅綰跨▼瀹炵幇鏂瑰紡錛屼絾Thread鏈川涓婁篃鏄疄鐜頒簡Runnable鎺ュ彛鐨勪竴涓疄渚嬶紝瀹冧唬琛ㄤ竴涓嚎紼嬬殑瀹炰緥錛屽茍涓旓紝鍚姩綰跨▼鐨勫敮涓鏂規硶灝辨槸閫氳繃Thread綾葷殑start()瀹炰緥鏂規硶銆俿tart()鏂規硶鏄竴涓猲ative鏂規硶錛屽畠灝嗗惎鍔ㄤ竴涓柊綰跨▼錛屽茍鎵цrun()鏂規硶銆傝繖縐嶆柟寮忓疄鐜板綰跨▼寰堢畝鍗曪紝閫氳繃鑷繁鐨勭被鐩存帴extend Thread錛屽茍澶嶅啓run()鏂規硶錛屽氨鍙互鍚姩鏂扮嚎紼嬪茍鎵ц鑷繁瀹氫箟鐨剅un()鏂規硶銆備緥濡傦細
public class MyThread extends Thread {
銆銆public void run() {
銆銆 System.out.println("MyThread.run()");
銆銆}
}
鍦ㄥ悎閫傜殑鍦版柟鍚姩綰跨▼濡備笅錛?br />MyThread myThread1 = new MyThread();
MyThread myThread2 = new MyThread();
myThread1.start();
myThread2.start();

3.瀹炵幇Runnable鎺ュ彛鏂瑰紡瀹炵幇澶氱嚎紼?br />濡傛灉鑷繁鐨勭被宸茬粡extends鍙︿竴涓被錛屽氨鏃犳硶鐩存帴extends Thread錛屾鏃訛紝蹇呴』瀹炵幇涓涓猂unnable鎺ュ彛錛屽涓嬶細
public class MyThread extends OtherClass implements Runnable {
銆銆public void run() {
銆銆 System.out.println("MyThread.run()");
銆銆}
}
涓轟簡鍚姩MyThread錛岄渶瑕侀鍏堝疄渚嬪寲涓涓猅hread錛屽茍浼犲叆鑷繁鐨凪yThread瀹炰緥錛?br />MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
浜嬪疄涓婏紝褰撲紶鍏ヤ竴涓猂unnable target鍙傛暟緇橳hread鍚庯紝Thread鐨剅un()鏂規硶灝變細璋冪敤target.run()錛屽弬鑰僇DK婧愪唬鐮侊細
public void run() {
銆銆if (target != null) {
銆銆 target.run();
銆銆}
}

4.浣跨敤ExecutorService銆丆allable銆丗uture瀹炵幇鏈夎繑鍥炵粨鏋滅殑澶氱嚎紼?/strong>
ExecutorService銆丆allable銆丗uture榪欎釜瀵硅薄瀹為檯涓婇兘鏄睘浜嶦xecutor妗嗘灦涓殑鍔熻兘綾匯傛兂瑕佽緇嗕簡瑙xecutor妗嗘灦鐨勫彲浠ヨ闂?a >http://www.javaeye.com/topic/366591 錛岃繖閲岄潰瀵硅妗嗘灦鍋氫簡寰堣緇嗙殑瑙i噴銆傝繑鍥炵粨鏋滅殑綰跨▼鏄湪JDK1.5涓紩鍏ョ殑鏂扮壒寰侊紝紜疄寰堝疄鐢紝鏈変簡榪欑鐗瑰緛鎴戝氨涓嶉渶瑕佸啀涓轟簡寰楀埌榪斿洖鍊艱屽ぇ璐瑰懆鎶樹簡錛岃屼笖鍗充究瀹炵幇浜嗕篃鍙兘婕忔礊鐧懼嚭銆?br />鍙繑鍥炲肩殑浠誨姟蹇呴』瀹炵幇Callable鎺ュ彛錛岀被浼肩殑錛屾棤榪斿洖鍊肩殑浠誨姟蹇呴』Runnable鎺ュ彛銆傛墽琛孋allable浠誨姟鍚庯紝鍙互鑾峰彇涓涓狥uture鐨勫璞★紝鍦ㄨ瀵硅薄涓婅皟鐢╣et灝卞彲浠ヨ幏鍙栧埌Callable浠誨姟榪斿洖鐨凮bject浜嗭紝鍐嶇粨鍚堢嚎紼嬫睜鎺ュ彛ExecutorService灝卞彲浠ュ疄鐜頒紶璇翠腑鏈夎繑鍥炵粨鏋滅殑澶氱嚎紼嬩簡銆備笅闈㈡彁渚涗簡涓涓畬鏁寸殑鏈夎繑鍥炵粨鏋滅殑澶氱嚎紼嬫祴璇曚緥瀛愶紝鍦↗DK1.5涓嬮獙璇佽繃娌¢棶棰樺彲浠ョ洿鎺ヤ嬌鐢ㄣ備唬鐮佸涓嬶細

import java.util.concurrent.*;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;

/**
* Java綰跨▼錛氭湁榪斿洖鍊肩殑綰跨▼
*
* @author wb_qiuquan.ying
*/
@SuppressWarnings("unchecked")
public class Test {
public static void main(String[] args) throws ExecutionException,
    InterruptedException {
   System.out.println("----紼嬪簭寮濮嬭繍琛?---");
   Date date1 = new Date();

   int taskSize = 5;
   // 鍒涘緩涓涓嚎紼嬫睜
   ExecutorService pool = Executors.newFixedThreadPool(taskSize);
   // 鍒涘緩澶氫釜鏈夎繑鍥炲肩殑浠誨姟
   List<Future> list = new ArrayList<Future>();
   for (int i = 0; i < taskSize; i++) {
    Callable c = new MyCallable(i + " ");
    // 鎵ц浠誨姟騫惰幏鍙朏uture瀵硅薄
    Future f = pool.submit(c);
    // System.out.println(">>>" + f.get().toString());
    list.add(f);
   }
   // 鍏抽棴綰跨▼姹?br />   pool.shutdown();

   // 鑾峰彇鎵鏈夊茍鍙戜換鍔$殑榪愯緇撴灉
   for (Future f : list) {
    // 浠嶧uture瀵硅薄涓婅幏鍙栦換鍔$殑榪斿洖鍊鹼紝騫惰緭鍑哄埌鎺у埗鍙?br />    System.out.println(">>>" + f.get().toString());
   }

   Date date2 = new Date();
   System.out.println("----紼嬪簭緇撴潫榪愯----錛岀▼搴忚繍琛屾椂闂淬?
     + (date2.getTime() - date1.getTime()) + "姣銆?);
}
}

class MyCallable implements Callable<Object> {
private String taskNum;

MyCallable(String taskNum) {
   this.taskNum = taskNum;
}

public Object call() throws Exception {
   System.out.println(">>>" + taskNum + "浠誨姟鍚姩");
   Date dateTmp1 = new Date();
   Thread.sleep(1000);
   Date dateTmp2 = new Date();
   long time = dateTmp2.getTime() - dateTmp1.getTime();
   System.out.println(">>>" + taskNum + "浠誨姟緇堟");
   return taskNum + "浠誨姟榪斿洖榪愯緇撴灉,褰撳墠浠誨姟鏃墮棿銆? + time + "姣銆?;
}
}


浠g爜璇存槑錛?br />涓婅堪浠g爜涓璄xecutors綾伙紝鎻愪緵浜嗕竴緋誨垪宸ュ巶鏂規硶鐢ㄤ簬鍒涘厛綰跨▼姹狅紝榪斿洖鐨勭嚎紼嬫睜閮藉疄鐜頒簡ExecutorService鎺ュ彛銆?br />public static ExecutorService newFixedThreadPool(int nThreads)
鍒涘緩鍥哄畾鏁扮洰綰跨▼鐨勭嚎紼嬫睜銆?br />public static ExecutorService newCachedThreadPool()
鍒涘緩涓涓彲緙撳瓨鐨勭嚎紼嬫睜錛岃皟鐢╡xecute 灝嗛噸鐢ㄤ互鍓嶆瀯閫犵殑綰跨▼錛堝鏋滅嚎紼嬪彲鐢級銆傚鏋滅幇鏈夌嚎紼嬫病鏈夊彲鐢ㄧ殑錛屽垯鍒涘緩涓涓柊綰跨▼騫舵坊鍔犲埌姹犱腑銆傜粓姝㈠茍浠庣紦瀛樹腑縐婚櫎閭d簺宸叉湁 60 縐掗挓鏈浣跨敤鐨勭嚎紼嬨?br />public static ExecutorService newSingleThreadExecutor()
鍒涘緩涓涓崟綰跨▼鍖栫殑Executor銆?br />public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
鍒涘緩涓涓敮鎸佸畾鏃跺強鍛ㄦ湡鎬х殑浠誨姟鎵ц鐨勭嚎紼嬫睜錛屽鏁版儏鍐典笅鍙敤鏉ユ浛浠imer綾匯?/p>

ExecutoreService鎻愪緵浜唖ubmit()鏂規硶錛屼紶閫掍竴涓狢allable錛屾垨Runnable錛岃繑鍥濬uture銆傚鏋淓xecutor鍚庡彴綰跨▼姹犺繕娌℃湁瀹屾垚Callable鐨勮綆楋紝榪欒皟鐢ㄨ繑鍥濬uture瀵硅薄鐨刧et()鏂規硶錛屼細闃誨鐩村埌璁$畻瀹屾垚銆?/p>

achan2bj 2012-09-24 11:18 鍙戣〃璇勮
]]>
String,StringBuffer鍙奡tringBuilderhttp://www.tkk7.com/achan2bj/archive/2012/09/24/388410.htmlachan2bjachan2bjMon, 24 Sep 2012 01:44:00 GMThttp://www.tkk7.com/achan2bj/archive/2012/09/24/388410.htmlString鍜孲tringBuffer鐨勫尯鍒紝緗戜笂璧勬枡鍙互璇存槸鏁頒笉鑳滄暟錛屼絾鏄湅鍒拌繖綃囨枃绔狅紝鎰熻閲岄潰鍋氱殑灝忎緥瀛愬緢鏈変唬琛ㄦэ紝鎵浠ヨ漿涓涓嬶紝騫惰嚜宸卞仛浜嗕竴鐐規葷粨銆?/p>

鍦╦ava涓湁3涓被鏉ヨ礋璐e瓧絎︾殑鎿嶄綔銆?

1.Character 鏄繘琛屽崟涓瓧絎︽搷浣滅殑錛?/p>

2.String 瀵逛竴涓插瓧絎﹁繘琛屾搷浣溿備笉鍙彉綾匯?/p>

3.StringBuffer 涔熸槸瀵逛竴涓插瓧絎﹁繘琛屾搷浣滐紝浣嗘槸鍙彉綾匯?/p>

String:
鏄璞′笉鏄師濮嬬被鍨?
涓轟笉鍙彉瀵硅薄,涓鏃﹁鍒涘緩,灝變笉鑳戒慨鏀瑰畠鐨勫?
瀵逛簬宸茬粡瀛樺湪鐨凷tring瀵硅薄鐨勪慨鏀歸兘鏄噸鏂板垱寤轟竴涓柊鐨勫璞?鐒跺悗鎶婃柊鐨勫間繚瀛樿繘鍘?
String 鏄痜inal綾?鍗充笉鑳借緇ф壙.

StringBuffer:
鏄竴涓彲鍙樺璞?褰撳浠栬繘琛屼慨鏀圭殑鏃跺欎笉浼氬儚String閭f牱閲嶆柊寤虹珛瀵硅薄
瀹冨彧鑳介氳繃鏋勯犲嚱鏁版潵寤虹珛,
StringBuffer sb = new StringBuffer();
note:涓嶈兘閫氳繃浠樺肩鍙峰浠栬繘琛屼粯鍊?
sb = "welcome to here!";//error
瀵硅薄琚緩绔嬩互鍚?鍦ㄥ唴瀛樹腑灝變細鍒嗛厤鍐呭瓨絀洪棿,騫跺垵濮嬩繚瀛樹竴涓猲ull.鍚慡tringBuffer
涓粯鍊肩殑鏃跺欏彲浠ラ氳繃瀹冪殑append鏂規硶.
sb.append("hello");

瀛楃涓茶繛鎺ユ搷浣滀腑StringBuffer鐨勬晥鐜囪姣擲tring楂?

String str = new String("welcome to ");
str += "here";
鐨勫鐞嗘楠ゅ疄闄呬笂鏄氳繃寤虹珛涓涓猄tringBuffer,璁╀警璋冪敤append(),鏈鍚?br />鍐嶅皢StringBuffer toSting();
榪欐牱鐨勮瘽String鐨勮繛鎺ユ搷浣滃氨姣擲tringBuffer澶氬嚭浜嗕竴浜涢檮鍔犳搷浣?褰撶劧鏁堢巼涓婅鎵撴姌鎵?

騫朵笖鐢變簬String 瀵硅薄鏄笉鍙彉瀵硅薄,姣忔鎿嶄綔Sting 閮戒細閲嶆柊寤虹珛鏂扮殑瀵硅薄鏉ヤ繚瀛樻柊鐨勫?
榪欐牱鍘熸潵鐨勫璞″氨娌$敤浜?灝辮琚瀮鍦懼洖鏀?榪欎篃鏄褰卞搷鎬ц兘鐨?

鐪嬬湅浠ヤ笅浠g爜錛?br />灝?6涓嫳鏂囧瓧姣嶉噸澶嶅姞浜?000嬈★紝

  1.         String tempstr = "abcdefghijklmnopqrstuvwxyz";
  2.         int times = 5000;
  3.         long lstart1 = System.currentTimeMillis();
  4.         String str = "";
  5.         for (int i = 0; i < times; i++) {
  6.             str += tempstr;
  7.         }
  8.         long lend1 = System.currentTimeMillis();
  9.         long time = (lend1 - lstart1);
  10.         System.out.println(time);

鍙儨鎴戠殑璁$畻鏈轟笉鏄秴綰ц綆楁満錛屽緱鍒扮殑緇撴灉姣忔涓嶄竴瀹氫竴鏍蜂竴鑸負 46687宸﹀彸銆?br />涔熷氨鏄?6縐掋?br />鎴戜滑鍐嶇湅鐪嬩互涓嬩唬鐮?/p>

  1.         String tempstr = "abcdefghijklmnopqrstuvwxyz";
  2.         int times = 5000;
  3.         long lstart2 = System.currentTimeMillis();
  4.         StringBuffer sb = new StringBuffer();
  5.         for (int i = 0; i < times; i++) {
  6.             sb.append(tempstr);
  7.         }
  8.         long lend2 = System.currentTimeMillis();
  9.         long time2 = (lend2 - lstart2);
  10.         System.out.println(time2);

寰楀埌鐨勭粨鏋滀負 16 鏈夋椂榪樻槸 0
鎵浠ョ粨璁哄緢鏄庢樉錛孲tringBuffer 鐨勯熷害鍑犱箮鏄疭tring 涓婁竾鍊嶃傚綋鐒惰繖涓暟鎹笉鏄緢鍑嗙‘銆傚洜涓哄驚鐜殑嬈℃暟鍦?00000嬈$殑鏃跺欙紝宸紓鏇村ぇ銆備笉淇′綘璇曡瘯銆?/p>

鏍規嵁涓婇潰鎵璇達細

str += "here";
鐨勫鐞嗘楠ゅ疄闄呬笂鏄氳繃寤虹珛涓涓猄tringBuffer,璁╀警璋冪敤append(),鏈鍚?br />鍐嶅皢StringBuffer toSting();

鎵浠tr += "here";鍙互絳夊悓浜?/p>

StringBuffer sb = new StringBuffer(str);

sb.append("here");

str = sb.toString();

鎵浠ヤ笂闈㈢洿鎺ュ埄鐢?+"鏉ヨ繛鎺tring鐨勪唬鐮佸彲浠ュ熀鏈瓑鍚屼簬浠ヤ笅浠g爜

  1.         String tempstr = "abcdefghijklmnopqrstuvwxyz";
  2.         int times = 5000;
  3.         long lstart2 = System.currentTimeMillis();
  4.         String str = "";
  5.         for (int i = 0; i < times; i++) {
  6.             StringBuffer sb = new StringBuffer(str);
  7.             sb.append(tempstr);
  8.             str = sb.toString();
  9.         }
  10.         long lend2 = System.currentTimeMillis();
  11.         long time2 = (lend2 - lstart2);
  12.         System.out.println(time2);

騫沖潎鎵ц鏃墮棿涓?6922宸﹀彸錛屼篃灝辨槸46縐掋?/p>

鎬葷粨: 濡傛灉鍦ㄧ▼搴忎腑闇瑕佸瀛楃涓茶繘琛岄綣佺殑淇敼榪炴帴鎿嶄綔鐨勮瘽.浣跨敤StringBuffer鎬ц兘浼氭洿楂?br />
===========================================================================================


鑷粠Java 5.0鍙戝竷浠ュ悗錛屾垜浠殑姣旇緝鍒楄〃涓婂皢澶氬嚭涓涓璞′簡錛岃繖灝辨槸StringBuilder綾匯係tring綾繪槸涓嶅彲鍙樼被錛屼換浣曞String鐨勬敼鍙橀兘浼氬紩鍙戞柊鐨凷tring瀵硅薄鐨勭敓鎴愶紱鑰孲tringBuffer鍒欐槸鍙彉綾伙紝浠諱綍瀵瑰畠鎵鎸囦唬鐨勫瓧絎︿覆鐨勬敼鍙橀兘涓嶄細浜х敓鏂扮殑瀵硅薄錛屽彲鍙樺拰涓嶅彲鍙樼被榪欎竴瀵瑰璞″凡緇忛綈鍏ㄤ簡錛岄偅涔堜負浠涔堣繕瑕佸紩鍏ユ柊鐨凷tringBuilder綾誨共鍚楋紵鐩鎬俊澶у閮芥湁姝ょ枒闂紝鎴戜篃濡傛銆備笅闈紝鎴戜滑灝辨潵鐪嬬湅寮曞叆璇ョ被鐨勫師鍥犮?

      涓轟粈涔堜細鍑虹幇閭d箞澶氭瘮杈僑tring鍜孲tringBuffer鐨勬枃绔狅紵

      鍘熷洜鍦ㄤ簬褰撴敼鍙樺瓧絎︿覆鍐呭鏃訛紝閲囩敤StringBuffer鑳借幏寰楁洿濂界殑鎬ц兘銆傛棦鐒舵槸涓轟簡鑾峰緱鏇村ソ鐨勬ц兘錛岄偅涔堥噰鐢⊿tringBuffer鑳藉鑾峰緱鏈濂界殑鎬ц兘鍚楋紵

      絳旀鏄疦O錛?

      涓轟粈涔堬紵

      濡傛灉浣犺榪囥奣hink in Java銆嬶紝鑰屼笖瀵歸噷闈㈡弿榪癏ashTable鍜孒ashMap鍖哄埆鐨勯偅閮ㄥ垎绔犺妭姣旇緝鐔熸倝鐨勮瘽錛屼綘涓瀹氫篃鏄庣櫧浜嗗師鍥犳墍鍦ㄣ傚錛屽氨鏄敮鎸佺嚎紼嬪悓姝ヤ繚璇佺嚎紼嬪畨鍏ㄨ屽鑷存ц兘涓嬮檷鐨勯棶棰樸?span style="color: red;">HashTable鏄嚎紼嬪畨鍏ㄧ殑錛屽緢澶氭柟娉曢兘鏄痵ynchronized鏂規硶錛岃孒ashMap涓嶆槸綰跨▼瀹夊叏鐨勶紝浣嗗叾鍦ㄥ崟綰跨▼紼嬪簭涓殑鎬ц兘姣擧ashTable瑕侀珮銆係tringBuffer鍜孲tringBuilder綾葷殑鍖哄埆涔熷湪浜庢錛?span style="color: red;">鏂板紩鍏ョ殑StringBuilder綾諱笉鏄嚎紼嬪畨鍏ㄧ殑錛屼絾鍏跺湪鍗曠嚎紼嬩腑鐨勬ц兘姣擲tringBuffer楂?/span>銆傚鏋滀綘瀵規涓嶅お鐩鎬俊錛屽彲浠ヨ瘯璇曚笅闈㈢殑渚嬪瓙錛?/p>

package com.hct.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* @author: chengtai.he
* @created:2009-12-9 涓婂崍09:59:57
*/
public class StringBuilderTester {
private static final String base = " base string. ";
private static final int count = 2000000;

public static void stringTest() {
  long begin, end;
  begin = System.currentTimeMillis();
  String test = new String(base);
  for (int i = 0; i < count/100; i++) {
   test = test + " add ";
  }
  end = System.currentTimeMillis();
  System.out.println((end - begin)
    + " millis has elapsed when used String. ");
}

public static void stringBufferTest() {
  long begin, end;
  begin = System.currentTimeMillis();
  StringBuffer test = new StringBuffer(base);
  for (int i = 0; i < count; i++) {
   test = test.append(" add ");
  }
  end = System.currentTimeMillis();
  System.out.println((end - begin)
    + " millis has elapsed when used StringBuffer. ");
}

public static void stringBuilderTest() {
  long begin, end;
  begin = System.currentTimeMillis();
  StringBuilder test = new StringBuilder(base);
  for (int i = 0; i < count; i++) {
   test = test.append(" add ");
  }
  end = System.currentTimeMillis();
  System.out.println((end - begin)
    + " millis has elapsed when used StringBuilder. ");
}

public static String appendItemsToStringBuiler(List list) {
  StringBuilder b = new StringBuilder();

  for (Iterator i = list.iterator(); i.hasNext();) {
   b.append(i.next()).append(" ");
  }

  return b.toString();
}

public static void addToStringBuilder() {
  List list = new ArrayList();
  list.add(" I ");
  list.add(" play ");
  list.add(" Bourgeois ");
  list.add(" guitars ");
  list.add(" and ");
  list.add(" Huber ");
  list.add(" banjos ");

  System.out.println(StringBuilderTester.appendItemsToStirngBuffer(list));
}

public static String appendItemsToStirngBuffer(List list) {
  StringBuffer b = new StringBuffer();

  for (Iterator i = list.iterator(); i.hasNext();) {
   b.append(i.next()).append(" ");
  }

  return b.toString();
}

public static void addToStringBuffer() {
  List list = new ArrayList();
  list.add(" I ");
  list.add(" play ");
  list.add(" Bourgeois ");
  list.add(" guitars ");
  list.add(" and ");
  list.add(" Huber ");
  list.add(" banjos ");

  System.out.println(StringBuilderTester.appendItemsToStirngBuffer(list));
}

public static void main(String[] args) {
  stringTest();
  stringBufferTest();
  stringBuilderTest();
  addToStringBuffer();
  addToStringBuilder();
}
}

涓婇潰鐨勭▼搴忕粨鏋滃涓嬶細
5266 millis has elapsed when used String.
375 millis has elapsed when used StringBuffer.
281 millis has elapsed when used StringBuilder.
I   play   Bourgeois   guitars   and   Huber   banjos 
I   play   Bourgeois   guitars   and   Huber   banjos
浠庝笂闈㈢殑緇撴灉鏉ョ湅錛岃繖涓変釜綾誨湪鍗曠嚎紼嬬▼搴忎腑鐨勬ц兘宸埆涓鐩簡鐒訛紝閲囩敤String瀵硅薄鏃訛紝鍗充嬌榪愯嬈℃暟浠呮槸閲囩敤鍏朵粬瀵硅薄鐨?/100錛屽叾鎵ц鏃墮棿浠嶇劧姣斿叾浠栧璞¢珮鍑?5鍊嶄互涓婏紱鑰岄噰鐢⊿tringBuffer瀵硅薄鍜岄噰鐢⊿tringBuilder瀵硅薄鐨勫樊鍒篃姣旇緝鏄庢樉錛屽墠鑰呮槸鍚庤呯殑1.5鍊嶅乏鍙熾傜敱姝ゅ彲瑙侊紝濡傛灉鎴戜滑鐨勭▼搴忔槸鍦ㄥ崟綰跨▼涓嬭繍琛岋紝鎴栬呮槸涓嶅繀鑰冭檻鍒扮嚎紼嬪悓姝ラ棶棰橈紝鎴戜滑搴旇浼樺厛浣跨敤StringBuilder綾伙紱褰撶劧錛屽鏋滆淇濊瘉綰跨▼瀹夊叏錛岃嚜鐒墮潪StringBuffer鑾睘浜嗐?/p>

闄や簡瀵瑰綰跨▼鐨勬敮鎸佷笉涓鏍峰錛岃繖涓や釜綾葷殑浣跨敤鍑犱箮娌℃湁浠諱綍宸埆錛屼笂闈㈢殑渚嬪瓙灝辨槸涓緢濂界殑璇存槑銆俛ppendItemsToStringBuiler鍜宎ppendItemsToStirngBuffer涓や釜鏂規硶闄や簡閲囩敤鐨勫璞″垎鍒負StringBuilder鍜孲tringBuffer澶栵紝鍏朵粬瀹屽叏鐩稿悓錛岃屾晥鏋滀篃瀹屽叏鐩稿悓銆?/p>




achan2bj 2012-09-24 09:44 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 又粗又黄又猛又爽大片免费| 另类免费视频一区二区在线观看 | 国产免费久久精品丫丫| 男女啪啪永久免费观看网站| 亚洲综合激情五月丁香六月| 免费爱爱的视频太爽了| 亚洲A∨精品一区二区三区下载| 国产免费AV片无码永久免费| 国产精品亚洲va在线观看| 亚洲国产成人久久综合一区77 | 99热在线免费播放| 亚洲色偷偷偷网站色偷一区| 久九九精品免费视频| 国产精品亚洲综合久久| 国产成人啪精品视频免费网| 黄色a三级免费看| 亚洲精品美女久久777777| 无码国产精品一区二区免费16| 亚洲第一页在线播放| 成年女人毛片免费播放视频m| 亚洲AV成人一区二区三区观看| xvideos亚洲永久网址| 香蕉免费看一区二区三区| 久久亚洲精品无码AV红樱桃| www.黄色免费网站| 麻豆91免费视频| 亚洲AV午夜福利精品一区二区| 午夜国产精品免费观看| 真人无码作爱免费视频| 亚洲色婷婷六月亚洲婷婷6月 | 国产一级淫片免费播放电影| 精品一区二区三区免费观看| 亚洲黄色网站视频| 日韩精品视频免费网址| 国产精品免费久久久久久久久 | 亚洲精品视频在线观看你懂的| 中文字幕在线免费观看视频| 亚洲尹人香蕉网在线视颅| 妞干网免费视频在线观看| 日本高清不卡aⅴ免费网站| 亚洲av一本岛在线播放|