锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一本天堂ⅴ无码亚洲道久久,亚洲国产成人精品女人久久久 ,亚洲成A人片在线观看中文 http://www.tkk7.com/weiwei/category/53448.html鍚堟姳涔嬫湪錛岀敓浜庢鏈紱涔濆眰涔嬪彴錛岃搗浜庣瘡鍦燂紱鍗冮噷涔嬭錛屽浜庤凍涓嬨?/description>zh-cnSat, 12 Oct 2013 06:29:56 GMTSat, 12 Oct 2013 06:29:56 GMT60JAVA鍨冨溇鍥炴敹http://www.tkk7.com/weiwei/articles/404814.htmlliwei5891liwei5891Wed, 09 Oct 2013 13:35:00 GMThttp://www.tkk7.com/weiwei/articles/404814.htmlhttp://www.tkk7.com/weiwei/comments/404814.htmlhttp://www.tkk7.com/weiwei/articles/404814.html#Feedback0http://www.tkk7.com/weiwei/comments/commentRss/404814.htmlhttp://www.tkk7.com/weiwei/services/trackbacks/404814.html鍝簺鍐呭瓨闇瑕佸洖鏀訛紵
浠涔堟椂鍊欏洖鏀訛紵
濡備綍鍥炴敹錛?/div>
涓錛氬摢浜涘唴瀛橀渶瑕佸洖鏀訛紵
JAVA鍐呭瓨涓笉闇瑕佽冭檻鍐呭瓨鍥炴敹闂鐨勫尯鍩燂細
紼嬪簭璁℃暟鍣ㄣ佽櫄鎷熸満鏍堬紝鏈湴鏂規硶鏍?/div>
錛堥殢綰跨▼鐢熺伃錛屾爤甯у垎閰嶅灝戝唴瀛樺湪綾葷粨鏋勭‘瀹氭槸灝卞凡鐭ワ紝鍥犳瀹冧滑鐨勫唴瀛樺垎閰嶄笌鍥炴敹鍏峰紜畾鎬с傛柟娉曠粨鏉熸垨綰跨▼緇撴潫鏃訛紝鍐呭瓨鑷劧灝辮窡鐫鍥炴敹浜嗭級
闇瑕佽冭檻鍐呭瓨鍥炴敹闂鐨勫尯鍩燂細
JAVA鍫嗗拰鏂規硶鍖?/div>
(鍒涘緩鍝簺瀵硅薄錛屽垱寤哄灝戝璞★紝闇瑕佸湪榪愯鏈熼棿鎵嶇煡閬撱備笉鍐嶇敤鍒涘緩瀵硅薄鐨勭被瀹氫箟瑕佷粠鏂規硶鍖哄洖鏀?
浜岋細鍫嗕腑瀵硅薄鐨勫洖鏀?/div>
姝誨幓鐨勫璞℃墠浼氳鍥炴敹
濡備綍鍒ゆ柇瀵硅薄宸叉
a.寮曠敤璁℃暟綆楁硶錛?/div>
緇欏璞℃坊鍔犱竴涓紩鐢ㄨ鏁板櫒錛屾瘡褰撴湁涓涓湴鏂瑰紩鐢ㄥ畠鏃訛紝璁℃暟鍣ㄥ煎氨鍔?銆傚紩鐢ㄥけ鏁堟椂錛岃鏁板櫒鍊煎氨鍑?.浠諱綍鏃跺欒鏁板櫒涓?鐨勫璞″氨鏄笉鍙兘鍐嶈浣跨敤鐨勩?/div>
浼樼偣錛氬紩鐢ㄨ鏁扮畻娉曞疄鐜扮畝鍗曪紝鍒ゅ畾鏁堢巼涔熼珮銆?浣跨敤鍦–OM,FlashPlayer,Python絳夎璦涓?
緙虹偣錛氬畠寰堥毦瑙e喅瀵硅薄涔嬮棿鐩鎬簰寰幆寮曠敤鐨勯棶棰樸傦紙鍥犳JAVA涓病鏈夐夌敤瀹冩潵綆$悊鍐呭瓨錛?/div>
b.鏍規悳绱㈢畻娉?/div>
瀵逛簬浠諱綍"GC Roots"閮芥病鏈夎礬寰勫埌杈懼璞℃椂錛岃瀵硅薄灝辨槸涓嶅彲鐢ㄧ殑銆?/div>
涓繪祦鐨勭▼搴忚璦閮界敤鐨勬槸鏍規悳绱㈢畻娉曪紝鍖呮嫭JAVA璇█銆?/div>
鍝簺瀵硅薄鎵嶆槸"GC銆Roots"
  • 铏氭嫙鏈烘爤(鏍堝撫涓殑鏈湴鍙橀噺琛?涓紩鐢ㄧ殑瀵硅薄
  • 鏂規硶鍖轟腑鐨勭被闈欐佸睘鎬у紩鐢ㄧ殑瀵硅薄
  • 鏂規硶鍖轟腑鐨勫父閲忓紩鐢ㄧ殑瀵硅薄
  • 鏈湴鏂規硶鏍堜腑JNI鐨勫紩鐢ㄧ殑瀵硅薄
JAVA涓殑寮曠敤鍒嗕負錛氬己寮曠敤錛圫trong Reference錛夈佽蔣寮曠敤錛圫oft Reference錛夈佸急寮曠敤錛圵eak Reference錛夈佽櫄寮曠敤錛圥hantom Reference錛夊洓縐嶏紝寮哄害渚濇鍑忓急
  • 寮哄紩鐢細浠g爜涓瓨鍦紝綾諱技 "Object obj = new Object()"榪欑被銆傚彧瑕佸己寮曠敤瀛樺湪錛孏C灝辨案榪滀笉浼氬洖鏀舵帀琚紩鐢ㄧ殑瀵硅薄銆?/li>
  • 杞紩鐢細鎻忚堪涓浜涜繕鏈夌敤錛屼絾闈炲繀闇鐨勫璞°傚湪緋葷粺灝嗚鍙戠敓鍐呭瓨婧㈠嚭寮傚父涔嬪墠錛屽皢鎶婅繖浜涘璞″垪榪涘洖鑼冨洿涔嬩腑騫惰繘琛岀浜屾鍥炴敹銆傚鏋滆繖嬈″洖鏀惰繕娌℃湁瓚沖鐨勫唴瀛橈紝鎵嶄細鎶涘嚭鍐呭瓨婧㈠嚭寮傚父銆傞氳繃 SoftReference綾繪潵瀹炵幇杞紩鐢ㄣ?/li>
  • 寮卞紩鐢細涔熺敤浜庢弿榪伴潪蹇呴渶瀵硅薄錛屼絾瀹冪殑寮哄害瑕佹瘮杞紩鐢ㄦ洿寮變竴浜涳紝琚急寮曠敤鍏寵仈鐨勫璞″彧鑳界敓鎴愬埌涓嬩竴嬈C鍙戠敓涔嬪墠銆傚綋GC宸ヤ綔鏃訛紝鏃犺褰撳墠鍐呭瓨鏄惁瓚沖錛岄兘浼氬洖鏀跺急寮曠敤鍏寵仈鐨勫璞°傞氳繃 WeakReference綾繪潵瀹炵幇寮卞紩鐢?/li>
  • 铏氬紩鐢細涔熺О涓哄菇鐏靛紩鐢ㄦ垨騫誨獎寮曠敤銆傝緗櫄寮曠敤鍏寵仈鐨勫敮涓鐩綍灝辨槸甯屾湜榪欎釜瀵硅薄琚洖鏀舵椂鏀跺埌涓涓郴緇熼氱煡銆傞氳繃PhantomReference鏉ュ疄鐜拌櫄寮曠敤
絀剁珶浠涔堟牱鐨勫璞℃墠浼氭鎺夊憿錛?/div>
瑕佺湡姝e鍛婁竴涓璞℃浜★紝鑷沖皯瑕佺粡鍘嗕袱嬈℃爣璁拌繃紼?/strong>錛氬鏋滃璞″湪榪涜鏍規悳绱㈠悗鍙戠幇娌℃湁涓?GC Roots 鐩歌繛鎺ョ殑寮曠敤閾撅紝閭e畠灝嗕細琚涓嬈℃爣璁板茍鏀懼埌“鍗沖皢琚洖鏀剁殑闆嗗悎”涓?/div>
涓庢鍚屾椂榪涜涓嬈$瓫閫夛紝絳涢夌殑鏉′歡鏄瀵硅薄鏄惁鏈夊繀瑕佹墽琛?finalize() 鏂規硶銆?褰撳璞℃病鏈夎鐩?finalize()鏂規硶錛屾垨鑰?finalize() 鏂規硶宸茬粡琚櫄鎷熸満璋冪敤榪囷紝铏氭嫙鏈哄皢榪欎袱縐嶆儏鍐甸兘瑙嗕負 "娌℃湁蹇呰鎵ц"銆?濡傛灉榪欎釜瀵硅薄琚垽瀹氫負鏈夊繀瑕佹墽琛?finalize()鏂規硶錛岄偅涔堣繖涓璞″皢浼氳鏀劇疆鍒頒竴涓悕涓?F-Queue 鐨勯槦鍒椾箣涓紝灝嗗湪紼嶅悗鐢變竴鏉$敱铏氭嫙鏈鴻嚜鍔ㄥ緩绔嬬殑錛屼綆浼樺厛綰х殑 Finalizer 綰跨▼鍘繪墽琛岋紙瑙﹀彂finalize()鏂規硶鑰屼笉絳夊緟錛夈俧inalize()鏂規硶鏄璞¢冭劚姝諱骸鍛借繍鐨勬渶鍚庝竴嬈℃満浼氥傚璞¤鍦╢inalize()鏂規硶涓嫰鏁戣嚜宸憋紝鍙閲嶆柊涓庡紩鐢ㄩ摼涓婁換浣曚竴涓璞″緩绔嬪叧鑱斿嵆鍙紝榪欐牱鐨勮瘽絎簩嬈℃爣璁版椂瀹冭縐婚櫎鍑?#8220;鍗沖皢鍥炴敹鐨勯泦鍚?#8221;銆傚鏋滃璞¤繖涓椂鍊欒繕娌℃湁閫冭劚錛岄偅灝辯湡鐨勭姝諱笉榪滀簡銆?/div>
涓夛細鏂規硶鍖虹殑鍥炴敹
涓昏鍥炴敹涓ら儴浠藉唴瀹癸細搴熷純甯擱噺銆佹棤鐢ㄧ殑綾?/div>
甯擱噺鍥炴敹涓庡爢涓璞″洖鏀剁被浼箋?/div>
鏃犵敤鐨勭被鐨勫垽鏂渶鍚屾椂婊¤凍3鏉★細
  • 璇ョ被鎵鏈夌殑瀹炰緥閮藉凡緇忚鍥炴敹錛屼篃灝辨槸璇村爢涓笉瀛樺湪璇ョ被鐨勪換浣曞疄渚?/li>
  • 鍔犺澆璇ョ被鐨?ClassLoader 宸茬粡琚洖鏀?/li>
  • 璇ョ被瀵瑰簲鐨?java.lang.Class 瀵硅薄娌℃湁鍦ㄤ換浣曞湴鏂硅寮曠敤錛屾棤娉曞湪浠諱綍鍦版柟閫氳繃鍙嶅皠璁塊棶璇ョ被鐨勬柟娉?/li>
铏氭嫙鏈哄婊¤凍涓婅堪3涓潯浠剁殑鏃犵敤綾昏繘琛屽洖鏀躲傦紙鍙槸鍙互錛屼笉浼氭槸蹇呯劧鍥炴敹錛夋槸鍚﹀綾昏繘琛屽洖鏀訛紝HotSpot铏氭嫙鏈轟簡 -Xnoclassgc鍙傛暟榪涜鎺у埗銆傝繕鍙互浣跨敤 -verbose:class 鍙?XX:+TraceClassLoading 鍜?-XX:+TraceClassUnLoading鏌ョ湅綾葷殑鍔犺澆鍜屽嵏杞戒俊鎭?/div>
鍥涳細鍨冨溇鏀墮泦綆楁硶
4.1 鏍囪-娓呴櫎綆楁硶
鏍囪鍑烘墍鏈夐渶瑕佸洖鏀剁殑瀵硅薄錛屾爣璁板畬鎴愬悗緇熶竴鍥炴敹鎺夋墍鏈夎鏍囪鐨勫璞°傦紙濡備綍鏍囪鍦ㄥ爢瀵硅薄鍥炴敹閮ㄥ垎鏈変粙緇嶏級
瀹冩槸鏈鍩虹鐨勬敹闆嗙畻娉曪紝鍚庣畫鏀墮泦綆楁硶閮芥槸鍩轟簬榪欑鎬濊礬鏀硅繘鑰屽緱鍒般?/div>
緙虹偣錛氭晥鐜囦笉楂橈紝浜х敓澶ч噺涓嶈繛緇殑鍐呭瓨紕庣墖銆?/div>
錛堢┖闂寸鐗囧お澶氾紝鍒嗛厤杈冨ぇ瀵硅薄鏃跺氨鏃犳硶鎵懼埌瓚沖榪炵畫鍐呭瓨絀洪棿錛岃屼笉寰椾笉鎻愬墠瑙﹀彂鍙︿竴嬈″瀮鍦炬敹闆嗗姩浣滐級
4.2 澶嶅埗綆楁硶
錛堜負瑙e喅鏁堢巼闂錛?/div>
灝嗗唴瀛樻寜瀹歸噺鍒掑垎涓哄ぇ灝忕浉絳夌殑涓ゅ潡錛屾瘡嬈″彧浣跨敤鍏朵腑鐨勪竴鍧椼傚綋榪欎竴鍧楀唴瀛樼敤瀹屼簡錛屽氨灝嗚繕瀛樻椿鐫鐨勫璞″鍒跺埌鍙︿竴鍧椾笂闈紝鐒跺悗鍐嶆妸宸蹭嬌鐢ㄨ繃鐨勫唴瀛樼┖闂翠竴嬈℃竻鐞嗘帀銆?/div>
浼樼偣錛氬唴瀛樺垎閰嶆椂涓嶇敤鑰冭檻紕庣墖鐨勯棶棰橈紝瀹炵幇綆鍗曪紝榪愯楂樻晥
緙虹偣錛氬唴瀛樼緝灝忎負鍘熸潵鐨勪竴鍗娿?/div>
褰撳璞″瓨媧葷巼杈冮珮鏃訛紝闇瑕佽緝澶氱殑澶嶅埗鎿嶄綔錛屾晥鐜囧皢浼氬彉浣庛傝嫢涓嶆兂嫻垂50%鐨勭┖闂達紝闇瑕侀澶栫殑絀洪棿榪涜鍒嗛厤鎷呬繚
鐜板湪鐨勫晢涓氳櫄鎷熸満閮介噰鐢ㄨ繖縐嶆敹闆嗙畻娉曟潵鍥炴敹鏂扮敓浠?IBM鐮旂┒琛ㄦ槑錛屾柊鐢熶唬瀵硅薄98%鏄湞澶曟鐨?銆備笉榪囷紝騫朵笉鏄寜1錛?鐨勬瘮渚嬫潵鍒掑垎鍐呭瓨絀洪棿銆傝屾槸灝嗗唴瀛樺垎涓轟竴鍧楄緝澶х殑 Eden 絀洪棿 鍜屼袱鍧楄緝灝忕殑Survivor絀洪棿銆傛瘡嬈″彧浣跨敤 Eden 鍜屽叾涓殑涓鍧桽urvivor銆傚綋鍥炴敹鏃訛紝灝咵den鍜孲urvivor涓繕瀛樻椿鐫鐨勫璞′竴嬈℃ф嫹璐濆埌鍙﹀涓鍧桽urvivor絀洪棿涓婏紝鏈鍚庢竻鐞嗘帀鍒氭墠鐨凟den鍜孲urvivor銆傞粯璁den鍜孲urvivor姣斾緥鏄?8:1銆傦紙98%鏄竴鑸満鏅紝鍙﹀涓浜涘満鏅笅錛屽綋Survivor絀洪棿涓嶅鏃訛紝闇渚濊禆鍏跺畠鍐呭瓨銆愯佸勾浠c戣繘琛屽垎閰嶆媴淇濓級
4.3 鏍囪-鏁寸悊綆楁硶
澶嶅埗綆楁硶鐨勭己鐐癸紝鍐沖畾鑰佸勾浠d笉鑳戒嬌鐢ㄥ鍒剁畻娉?/div>
鏍規嵁鑰佸勾浠g壒鐐癸紝鎻愬嚭浜?#8220;鏍囪-鏁寸悊綆楁硶”銆?/div>
鏍囪榪囩▼浠嶇劧涓?#8220;鏍囪-娓呴櫎”綆楁硶涓鏍鳳紝浣嗗悗緇楠や笉鏄洿鎺ュ鍙洖鏀跺璞¤繘琛屾竻鐞嗭紝鑰屾槸璁╂墍鏈夊瓨媧葷殑瀵硅薄閮藉悜涓绔Щ鍔紝鐒跺悗鐩存帴娓呯悊鎺夌杈圭晫浠ュ鐨勫唴瀛樸?/div>
4.4 鍒嗕唬鏀墮泦綆楁硶
褰撳墠铏氭嫙鏈虹殑鍨冨溇鏀墮泦閮介噰鐢?#8220;鍒嗕唬鏀墮泦”綆楁硶銆?/div>
鏍規嵁瀵硅薄鐨勫瓨媧誨懆鏈熷皢鍐呭瓨鍒掑垎涓哄嚑鍧椼備竴鑸皢鍫嗗垎涓烘柊鐢熶唬鍜岃佸勾浠o紝榪欐牱鏍規嵁鍚勪釜騫翠唬鐨勭壒鐐歸噰鐢ㄦ渶閫傚綋鐨勬敹闆嗙畻娉曘?/div>
鏂扮敓浠i噰鐢ㄥ鍒剁畻娉?/div>
鑰佸勾浠i噰鐢?#8220;鏍囪-娓呯悊”鎴?#8220;鏍囪-鏁寸悊”綆楁硶
浜旓細鍨冨溇鏀墮泦鍣?/div>
綆楁硶鏄唴瀛樺洖鏀剁殑鏂規硶璁猴紝鍨冨溇鏀墮泦鍣ㄦ槸鍐呭瓨鍥炴敹鐨勫叿浣撳疄鐜般?/div>
Serial鏀墮泦鍣?/div>
緙虹偣錛氬崟綰跨▼鏀墮泦鍣紝鍨冨溇鏀墮泦鏃跺繀欏繪殏鍋滃叾瀹冩墍鏈夌殑宸ヤ綔綰跨▼錛圫top the world錛夈?/div>
浼樼偣錛氱畝鍗曡岄珮鏁堬紝瀵逛簬Client妯″紡涓嬬殑铏氭嫙鏈烘潵璇存槸涓涓緢濂界殑閫夋嫨銆傦紙涔熸槸Client妯″紡涓嬬殑榛樿鏂扮敓浠f敹闆嗗櫒錛?/div>
ParNew 鏀墮泦鍣?/div>
鍏跺疄灝辨槸 Serial 鏀墮泦鍣ㄧ殑澶氱嚎紼嬬増鏈?/div>
鏄疭erver妯″紡涓嬬殑铏氭嫙鏈虹殑棣栭夋柊鐢熶唬鏀墮泦鍣ㄣ傦紙涓涓噸瑕佸師鍥犳槸錛岀洰鍓嶉櫎浜哠erial鏀墮泦鍣ㄥ錛屽彧鏈夊畠鑳戒笌CMS鏀墮泦鍣ㄩ厤鍚堝伐浣滐級
Paraller Scavenge 鏀墮泦鍣?/div>
騫惰鐨勫綰跨▼鏀墮泦鍣?/div>
瀹冪殑鍏蟲敞鐐逛笌鍏跺畠鏀墮泦鍣ㄧ殑涓嶅悓錛屽畠鍏蟲敞鐨勬槸鍚炲悙閲?/div>
鍚炲悙閲?榪愯鐢ㄦ埛浠g爜鏃墮棿/(榪愮敤鐢ㄦ埛浠g爜鏃墮棿+鍨冨溇鏀墮泦鏃墮棿)
Serial Old 鏀墮泦鍣?/div>
鏄疭erial鏀墮泦鍣ㄧ殑鑰佸勾浠g増鏈紝鍚屾牱鏄崟綰跨▼鏀墮泦鍣ㄣ備嬌鐢?#8220;鏍囪-鏁寸悊”綆楁硶
Parallel Old 鏀墮泦鍣?/div>
鏄疨arallel Scavenge鏀墮泦鍣ㄧ殑鑰佸勾浠g増鏈紝浣跨敤澶氱嚎鍜屽拰“鏍囪-鏁寸悊綆楁硶”錛孞DK1.6鎵嶆彁渚涖?/div>
娉ㄩ噸鍚炲悙閲忓強CPU璧勬簮鏁忔劅鐨勫満鍚堬紝鍙互浼樺厛鑰冭檻Parallel Scavenge鍔燩arallel Old緇勫悎銆?/div>
CMS鏀墮泦鍣?錛圕oncurrent Mark Sweep錛?/div>
鏄竴縐嶄互鑾峰彇鏈鐭洖鏀跺仠欏挎椂闂翠負鐩爣鐨勬敹闆嗗櫒銆?/div>
瀵逛簬B/S綾婚噸瑙嗘湇鍔″櫒鍝嶅簲閫熷害錛屽笇鏈涘仠欏挎椂闂存渶鐭被搴旂敤灝辨瘮杈冮傚悎銆?/div>
鍩轟簬“鏍囪-娓呴櫎綆楁硶瀹炵幇”
鍐呭瓨鍥炴敹榪囩▼涓庣敤鎴風嚎紼嬭搗騫跺彂鐨勬墽琛屻?/div>
緙虹偣錛?/div>
瀵笴PU璧勬簮闈炲父鏁忔劅銆?/div>
鏃犳硶澶勭悊嫻姩鍨冨溇
鏀墮泦緇撴潫鏃朵細浜х敓澶ч噺絀洪棿紕庣墖
G1鏀墮泦鍣紙Garbage First錛塦
JDK1.7姝e紡鍙戝竷鏃訛紝寰堝彲鑳戒細鏈変竴涓垚鐔熺殑鍟嗕笟鐗堟湰闅忎箣鍙戝竷銆?/div>
鐩稿CMS鐨勬敼榪涳細
鍩轟簬“鏍囪-鏁寸悊”綆楁硶瀹炵幇錛屼笉浼氫駭鐢熺┖闂寸鐗?/div>
鍙互闈炲父綺劇‘鐨勬帶鍒跺仠欏?/div>
鍙互瀹炵幇鍩烘湰涓嶇壓鐗插悶鍚愰噺鐨勫墠鎻愪笅瀹屾垚浣庡仠欏跨殑鍐呭瓨鍥炴敹


liwei5891 2013-10-09 21:35 鍙戣〃璇勮
]]>Enum綆鍗曚緥瀛?/title><link>http://www.tkk7.com/weiwei/articles/342916.html</link><dc:creator>liwei5891</dc:creator><author>liwei5891</author><pubDate>Thu, 13 Jan 2011 03:47:00 GMT</pubDate><guid>http://www.tkk7.com/weiwei/articles/342916.html</guid><wfw:comment>http://www.tkk7.com/weiwei/comments/342916.html</wfw:comment><comments>http://www.tkk7.com/weiwei/articles/342916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/weiwei/comments/commentRss/342916.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/weiwei/services/trackbacks/342916.html</trackback:ping><description><![CDATA[Enum<br /><br /><div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080"> 1</span> <span style="color: #0000ff">package</span><span style="color: #000000"> com.study.enums;<br /></span><span style="color: #008080"> 2</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 3</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 4</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 5</span> <span style="color: #000000"></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">enum</span><span style="color: #000000"> SexEnum {<br /></span><span style="color: #008080"> 6</span> <span style="color: #000000">    FEMAIL(</span><span style="color: #000000">"</span><span style="color: #000000">00</span><span style="color: #000000">"</span><span style="color: #000000">),<br /></span><span style="color: #008080"> 7</span> <span style="color: #000000">    MAIL(</span><span style="color: #000000">"</span><span style="color: #000000">01</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080"> 8</span> <span style="color: #000000">    <br /></span><span style="color: #008080"> 9</span> <span style="color: #000000">    </span><span style="color: #0000ff">private</span><span style="color: #000000"> String value;<br /></span><span style="color: #008080">10</span> <span style="color: #000000">    </span><span style="color: #0000ff">private</span><span style="color: #000000"> SexEnum(String value) {<br /></span><span style="color: #008080">11</span> <span style="color: #000000">        </span><span style="color: #0000ff">this</span><span style="color: #000000">.value </span><span style="color: #000000">=</span><span style="color: #000000"> value;<br /></span><span style="color: #008080">12</span> <span style="color: #000000">    }<br /></span><span style="color: #008080">13</span> <span style="color: #000000">    <br /></span><span style="color: #008080">14</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> String getValue(){<br /></span><span style="color: #008080">15</span> <span style="color: #000000">        </span><span style="color: #0000ff">return</span><span style="color: #000000"> value;<br /></span><span style="color: #008080">16</span> <span style="color: #000000">    }<br /></span><span style="color: #008080">17</span> <span style="color: #000000">    <br /></span><span style="color: #008080">18</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> SexEnum fromValue(String value){<br /></span><span style="color: #008080">19</span> <span style="color: #000000">        SexEnum[] enums </span><span style="color: #000000">=</span><span style="color: #000000"> SexEnum.values();<br /></span><span style="color: #008080">20</span> <span style="color: #000000">        <br /></span><span style="color: #008080">21</span> <span style="color: #000000">        </span><span style="color: #0000ff">if</span><span style="color: #000000">(enums</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">){<br /></span><span style="color: #008080">22</span> <span style="color: #000000">            </span><span style="color: #0000ff">for</span><span style="color: #000000">(SexEnum item:enums){<br /></span><span style="color: #008080">23</span> <span style="color: #000000">                </span><span style="color: #0000ff">if</span><span style="color: #000000">(item.getValue().equals(value))<br /></span><span style="color: #008080">24</span> <span style="color: #000000">                    </span><span style="color: #0000ff">return</span><span style="color: #000000"> item;<br /></span><span style="color: #008080">25</span> <span style="color: #000000">            }<br /></span><span style="color: #008080">26</span> <span style="color: #000000">        }<br /></span><span style="color: #008080">27</span> <span style="color: #000000">        <br /></span><span style="color: #008080">28</span> <span style="color: #000000">        </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /></span><span style="color: #008080">29</span> <span style="color: #000000">    }<br /></span><span style="color: #008080">30</span> <span style="color: #000000">}<br /></span><span style="color: #008080">31</span> <span style="color: #000000"></span></div><br /><div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080"> 1</span> <span style="color: #0000ff">package</span><span style="color: #000000"> com.study.enums;<br /></span><span style="color: #008080"> 2</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 3</span> <span style="color: #000000"></span><span style="color: #0000ff">import</span><span style="color: #000000"> junit.framework.Assert;<br /></span><span style="color: #008080"> 4</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 5</span> <span style="color: #000000"></span><span style="color: #0000ff">import</span><span style="color: #000000"> org.junit.Test;<br /></span><span style="color: #008080"> 6</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 7</span> <span style="color: #000000"></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> SexEnumTest {<br /></span><span style="color: #008080"> 8</span> <span style="color: #000000"><br /></span><span style="color: #008080"> 9</span> <span style="color: #000000">    @Test<br /></span><span style="color: #008080">10</span> <span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> testGetValue() {<br /></span><span style="color: #008080">11</span> <span style="color: #000000">        System.out.println(SexEnum.FEMAIL.getValue());<br /></span><span style="color: #008080">12</span> <span style="color: #000000">        <br /></span><span style="color: #008080">13</span> <span style="color: #000000">        System.out.println(SexEnum.MAIL.getValue());<br /></span><span style="color: #008080">14</span> <span style="color: #000000">        <br /></span><span style="color: #008080">15</span> <span style="color: #000000">        System.out.println(SexEnum.fromValue(</span><span style="color: #000000">"</span><span style="color: #000000">00</span><span style="color: #000000">"</span><span style="color: #000000">).getValue());<br /></span><span style="color: #008080">16</span> <span style="color: #000000">        <br /></span><span style="color: #008080">17</span> <span style="color: #000000">        System.out.println(SexEnum.fromValue(</span><span style="color: #000000">"</span><span style="color: #000000">01</span><span style="color: #000000">"</span><span style="color: #000000">).getValue());<br /></span><span style="color: #008080">18</span> <span style="color: #000000">        <br /></span><span style="color: #008080">19</span> <span style="color: #000000">        <br /></span><span style="color: #008080">20</span> <span style="color: #000000">        Assert.assertEquals(SexEnum.FEMAIL, SexEnum.fromValue(</span><span style="color: #000000">"</span><span style="color: #000000">00</span><span style="color: #000000">"</span><span style="color: #000000">));<br /></span><span style="color: #008080">21</span> <span style="color: #000000">        <br /></span><span style="color: #008080">22</span> <span style="color: #000000">        Assert.assertEquals(SexEnum.MAIL, SexEnum.fromValue(</span><span style="color: #000000">"</span><span style="color: #000000">01</span><span style="color: #000000">"</span><span style="color: #000000">));<br /></span><span style="color: #008080">23</span> <span style="color: #000000">    }<br /></span><span style="color: #008080">24</span> <span style="color: #000000"><br /></span><span style="color: #008080">25</span> <span style="color: #000000">}<br /></span><span style="color: #008080">26</span> <span style="color: #000000"></span></div><br /><br />緇撴灉錛?br /><br />00<br />01<br />00<br />01<br /><br /><br /><img src ="http://www.tkk7.com/weiwei/aggbug/342916.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/weiwei/" target="_blank">liwei5891</a> 2011-01-13 11:47 <a href="http://www.tkk7.com/weiwei/articles/342916.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java涓彧鏈変紶鍊?/title><link>http://www.tkk7.com/weiwei/articles/319207.html</link><dc:creator>liwei5891</dc:creator><author>liwei5891</author><pubDate>Fri, 23 Apr 2010 09:12:00 GMT</pubDate><guid>http://www.tkk7.com/weiwei/articles/319207.html</guid><wfw:comment>http://www.tkk7.com/weiwei/comments/319207.html</wfw:comment><comments>http://www.tkk7.com/weiwei/articles/319207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/weiwei/comments/commentRss/319207.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/weiwei/services/trackbacks/319207.html</trackback:ping><description><![CDATA[java涓彧鏈変紶鍊?br /><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">package sinosoft;<br /><br />import org.junit.Test;<br /><br />public class PassValueTest {<br />    <br />    /**<br />     * 榪愯緇撴灉鏄?br />     *  Hello World!<br />        hi World!<br />        Hello World!<br />        瑕佺悊瑙h繖鐐癸紝灝辮鐞嗚В鍦↗ava涓彧鏈変紶鍊?br />        瀵逛簬鍙傛暟浼犻掞紝濡傛灉鏄畝鍗曟暟鎹被鍨嬶紝閭d箞瀹冧紶閫掔殑鏄兼嫹璐濓紝<br />        瀵逛簬綾葷殑瀹炰緥瀹冧紶閫掔殑鏄被鐨勫紩鐢ㄧ殑鎷瘋礉<br />        <br />        瀵圭被鏉ヨ錛氬紩鐢ㄤ笌寮曠敤鐨勬嫹璐濋兘鎸囧悜瀵硅薄鐨勫悓涓涓唴瀛樺潡錛屽洜姝ゅ寮曠敤鎿嶄綔錛屽紩鍝嶇殑鏄悓涓涓璞?br />        浣嗗儚chang鏂規硶涓紝瀵瑰紩鐢ㄧ殑鎷瘋礉閲嶆柊璧嬬粰涓涓璞★紝閭e氨涓庡師鍏堝璞℃棤鍏充簡銆傝嚜鐒朵笉浼氬獎鍝嶅埌鍘熷厛瀵硅薄<br />     */<br />    @Test<br />    public void test(){<br />        StringBuffer bf = new StringBuffer("Hello World!");<br />        System.out.println(bf.toString());<br />        <br />        change(bf);<br />        <br />        System.out.println(bf.toString());<br />    }<br />    <br />    public void change(StringBuffer bf){<br />        bf = new StringBuffer("hi");<br />        bf.append(" World!");<br />        <br />        System.out.println(bf.toString());<br />    }      <br />}<br /></span></div><img src ="http://www.tkk7.com/weiwei/aggbug/319207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/weiwei/" target="_blank">liwei5891</a> 2010-04-23 17:12 <a href="http://www.tkk7.com/weiwei/articles/319207.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤BigDecimal綺劇‘璁$畻http://www.tkk7.com/weiwei/articles/310919.htmlliwei5891liwei5891Wed, 27 Jan 2010 04:06:00 GMThttp://www.tkk7.com/weiwei/articles/310919.htmlhttp://www.tkk7.com/weiwei/comments/310919.htmlhttp://www.tkk7.com/weiwei/articles/310919.html#Feedback0http://www.tkk7.com/weiwei/comments/commentRss/310919.htmlhttp://www.tkk7.com/weiwei/services/trackbacks/310919.html

Java 嫻偣鏁扮簿紜綆?BigDecimal鐨勭敤娉?

java.math.BigDecimal鐨勭敤娉曪紵

Java 嫻偣鏁?綺劇‘璁$畻  

濡傛灉鎴戜滑緙栬瘧榪愯涓嬮潰榪欎釜紼嬪簭浼氱湅鍒頒粈涔堬紵

public class Test{

    public static void main(String args[]){

        System.out.println(0.05+0.01);

        System.out.println(1.0-0.42);

        System.out.println(4.015*100);

        System.out.println(123.3/100);

    }

};

浣犳病鏈夌湅閿欙紒緇撴灉紜疄鏄?

0.060000000000000005

0.5800000000000001

401.49999999999994

1.2329999999999999

Java涓殑綆鍗曟誕鐐規暟綾誨瀷float鍜宒ouble涓嶈兘澶熻繘琛岃繍綆椼備笉鍏夋槸Java錛屽湪鍏跺畠寰堝緙栫▼璇█涓篃鏈夎繖鏍風殑闂銆傚湪澶у鏁版儏鍐典笅錛岃綆楃殑緇撴灉鏄噯紜殑錛屼絾鏄璇曞嚑嬈★紙鍙互鍋氫竴涓驚鐜級灝卞彲浠ヨ瘯鍑虹被浼間笂闈㈢殑閿欒銆傜幇鍦ㄧ粓浜庣悊瑙d負浠涔堣鏈塀CD鐮佷簡銆?

榪欎釜闂鐩稿綋涓ラ噸錛屽鏋滀綘鏈?.999999999999鍏冿紝浣犵殑璁$畻鏈烘槸涓嶄細璁や負浣犲彲浠ヨ喘涔?0鍏冪殑鍟嗗搧鐨勩?

鍦ㄦ湁鐨勭紪紼嬭璦涓彁渚涗簡涓撻棬鐨勮揣甯佺被鍨嬫潵澶勭悊榪欑鎯呭喌錛屼絾鏄疛ava娌℃湁銆傜幇鍦ㄨ鎴戜滑鐪嬬湅濡備綍瑙e喅榪欎釜闂銆?

鍥涜垗浜斿叆

鎴戜滑鐨勭涓涓弽搴旀槸鍋氬洓鑸嶄簲鍏ャ侻ath綾諱腑鐨剅ound鏂規硶涓嶈兘璁劇疆淇濈暀鍑犱綅灝忔暟錛屾垜浠彧鑳借薄榪欐牱錛堜繚鐣欎袱浣嶏級錛?

public double round(double value){

    return Math.round(value*100)/100.0;

}

闈炲父涓嶅垢錛屼笂闈㈢殑浠g爜騫朵笉鑳芥甯稿伐浣滐紝緇欒繖涓柟娉曚紶鍏?.015瀹冨皢榪斿洖4.01鑰屼笉鏄?.02錛屽鎴戜滑鍦ㄤ笂闈㈢湅鍒扮殑

4.015*100=401.49999999999994

鍥犳濡傛灉鎴戜滑瑕佸仛鍒扮簿紜殑鍥涜垗浜斿叆錛屼笉鑳藉埄鐢ㄧ畝鍗曠被鍨嬪仛浠諱綍榪愮畻

java.text.DecimalFormat涔熶笉鑳借В鍐寵繖涓棶棰橈細

System.out.println(new java.text.DecimalFormat("0.00").format(4.025));

杈撳嚭鏄?.02

BigDecimal

鍦ㄣ奅ffective Java銆嬭繖鏈功涓篃鎻愬埌榪欎釜鍘熷垯錛宖loat鍜宒ouble鍙兘鐢ㄦ潵鍋氱瀛﹁綆楁垨鑰呮槸宸ョ▼璁$畻錛屽湪鍟嗕笟璁$畻涓垜浠鐢?java.math.BigDecimal銆侭igDecimal涓鍏辨湁4涓閫犳柟娉曪紝鎴戜滑涓嶅叧蹇冪敤BigInteger鏉ュ閫犵殑閭d袱涓紝閭d箞榪樻湁涓や釜錛屽畠浠槸錛?

BigDecimal(double val)

          Translates a double into a BigDecimal.

BigDecimal(String val)

          Translates the String repre sentation of a BigDecimal into a BigDecimal.

涓婇潰鐨凙PI綆瑕佹弿榪扮浉褰撶殑鏄庣‘錛岃屼笖閫氬父鎯呭喌涓嬶紝涓婇潰鐨勯偅涓涓嬌鐢ㄨ搗鏉ヨ鏂逛究涓浜涖傛垜浠彲鑳芥兂閮戒笉鎯沖氨鐢ㄤ笂浜嗭紝浼氭湁浠涔堥棶棰樺憿錛熺瓑鍒板嚭浜嗛棶棰樼殑鏃跺欙紝鎵嶅彂鐜頒笂闈㈠摢涓閫犳柟娉曠殑璇︾粏璇存槑涓湁榪欎箞涓孌碉細

Note: the results of this constructor can be somewhat unpredictable. One might assume that new BigDecimal(.1) is exactly equal to .1, but it is actually equal to .1000000000000000055511151231257827021181583404541015625. This is so because .1 cannot be represented exactly as a double (or, for that matter, as a binary fraction of any finite length). Thus, the long value that is being passed in to the constructor is not exactly equal to .1, appearances nonwithstanding.

The (String) constructor, on the other hand, is perfectly predictable: new BigDecimal(".1") is exactly equal to .1, as one would expect. Therefore, it is generally recommended that the (String) constructor be used in preference to this one.

鍘熸潵鎴戜滑濡傛灉闇瑕佺簿紜綆楋紝闈炶鐢⊿tring鏉ュ閫燘igDecimal涓嶅彲錛佸湪銆奅ffective Java銆嬩竴涔︿腑鐨勪緥瀛愭槸鐢⊿tring鏉ュ閫燘igDecimal鐨勶紝浣嗘槸涔︿笂鍗存病鏈夊己璋冭繖涓鐐癸紝榪欎篃璁告槸涓涓皬灝忕殑澶辮鍚с?

瑙e喅鏂規

鐜板湪鎴戜滑宸茬粡鍙互瑙e喅榪欎釜闂浜嗭紝鍘熷垯鏄嬌鐢˙igDecimal騫朵笖涓瀹氳鐢⊿tring鏉ュ閫犮?

浣嗘槸鎯沖儚涓涓嬪惂錛屽鏋滄垜浠鍋氫竴涓姞娉曡繍綆楋紝闇瑕佸厛灝嗕袱涓誕鐐規暟杞負String錛岀劧鍚庡閫犳垚BigDecimal錛屽湪鍏朵腑涓涓笂璋冪敤add鏂規硶錛屼紶鍏ュ彟涓涓綔涓哄弬鏁幫紝鐒跺悗鎶婅繍綆楃殑緇撴灉錛圔igDecimal錛夊啀杞崲涓烘誕鐐規暟銆備綘鑳藉蹇嶅彈榪欎箞鐑︾悙鐨勮繃紼嬪悧錛熶笅闈㈡垜浠彁渚涗竴涓伐鍏風被Arith鏉ョ畝鍖栨搷浣溿傚畠鎻愪緵浠ヤ笅闈欐佹柟娉曪紝鍖呮嫭鍔犲噺涔橀櫎鍜屽洓鑸嶄簲鍏ワ細

public static double add(double v1,double v2)

public static double sub(double v1,double v2)

public static double mul(double v1,double v2)

public static double div(double v1,double v2)

public static double div(double v1,double v2,int scale)

public static double round(double v,int scale)

闄勫綍

 


 

BigDecimal鑸嶅叆妯″紡(Rounding mode)
鍏抽敭瀛? bigdecimal

ROUND_CEILING
Rounding mode to round towards positive infinity.
鍚戞鏃犵┓鏂瑰悜鑸嶅叆
ROUND_DOWN
Rounding mode to round towards zero.
鍚戦浂鏂瑰悜鑸嶅叆
ROUND_FLOOR
Rounding mode to round towards negative infinity.
鍚戣礋鏃犵┓鏂瑰悜鑸嶅叆
ROUND_HALF_DOWN
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
鍚戯紙璺濈錛夋渶榪戠殑涓杈硅垗鍏ワ紝闄ら潪涓よ竟錛堢殑璺濈錛夋槸鐩哥瓑,濡傛灉鏄繖鏍鳳紝鍚戜笅鑸嶅叆, 渚嬪1.55 淇濈暀涓浣嶅皬鏁扮粨鏋滀負1.5
ROUND_HALF_EVEN
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
鍚戯紙璺濈錛夋渶榪戠殑涓杈硅垗鍏ワ紝闄ら潪涓よ竟錛堢殑璺濈錛夋槸鐩哥瓑,濡傛灉鏄繖鏍鳳紝濡傛灉淇濈暀浣嶆暟鏄鏁幫紝浣跨敤ROUND_HALF_UP 錛屽鏋滄槸鍋舵暟錛屼嬌鐢≧OUND_HALF_DOWN
ROUND_HALF_UP
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
鍚戯紙璺濈錛夋渶榪戠殑涓杈硅垗鍏ワ紝闄ら潪涓よ竟錛堢殑璺濈錛夋槸鐩哥瓑,濡傛灉鏄繖鏍鳳紝鍚戜笂鑸嶅叆, 1.55淇濈暀涓浣嶅皬鏁扮粨鏋滀負1.6
ROUND_UNNECESSARY
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
璁$畻緇撴灉鏄簿紜殑錛屼笉闇瑕佽垗鍏ユā寮?
ROUND_UP
Rounding mode to round away from zero.
鍚戣繙紱?鐨勬柟鍚戣垗鍏?
渚嬪瓙

Java浠g爜

  1. BigDecimal n3  = new BigDecimal(1.2345678901234567890E+9);  
  2. System.out.println(n3) 
BigDecimal n3  = new BigDecimal(1.2345678901234567890E+9);
System.out.println(n3)

榪欐牱杈撳嚭鐨勭粨鏋滄槸:1234567890.1234567165374755859375
褰撳埌浜嗗悗闈?7浣嶄箣鍚庡氨寮濮嬩笉鍑嗙‘浜?
鍥燚ouble綾誨瀷鏈韓鍙兘綺劇‘鍒?7浣?
浣嗘槸濡傛灉榪欐牱

Java浠g爜

  1. BigDecimal n4  = new BigDecimal("1.23456789012345678901234567890E+9"); 
BigDecimal n4  = new BigDecimal("1.23456789012345678901234567890E+9");

緇撴灉鏄?234567891.12345678901234567890
榪欐牱灝辮兘緇濆綺劇‘


liwei5891 2010-01-27 12:06 鍙戣〃璇勮
]]>
java鏃ユ湡澶勭悊http://www.tkk7.com/weiwei/articles/280809.htmlliwei5891liwei5891Tue, 09 Jun 2009 03:13:00 GMThttp://www.tkk7.com/weiwei/articles/280809.htmlhttp://www.tkk7.com/weiwei/comments/280809.htmlhttp://www.tkk7.com/weiwei/articles/280809.html#Feedback0http://www.tkk7.com/weiwei/comments/commentRss/280809.htmlhttp://www.tkk7.com/weiwei/services/trackbacks/280809.html 宸ュ叿綾伙細
package
 com.power.date;

import  java.text.ParseException;
import  java.text.SimpleDateFormat;
import  java.util.Calendar;
import  java.util.Date;

public   class  DateUtils {        
    
/**
     * 鏍煎紡鍖栨棩鏈?br />      * 
@param  date
     * 
@param  pattern
     * 
@return
     
*/
    
    
public   static  String format(Date date,String pattern){
        SimpleDateFormat format 
=    new  SimpleDateFormat(pattern);        
        
return  format.format(date);
    }
    
    
/**
     * 鏍規嵁瀛楃涓茬敓鎴愭棩鏈?br />      * 
@param  dateStr
     * 
@param  pattern
     * 
@return
     * 
@throws  ParseException
     
*/
    
    
public   static  Date parse(String dateStr,String pattern)  throws  ParseException{
        SimpleDateFormat format 
=    new  SimpleDateFormat(pattern);    
        
return  format.parse(dateStr);
    }
    
    
/**
     * 姣旇緝鏃ユ湡鍓嶅悗
     * 
@param  date 
     * 
@param  when 
     * 
@return  date鍦╳hen涔嬪墠錛岃繑鍥瀎alse,鍚﹀垯榪斿洖true
     
*/
    
public   static   boolean  after(Date date,Date when){
        
return  date.after(when);
    }
    
/**
     * 娣誨姞(鎴栧噺灝?鏃墮棿
     * 
@param  date
     * 
@param  field 瑕佹坊鍔?鎴栧噺灝?鐨勫瓧孌?騫存垨鏈堟垨鏃ユ垨)
     * 
@param  amount 瑕佹坊鍔?鎴栧噺灝?鐨勬暟閲忥紝amount涓烘鏁版椂錛屾槸娣誨姞錛屼負璐熸暟鏃舵槸鍑忓皬
     * 
@return  鏃ユ湡
     
*/
    
public   static  Date add(Date date, int  field, int  amount){        
        Calendar ca 
=  Calendar.getInstance();
        ca.setTime(date);
        ca.add(field, amount);        
        
return  ca.getTime();
    }
    
    
/**
     * 娣誨姞(鎴栧噺灝?鏃墮棿
     * 
@param  date
     * 
@param  field 瑕佹坊鍔?鎴栧噺灝?鐨勫瓧孌?騫存垨鏈堟垨鏃ユ垨)
     * 
@param  amount 瑕佹坊鍔?鎴栧噺灝?鐨勬暟閲忥紝amount涓烘鏁版椂錛屾槸娣誨姞錛屼負璐熸暟鏃舵槸鍑忓皬
     * 
@param  pattern 鏍煎紡鍖栨ā寮?br />      *  @return  鏍煎紡鍖栧悗鐨勬棩鏈熷瓧絎︿覆
     
*/
    
public   static  String add(Date date, int  field, int  amount,String pattern){        
        Calendar ca 
=  Calendar.getInstance();
        ca.setTime(date);
        ca.add(field, amount);        
        
        
return  format(ca.getTime(),pattern);
    }
    
    
public   class  DatePattern{
        
public   static   final  String Y_M_D = " yyyy-MM-dd " ;
        
public   static   final  String Y_M_D_H_M_S = " yyyy-MM-dd HH:mm:ss " ;
    }
}

嫻嬭瘯綾伙細


/**
 * 
 
*/
package  com.power.date;

import  java.text.ParseException;
import  java.util.Calendar;
import  java.util.Date;

import  org.junit.Test;
import   static  junit.framework.Assert. * ;

/**
 * 
@author  liwei
 *
 
*/
public   class  TestDateUtils {
    @Test
    
public   void  testFormat(){
        Date now 
=   new  Date();
        System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D));
        System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D_H_M_S));
    }
    @Test
    
public   void  testParse()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        System.out.println(DateUtils.format(date, DateUtils.DatePattern.Y_M_D));
        
        dateStr
= " 2009-06-09 10:14:57 " ;
        Date date2 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D_H_M_S);
        System.out.println(DateUtils.format(date2, DateUtils.DatePattern.Y_M_D_H_M_S));
        
    }
    
    @Test 
    
public   void  testAfter()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        
        Date now 
=   new  Date();
        
        assertTrue(DateUtils.after(now, date));
        
    }
    
    @Test 
    
public   void  testAdd()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        
        Date date2
=  DateUtils.add(date, Calendar.MONDAY,  6 );        
        assertEquals(
" 2009-12-09 " , DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));
        
        assertEquals(
" 2009-12-09 " , DateUtils.add(date,Calendar.MONDAY, 6 ,DateUtils.DatePattern.Y_M_D));
        
        
        
        date2 
=  DateUtils.add(date, Calendar.MONTH,  - 2 );        
        assertEquals(
" 2009-04-09 " , DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));        
        
        assertEquals(
" 2009-04-09 " , DateUtils.add(date,Calendar.MONDAY, - 2 ,DateUtils.DatePattern.Y_M_D));
        
    }
    
    
    
    
}



liwei5891 2009-06-09 11:13 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 亚洲国产精品无码久久久| 亚洲国产精品久久66| 亚洲精品色播一区二区| 亚洲成AV人片在线观看无| 免费福利在线观看| 亚洲Av无码国产情品久久| 污视频网站在线观看免费| 久久久久国产成人精品亚洲午夜 | 亚洲一区二区三区亚瑟| 99久久久国产精品免费无卡顿| 亚洲欧洲精品久久| 国产乱子精品免费视观看片| 亚洲免费在线视频观看| 日韩高清在线免费观看| 免费人成又黄又爽的视频在线电影 | 亚洲av极品无码专区在线观看| 亚洲黄色免费观看| 亚洲综合国产成人丁香五月激情| 噜噜嘿在线视频免费观看| 亚洲丰满熟女一区二区哦| 四虎精品亚洲一区二区三区| 国产精品免费久久久久久久久| 18禁网站免费无遮挡无码中文| 亚洲一区中文字幕在线观看| 日本午夜免费福利视频| 一区二区三区在线免费观看视频 | 国产亚洲综合久久系列| 国产成人亚洲午夜电影| 国产精品亚洲综合一区| 精品无码国产污污污免费网站| 亚洲AV无码专区在线亚| 四虎永久免费地址在线观看| 免费观看成人久久网免费观看| 亚洲白色白色永久观看| 四虎永久免费网站免费观看| 无码一区二区三区免费| 亚洲精品亚洲人成在线| 亚洲成AV人在线观看天堂无码| 黄页免费的网站勿入免费直接进入| 老司机福利在线免费观看| 亚洲卡一卡2卡三卡4卡无卡三 |