锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久亚洲一区二区,亚洲中文字幕在线乱码,精品亚洲视频在线http://www.tkk7.com/mlh123caoer/category/11360.html鏃犱負鍒欏彲涓猴紝鏃犱負鍒欒嚦娣憋紒 zh-cnTue, 04 Oct 2011 17:29:42 GMTTue, 04 Oct 2011 17:29:42 GMT60Java heap dump瑙﹀彂鍜屽垎鏋?/title><link>http://www.tkk7.com/mlh123caoer/archive/2011/10/04/360020.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Tue, 04 Oct 2011 14:31:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2011/10/04/360020.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/360020.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2011/10/04/360020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/360020.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/360020.html</trackback:ping><description><![CDATA[<span id="mm8gkys" class="Apple-style-span" style="color: #4e4e4e; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: normal; background-color: #ffffff; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">涓轟簡鍒嗘瀽java搴旂敤鐨勫唴瀛樻硠婕忥紝浣跨敤thread dump寰寰瑙e喅涓嶄簡闂銆備嬌鐢╦stat銆恊g錛?a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">jstat </a>-gcutil pid 1000 5銆戝伐鍏鋒煡鐪嬭繍琛岀殑java搴旂敤鐨刪eap size,perm size ,survivor ratio絳夛紝褰撴椂浣犳棤娉曠煡閬撴槸浠涔堝璞℃妸鍫嗗~婊′簡銆?/span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 602px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     浠涔堟槸 Java heap dump<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">      棣栧厛闇瑕佹悶鎳備粈涔堟槸java heap錛宩ava heap鏄垎閰嶇粰瀹炰緥綾誨拰鏁扮粍瀵硅薄榪愯鏁版嵁鍖猴紝鎵鏈塲ava綰跨▼鍦ㄨ繍琛屾湡闂村叡浜玥eap涓殑鏁版嵁銆侸ava heap dump鐩稿綋浜巎ava搴旂敤鍦ㄨ繍琛岀殑鏃跺欏湪鏌愪釜鏃墮棿鐐逛笂鎵撲簡涓揩鐓э紙snapshot錛夈?/span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">     濡傛灉浣犱笉鎳傚暐鏄痵napshot錛岀偣鍑?a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">榪欓噷</a></span></p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 602px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     瑙﹀彂 Java heap dump</strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">鏈変互涓嬫柟娉曞嚭鍙慼eap dump</span></p><ol style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">浣跨敤$JAVA_HOME/bin/<a style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">jmap</a> -dump鏉ヨЕ鍙戯紝eg錛歫map -dump:format=b,file=/home/longhao/heamdump.out <pid></span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">浣跨敤$JAVA_HOME/bin/<a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">jcosole</a>涓殑MBean錛屽埌MBean>com.sun.management>HotSpotDiagnostic>鎿嶄綔>dumpHeap涓紝鐐瑰嚮 dumpHeap鎸夐挳銆傜敓鎴愮殑dump鏂囦歡鍦╦ava搴旂敤鐨勬牴鐩綍涓嬮潰銆?/span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">鍦ㄥ簲鐢ㄥ惎鍔ㄦ椂閰嶇疆鐩稿叧鐨勫弬鏁?-XX:+HeapDumpOnOutOfMemoryError錛屽綋搴旂敤鎶涘嚭OutOfMemoryError鏃剁敓鎴恉ump鏂囦歡銆?/span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 2.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; list-style-position: outside; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">浣跨敤<a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">hprof</a>銆傚惎鍔ㄨ櫄鎷熸満鍔犲叆-Xrunhprof:head=site錛屼細鐢熸垚java.hprof.txt鏂囦歡銆傝閰嶇疆浼氬鑷磈vm榪愯闈炲父鐨勬參錛屼笉閫傚悎鐢熶駭鐜銆?/span></li></ol><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 602px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     鍒嗘瀽 Java heap dump</strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 588px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     1錛氫嬌鐢↖BM HeapAnalyzer<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">    <a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; ">IBM HeapAnalyzer</a>鏄竴嬈懼厤璐圭殑JVM鍐呭瓨鍫嗙殑鍥懼艦鍒嗘瀽宸ュ叿錛屽畠鍙互鏈夋晥鐨勫垪涓懼爢鐨勫唴瀛樹嬌鐢ㄧ姸鍐碉紝甯姪鍒嗘瀽Java鍐呭瓨娉勬紡鐨勫師鍥犮?/span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">    涓嬭澆瑙e帇鍚庢湁涓涓猦a413.jar錛屾墽琛? java -Xmx512m -jar ha413.jar /home/longhao/heapdump.out</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">     鎵ц緇撴灉濡傚浘鎵紺猴細</span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; text-align: center; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><img alt="" src="http://farm6.static.flickr.com/5176/5573840400_7d8e21a701.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">   </span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "></p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 588px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     2錛歫hat</strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">   <a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; "> jhat錛圝ava Head Analyse Tool 錛?/a>鏄敤鏉ュ垎鏋恓ava鍫嗙殑鍛戒護錛屽彲浠ュ皢鍫嗕腑鐨勫璞′互html鐨勫艦寮忔樉紺哄嚭鏉ワ紝鍖呮嫭瀵硅薄鐨勬暟閲忥紝澶у皬絳夌瓑錛屽茍鏀寔瀵硅薄鏌ヨ璇█OQL錛屽垎鏋愮浉鍏崇殑搴旂敤鍚庯紝鍙互閫氳繃http://localhost:7000鏉ヨ闂垎鏋愮粨鏋溿?/span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">    紺轟緥: $JAVA_HOME/bin/jhat -J-Xmx512m /home/longhao/dump.out<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; text-align: center; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><img alt="" height="500" src="http://farm6.static.flickr.com/5013/5573880930_5f758206f8.jpg" width="474" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "></p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 9px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: arial, helvetica, sans-serif; line-height: 21px; background-color: #e6e6fa; height: 25px; width: 588px; font-size: 14px; color: #000000; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; ">     3錛欵clipse MemoryAnalyzer<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></strong></span></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 6px; padding-left: 6px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-left-width: 2px; border-left-style: solid; border-left-color: #cccccc; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">   <a target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071bb; outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; "> Eclipse Memory Analyzer</a>鏄竴涓揩閫熷茍涓斿姛鑳藉己澶х殑Java heap鍒嗘瀽鍣紝鑳藉甯姪浣犳煡鎵懼唴瀛樻硠婕忓拰鍑忓皯鍐呭瓨娑堣椼傚湪File>Acquire Heap Dump>configure>HPROF jmap dump provider璁劇疆涓涓嬪垎鏋愬簲鐢ㄧ殑JDK錛岀偣鍑葷浉鍏沖簲鐢ㄥ垪琛ㄦ潵鐢熸垚heap dump騫跺垎鏋愩?br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; text-align: center; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">    <img alt="" src="http://farm6.static.flickr.com/5303/5573880998_98d2cd5d98.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; " /></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "></p></div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 21px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 14px; ">    鍦╯ocket錛宯io涓殑鏈変簺API涓紝鐢寵鐨勫唴瀛樻槸鐩存帴鍚慜S瑕佺殑錛屽湪鍫嗕腑鍒嗘瀽鍐呭瓨鏄煡鐪嬩笉鍒扮殑錛屽彲浠ラ氳繃-XX:MaxDirectMemorySize=<size>鏉ヨ緗簲鐢ㄥ悜OS鐩存帴鐢寵鐨勬渶澶у唴瀛樻暟銆?/span></p></div></span><img src ="http://www.tkk7.com/mlh123caoer/aggbug/360020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2011-10-04 22:31 <a href="http://www.tkk7.com/mlh123caoer/archive/2011/10/04/360020.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java涓瑿lass.getResource鐢ㄦ硶http://www.tkk7.com/mlh123caoer/archive/2009/09/29/296937.html鑽夊効鑽夊効Tue, 29 Sep 2009 11:43:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2009/09/29/296937.htmlhttp://www.tkk7.com/mlh123caoer/comments/296937.htmlhttp://www.tkk7.com/mlh123caoer/archive/2009/09/29/296937.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/296937.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/296937.html闃呰鍏ㄦ枃

鑽夊効 2009-09-29 19:43 鍙戣〃璇勮
]]>
OOME閿欒鎶涘嚭鍘熷洜http://www.tkk7.com/mlh123caoer/archive/2008/09/20/230104.html鑽夊効鑽夊効Sat, 20 Sep 2008 03:20:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2008/09/20/230104.htmlhttp://www.tkk7.com/mlh123caoer/comments/230104.htmlhttp://www.tkk7.com/mlh123caoer/archive/2008/09/20/230104.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/230104.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/230104.html
OOME閿欒鎶涘嚭鍘熷洜錛堟帓鍒椾互鍙戠敓鐨勫彲鑳芥т負鎹級錛?/div>
  1. Java Heap涓棤娉曠敵璇峰埌瓚沖鐨勫唴瀛樼敤浜庡垱寤烘柊鐨刼bject錛孞VM浼氭姏鍑篛OME閿欒
      鏍規嵁寮傚父鍙戠敓鐨勬棩蹇楀垎鏋愶紝鏈夊彲鑳芥槸鍥犱負POP3鍙椾俊鏃訛紝鍙戠敓姝婚攣錛屽鑷存棫瀵硅薄鏃犳硶閲?/div>
      鏀撅紝Java heap 鍐呭瓨瓚呰繃鏈澶у垎閰嶅唴瀛橈紝OOME鎶涘嚭銆?/div>
   2. Native memory JVM姝e父榪愯鍜?JNI璋冪敤絎笁鏂瑰簱鏃跺垎閰嶅唴瀛樸侼ative鍐呭瓨浼氬湪JVM榪涚▼鎵
      闇瑕佺殑鍐呭瓨鍚戠郴緇熺敵璇鳳紝濡傛灉JNI璋冪敤涓嶈兘鐢寵鍒板唴瀛樺氨浼氭姏鍑篛OME閿欒銆?/div>
   3. Process memory size 涓嶅銆傝繖縐嶅彲鑳芥ф瘮杈冨皬銆?/div>

鑽夊効 2008-09-20 11:20 鍙戣〃璇勮
]]>Java瀛︿範絎旇 - 鍩虹綃?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/12/16/168109.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Sun, 16 Dec 2007 13:04:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/12/16/168109.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/168109.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/12/16/168109.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/168109.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/168109.html</trackback:ping><description><![CDATA[<div><strong>涓銆侀潰鍚戝璞$殑緙栫▼姒傚康</strong><strong></strong></div> <div><strong></strong></div> <div>瑙傚療鐜板疄瀵硅薄涓や釜鎬ц川錛氱姸鎬併佽涓恒?/div> <div></div> <div>闈㈠悜瀵硅薄鐨勫ソ澶勶細妯″潡鍖栥侀殣钘忎俊鎭?/div> <div></div> <div>緇ф壙錛氬瓙綾諱粠鐖剁被錛堣秴綾伙級緇ф壙鐘舵佸拰琛屼負錛涘瓙綾誨彲浠ユ敼鍙樼埗綾葷殑鐘舵佸拰琛屼負銆?/div> <div></div> <div>鎺ュ彛錛氭槸鏃犲叧瀵硅薄鐢ㄦ潵榪涜褰兼浜や簰鐨勮澶囷紱涓涓璞″彲浠ュ疄鐜板涓帴鍙c?/div> <div></div> <div></div> <div><strong>浜屻佽璦鍩虹</strong><strong></strong></div> <div></div> <div><strong>鍙橀噺</strong><strong></strong></div> <div>瀵硅薄灝嗗畠鐨勭姸鎬佸瓨鍌ㄥ湪鍙橀噺涓紱鍙橀噺鏄竴涓敱鏍囪瘑絎﹀懡鍚嶇殑鏁版嵁欏廣?/div> <div>澹版槑鍙橀噺鐨勫艦寮忥細<綾誨瀷> <鍚嶇О></div> <div></div> <div><strong>JAVA</strong><strong>璇█涓ゅぇ鏁版嵁綾誨瀷</strong><strong></strong></div> <div>鍘熷綾誨瀷鏁版嵁(鍩烘湰鏁版嵁綾誨瀷)銆佸紩鐢ㄧ被鍨嬨?/div> <div>鍘熷綾誨瀷鏁版嵁鏄笉鑳藉啀鍒嗚В鐨勬暟鎹被鍨?8縐嶏細byte銆乻hort銆乮nt銆乴ong銆乫loat銆乨ouble銆乧har銆乥oolean)錛屾暟鎹湪浣滀負鍑芥暟鍙傛暟鏄互“浼犲?#8221;鏂瑰紡宸ヤ綔鐨勶紱</div> <div></div> <div><strong>鏁存暟</strong>           byte錛?瀛楄妭闀跨殑鏁存暟錛?浣嶆湁絎﹀彿鐨勪簩榪涘埗琛ョ爜鏁存暟</div> <div>                  short錛氱煭鏁存暟錛?6浣嶆湁絎﹀彿鐨勪簩榪涘埗琛ョ爜鏁存暟</div> <div>                  int錛氭暣鏁幫紱32浣嶆湁絎﹀彿鐨勪簩榪涘埗琛ョ爜鏁存暟</div> <div>                  long錛氶暱鏁存暟錛?4浣嶆湁絎﹀彿鐨勪簩榪涘埗琛ョ爜鏁存暟</div> <div></div> <div><strong>瀹炴暟</strong>            flat錛氬崟綺懼害嫻偣鏁幫紱32浣岻EEE 754嫻偣鏁?/div> <div>                  double錛氬弻綺懼害嫻偣鏁幫紱64浣岻EEE 754嫻偣鏁?/div> <div></div> <div><strong>鍏朵粬綾誨瀷</strong> char錛氬崟涓Unicode瀛楃錛?6浣峌nicode瀛楃</div> <div>                  boolean錛氬竷灝斿?true鎴杅alse)錛?浣?1浣?8浣嶇┖闂達紝1浣嶆暟鎹?</div> <div>     </div> <div>寮曠敤綾誨瀷鍖呮嫭綾?class)銆佹帴鍙?interface)銆佹暟緇?array)銆傚紩鐢ㄧ被鍨嬫湁鏃朵篃縐板鍚堢被鍨嬶紝瀹冩槸鍙互鍒嗚В涓哄熀鏈被鍨嬬殑鏁版嵁綾誨瀷錛屽叾鏁版嵁鍦ㄤ綔涓哄嚱鏁板弬鏁版椂鏄互“浼犲潃”鐨勬柟寮忓伐浣滅殑銆備笌鍘熷綾誨瀷鐩稿錛屽紩鐢ㄧ被鍨嬪彉閲忕殑鍊兼槸瀵圭敱姝ゅ彉閲忎唬琛ㄧ殑涓涓兼垨涓緇勫肩殑寮曠敤(涔熷氨鏄湴鍧)銆?/div> <div></div> <div><strong>濡傦細</strong><strong></strong></div> <div>鍘熷綾誨瀷 int a = 3; //“a”琛ㄧず鍙橀噺鍚嶇О錛?#8220;3”琛ㄧず鍙橀噺鍊鹼紱濡傛灉鍐欐垚“final int a = 3;”錛?#8220;final”琛ㄧず涓嶅彲鏀瑰彉鍊鹼紝鎵浠ヨ繖閲岀殑3(鍙橀噺鍊?涓嶅彲鍙?/div> <div>寮曠敤綾誨瀷 Staing b = "Hello Java"; //“b”琛ㄧず寮曠敤鍚嶇О錛?#8220;Hello Java”琛ㄧず瀛楁誕涓叉暟緇?/div> <div></div> <div><strong>嫻佺▼鎺у埗璇彞</strong><strong></strong></div> <div>寰幆         while銆乨o - while銆乫or</div> <div>鍒ゆ柇         if - else銆乻witch - case</div> <div>寮傚父澶勭悊 try – catch – finally銆乼hrow</div> <div>鍒嗘敮         break銆乧ontinue銆乴abel :銆乺eturn</div> <div></div> <div>寰幆錛?/div> <div>while鍜宒o – while璇彞錛歐hile璇彞鐢ㄤ簬鍦ㄦ潯浠朵繚鎸佷負true鏃跺弽澶嶆墽琛屼竴涓唬鐮佸潡錛?/div> <div>do – while璇彞鐨勪唬鐮佸潡涓殑璇彞鑷沖皯琚墽琛屼竴嬈°?/div> <div></div> <div>for璇彞錛?/div> <div>for璇彞鎻愪緵涓縐嶈凱浠f煇涓寖鍥村唴鐨勫肩殑绱ф箠鏂瑰紡銆?/div> <div></div> <div>鍒ゆ柇錛?/div> <div>if – else 璇彞錛歩f璇彞浣跨▼搴忚兘澶熸牴鎹煇浜涙潯浠舵湁閫夋嫨鍦版墽琛屽叾浠栬鍙ワ紱</div> <div>switch璇彞鐢ㄤ簬鏍規嵁涓涓暣鏁拌〃杈懼紡鏈夋潯浠剁殑鎵ц璇彞錛?/div> <div>娉ㄦ剰錛氬繀欏昏鏈夋槑紜殑break璇彞錛屽惁鍒欙紝嫻佺▼鎺у埗灝嗕竴涓帴涓涓殑緇忚繃鍚庨潰鐨刢ase璇彞</div> <div>姣旇緝if璇彞鍜宻witch璇彞(if璇彞鍙互鐢ㄤ簬鏍規嵁鏌愯寖鍥寸殑鍊兼垨鏉′歡榪涜鍒ゆ柇;switch璇彞鍙敤浜庢牴鎹崟涓暣鏁板艱繘琛屽垽鏂?銆?/div> <div></div> <div>寮傚父澶勭悊璇彞錛?/div> <div>褰撶▼搴忓彂鐢熼敊璇椂錛岀▼搴忎細鎶涘嚭涓涓紓甯革紝紼嬪簭鐨勬甯告祦紼嬭涓柇錛?/div> <div>鍒嗘敮璇彞錛歜reak銆乧ontinue璇彞鍙互鍜屾爣絳捐鍙ヤ竴璧蜂嬌鐢紝涔熷彲浠ユ病鏈夋爣絳撅紱</div> <div>鏍囩鏄斁鍦ㄤ竴涓鍙ュ墠鐨勬爣璇嗙錛屾爣璇嗙鍚庤窡涓涓啋鍙鳳紱</div> <div>continue 璇彞錛歝ontinue璇彞鐢ㄤ簬璺寵繃for銆亀hile銆乨o – while寰幆鐨勫綋鍓嶈凱浠o紱</div> <div>return 璇彞錛氳繑鍥炰竴涓鹼紱涓嶈繑鍥炲箋?/div> <div></div> <div></div> <div><strong>涓夈佸璞″熀紜鍜岀畝鍗曟暟鎹粨鏋?/strong><strong></strong></div> <div><strong></strong></div> <div>鍒涘緩瀵硅薄錛氬0鏄庝竴涓彉閲忔潵寮曠敤鍙橀噺錛涘瀵硅薄榪涜瀹炰緥鍖?鏋勯犲櫒)錛?/div> <div>鐢╪ew鎿嶄綔絎﹀拰鏋勯犲櫒浠庣被鍒涘緩瀵硅薄銆?/div> <div></div> <div>涓ょ鏂瑰紡浣跨敤涓涓璞★細寮曠敤涓涓璞$殑鍙橀噺錛涜皟鐢ㄥ璞$殑鏂規硶銆?/div> <div></div> <div><strong>瀛楃鍜屽瓧絎︿覆</strong><strong></strong></div> <div>JAVA騫沖彴鍖呭惈涓変釜鐢ㄤ簬澶勭悊瀛楃鏁版嵁鐨勭被錛?/div> <div>Character錛氬寘鍚崟涓瓧絎﹀鹼紱瀹氫箟浜嗕竴浜涘彲鐢ㄤ簬鎿嶄綔鍜屾鏌ュ崟瀛楃鏁版嵁鐨勬柟娉?Character綾葷殑瀵硅薄瀹炰緥鍖呭惈鍗曚釜瀛楃鍊鹼紝鍙敤Character瀵硅薄鏇夸唬鍩烘湰綾誨瀷char)銆?/div> <div>String錛氳繖涓被鐢ㄤ簬澶勭悊鐢卞涓瓧絎︾粍鎴愮殑涓嶅彲鏀瑰彉鐨勬暟鎹?/div> <div>StringBuffer錛氬瓨鍌ㄥ拰鎿嶄綔鐢卞涓瓧絎︾粍鎴愮殑鍙敼鍙樼殑鏁版嵁銆?/div> <div></div> <div><strong>瀛楃涓插拰瀛楃涓茬紦鍐插尯</strong><strong></strong></div> <div>String錛氫笉鑳芥敼鍙樿嚜韜殑鍊箋?/div> <div>StringBuffer錛氱敤浜庡皢琚慨鏀圭殑瀛楃涓層?/div> <div></div> <div><strong>寰楀埌瀛楃涓叉垨瀛楃涓茬紦鍐插尯鐨勯暱搴?/strong><strong></strong></div> <div>length鏂規硶錛氳繑鍥炲瓧絎︿覆鎴栧瓧絎︿覆緙撳啿鍖轟腑鍖呭惈鐨勫瓧絎︽暟銆?/div> <div>capacity鏂規硶錛歋tringBuffer鐗規湁錛涜繑鍥炲垎閰嶇粰瀛楃涓茬紦鍐插尯鐨勭┖闂撮噺錛岃屼笉鏄浣跨敤鐨勭┖闂撮噺銆?/div> <div>String綾繪病鏈塩apacity鏂規硶錛屽洜涓哄瓧絎︿覆涓嶈兘鏀瑰彉銆?/div> <div></div> <div><strong>閫氳繃绱㈠紩浠庡瓧絎︿覆鎴栧瓧絎︿覆緙撳啿鍖哄緱鍒板瓧絎?/strong><strong></strong></div> <div>charAt(int)鏂規硶錛氬緱鍒板瓧絎︿覆鎴栧瓧絎︿覆緙撳啿鍖烘煇绱㈠紩浣嶇疆涓婄殑瀛楃銆?/div> <div>娉ㄦ剰錛氱涓涓瓧絎︿覆鐨勭儲寮曚負0錛涙渶鍚庝竴涓瓧絎︾殑绱㈠紩涓簂ength – 1錛?/div> <div>subString(int), subString(int,int)錛氫粠瀛楃涓叉垨瀛楃涓茬紦鍐插尯涓緱鍒板涓瓧絎︺?/div> <div></div> <div><strong>鍦ㄥ瓧絎︿覆涓悳绱㈠瓧絎︽垨瀛愬瓧絎︿覆</strong><strong></strong></div> <div>String綾繪彁渚涗簡涓や釜璁塊棶鍣ㄦ柟娉曪細indexOf 鏂規硶浠庡瓧絎︿覆鐨勫紑澶村悜鍓嶆悳绱紱lastIndexOf 鏂規硶浠庡瓧絎︿覆鐨勬湯灝懼悜鍚庢悳绱紱</div> <div>StringBuffer綾諱笉鏀寔indexOf鍜宭astIndexOf鏂規硶銆?/div> <div></div> <div><strong>鎿嶄綔瀛楃涓?/strong><strong></strong></div> <div>String綾繪湁鍑犱釜鏂規硶鐪嬭搗鏉ュ彲浠ヤ慨鏀瑰瓧絎︿覆銆傚綋鐒訛紝瀛楃涓叉槸涓嶈兘琚慨鏀圭殑錛屾墍浠ワ紝榪欎簺鏂規硶瀹為檯涓婃槸鍒涘緩騫惰繑鍥炲寘鍚粨鏋滅殑鍙︿竴涓瓧絎︿覆銆?/div> <div></div> <div><strong>淇敼瀛楃涓茬紦鍐?/strong><strong></strong></div> <div>瀛楃涓茬紦鍐叉槸鍙互淇敼鐨勶紝StingBuffer鎻愪緵浜嗗嚑涓敤浜庝慨鏀瑰瓧絎︿覆緙撳啿鍖虹殑鏁版嵁鐨勬柟娉曪紱</div> <div>濡傛灉淇敼瀛楃涓茬紦鍐插尯鐨勬搷浣滈犳垚瀛楃涓茬紦鍐插尯鐨勫ぇ灝忚秴鍑哄畠鐨勫綋鍓嶅閲忥紝閭d箞瀛楃涓茬紦鍐插尯浼氳嚜鍔ㄥ垎閰嶆洿澶氱殑鍐呭瓨銆?/div> <div></div> <div><strong>瀛楃涓插拰緙栬瘧鍣?/strong><strong></strong></div> <div>緙栬瘧鍣ㄥ湪寰堝鍦版柟鑷姩鐨勪嬌鐢⊿tring鍜孲tringBuffer綾繪潵澶勭悊瀛楃涓茬洿鎺ュ煎拰瀛楃涓茶繛鎺ワ紱</div> <div>緙栬瘧鍣ㄤ負瀹冮亣鍒扮殑姣忎釜瀛楃涓茬洿鎺ュ艱嚜鍔ㄥ垱寤轟竴涓柊鐨凷tring瀵硅薄錛?/div> <div>鍙互浣跨敤+鎿嶄綔絎﹁繛鎺ュ瓧絎︿覆銆?/div> <div></div> <div></div> <div><strong>鍥涖佺被鍜岀戶鎵?/strong><strong></strong></div> <div><strong></strong></div> <div><strong>瀹炵幇緇ф壙錛?/strong>extends鍏抽敭瀛?/div> <div></div> <div><strong>涓虹被鎻愪緵鏋勯犲櫒</strong><strong></strong></div> <div>鏋勯犲櫒鐢ㄤ簬鍒濆鍖栫被鐨勬柊瀵硅薄錛氭瀯閫犲櫒涓嶆槸鏂規硶錛屾病鏈夎繑鍥炵被鍨嬶紱鏋勯犲櫒鐨勫0鏄庝腑鍙互浣跨敤浠ヤ笅璁塊棶璇存槑絎︼細</div> <div>–      private</div> <div>–      protected</div> <div>–      public</div> <div>–      鏃犺鏄庣</div> <div></div> <div><strong>灝嗕俊鎭紶閫掔粰鏂規硶鎴栨瀯閫犲櫒</strong><strong></strong></div> <div>鍙傛暟綾誨瀷錛?/div> <div>鍙傛暟鍚嶇О錛?/div> <div>鎸夊間紶閫掞細鍙傛暟鏄師濮嬬被鍨嬶紝鏂規硶涓嶈兘鏀瑰彉鍏跺鹼紱鍙傛暟鏄紩鐢ㄧ被鍨嬶紝鏂規硶涓嶈兘鏀瑰彉鍏跺紩鐢紝浣嗗彲浠ユ敼鍙樺紩鐢ㄥ璞$殑鍊箋?/div> <div></div> <div><strong>浠庢柟娉曡繑鍥炲?/strong><strong></strong></div> <div>鍦ㄦ柟娉曞0鏄庝腑澹版槑鏂規硶鐨勮繑鍥炵被鍨嬶紱eturn璇彞榪斿洖鍊肩殑鏁版嵁綾誨瀷蹇呴』鍖歸厤鏂規硶澹版槑鐨勮繑鍥炵被鍨嬶紱鏂規硶鍙互榪斿洖鍘熷綾誨瀷錛屼篃鍙互榪斿洖寮曠敤綾誨瀷銆?strong></strong></div> <div></div> <div><strong>浣跨敤</strong><strong>this</strong><strong>鍏抽敭瀛?/strong><strong></strong></div> <div>鍦ㄥ疄渚嬫柟娉曟垨鏋勯犲櫒涓紝this寮曠敤褰撳墠瀵硅薄錛屼篃灝辨槸琚皟鐢ㄧ殑鏂規硶鎴栨瀯閫犲櫒鎵灞炵殑瀵硅薄錛涘湪鏋勯犲櫒涓紝榪樺彲浠ヤ嬌鐢╰his鍏抽敭瀛楄皟鐢ㄧ浉鍚岀被涓殑鍙︿竴涓瀯閫犲櫒銆?/div> <div></div> <div><strong>鎺у埗瀵圭被鎴愬憳鐨勮闂?/strong><strong></strong></div> <div>璁塊棶璇存槑絎﹀喅瀹氬叾浠栫被鏄惁鍙互浣跨敤鏌愪釜鎴愬憳鎴栬皟鐢ㄦ煇涓柟娉曘侸ava緙栫▼璇█鏀寔鍥涚鐢ㄤ簬鎴愬憳鍙橀噺鍜屾柟娉曠殑璁塊棶綰у埆錛歱rivate銆乸rotected銆乸ublic鍜?濡傛灉娌℃湁鎸囧畾)package銆?strong></strong></div> <div><strong>璁塊棶綰у埆</strong><strong></strong></div> <div>Private錛氱被</div> <div>鏃犺鏄庣錛氱被銆佸寘</div> <div>Protected錛氱被銆佸寘銆佸瓙綾?/div> <div>Public錛氱被銆佸寘銆佸瓙綾匯佹墍鏈夌被</div> <div></div> <div><strong>瀹炰緥鍜岀被鎴愬憳鐨勫垵濮嬪寲</strong><strong></strong></div> <div>鍙互鍦ㄥ0鏄庣殑鍚屾椂榪涜鍒濆鍖栵紝浣嗘槸鏈変竴浜涢檺鍒訛細</div> <div>–      蹇呴』浠ヤ竴涓祴鍊艱鍙ヨ〃杈懼垵濮嬪寲鏂瑰紡</div> <div>–      鍒濆鍖栬〃杈懼紡涓嶈兘璋冪敤浠諱綍琚0鏄庝負鎶涘嚭闈炶繍琛屾椂寮傚父鐨勬柟娉?/div> <div>–      濡傛灉鍒濆鍖栬〃杈懼紡璋冪敤涓涓姏鍑鴻繍琛屾椂寮傚父鐨勬柟娉曪紝閭d箞瀹冧笉鑳借繘琛岄敊璇仮澶?/div> <div>浣跨敤闈欐佸垵濮嬪寲鍧楀垵濮嬪寲綾繪垚鍛橈紱</div> <div>瀹炰緥鎴愬憳鐨勫垵濮嬪寲銆?/div> <div><strong></strong></div> <div><strong>瑕嗙洊鍜岄殣钘忔柟娉?/strong><strong></strong></div> <div>瑕嗙洊錛坥verride錛夛紙瀹炰緥鏂規硶錛夛細</div> <div>–      瀛愮被涓殑 涓疄渚嬫柟娉曚笌瓚呯被涓殑瀹炰緥鏂規硶鍏鋒湁鐩稿悓鐨勬爣璁板拰榪斿洖綾誨瀷</div> <div>–      鏂規硶鐨勬爣璁幫細鍚嶇О錛屽弬鏁版暟閲忋佸弬鏁扮被鍨?/div> <div>–      瑕嗙洊鏂規硶鍙互鍏鋒湁涓嶅悓鐨則hrows瀛愬彞</div> <div>–      瑕嗙洊鏂規硶鐨勮闂鏄庣鍏佽璁塊棶闄愬埗鍙兘姣旇瑕嗙洊鏂規硶鐨勫</div> <div>–      瀛愮被涓嶈兘瑕嗙洊瓚呯被涓0鏄庝負final鐨勬柟娉?/div> <div>–      瀛愮被蹇呴』瑕嗙洊瓚呯被涓0鏄庝負abstract鐨勬柟娉曪紝鍚﹀垯瀛愮被鏈韓蹇呴』鏄娊璞$殑</div> <div>瑕嗙洊鍜岄噸杞斤紙overload錛夛紱</div> <div>瑕嗙洊鍜岄殣钘忥紙綾繪柟娉曪級銆?/div> <div></div> <div><strong>闅愯棌鎴愬憳鍙橀噺</strong><strong></strong></div> <div>鍦ㄧ被涓紝濡傛灉涓涓垚鍛樺彉閲忎笌瓚呯被涓殑鎴愬憳鍙橀噺鍚屽悕錛堝嵆浣垮畠浠殑綾誨瀷涓嶅悓錛夛紝閭d箞瀹冮殣钘忚秴綾繪垚鍛樺彉閲忥紱</div> <div>鍦ㄥ瓙綾諱腑錛屼笉鑳介氳繃綆鍗曞悕縐板紩鐢ㄨ秴綾諱腑鐨勬垚鍛樺彉閲忥紝鑰屾槸蹇呴』閫氳繃super璁塊棶瀹冿紱</div> <div>浠g爜鍙鎬у樊錛屼笉寤鴻闅愯棌鎴愬憳鍙橀噺銆?/div> <div></div> <div><strong>浣跨敤</strong><strong>super</strong></div> <div>浣跨敤super璋冪敤琚鐩栫殑鏂規硶錛涗嬌鐢╯uper璋冪敤琚殣钘忕殑鎴愬憳鍙橀噺錛涗嬌鐢╯uper鍦ㄦ瀯閫犲櫒涓皟鐢ㄨ秴綾葷殑鏋勯犲櫒銆?/div> <div></div> <div><strong>浣跨敤</strong><strong>Object</strong><strong>鐨勫悗浠?/strong><strong></strong></div> <div>姣忎釜綾婚兘鏄疧bject綾葷殑鐩存帴鍚庝唬鎴栭棿鎺ュ悗浠o紱</div> <div>Object綾誨畾涔変簡鎵鏈夌被閮藉繀欏繪湁鐨勫熀鏈姸鎬佸拰琛屼負錛?/div> <div>–      clone</div> <div>–      equals鍜宧ashCode</div> <div>–      finalize</div> <div>–      toString</div> <div>–      getClass</div> <div>–          notify銆乶otifyAll鍜寃ait</div> <div></div> <div><strong>緙栧啓</strong><strong>final</strong><strong>綾誨拰鏂規硶</strong><strong></strong></div> <div>灝嗙被澹版槑涓篺inal錛屽嵆綾諱笉鑳借瀛愮被鍖栵細</div> <div>–      閫氳繃闃叉緋葷粺琚敼鐗堟潵鎻愰珮緋葷粺鐨勫畨鍏ㄦ?/div> <div>–      鍑轟簬璁捐涓婄殑鍘熷洜錛屾煇浜涚被涓嶉渶瑕佸瓙綾?/div> <div>final鏂規硶錛?/div> <div>–          鍦ㄦ柟娉曞0鏄庝腑浣跨敤final鍏抽敭瀛楄〃紺鴻繖涓柟娉曚笉鑳借瀛愮被瑕嗙洊</div> <div></div> <div><strong>緙栧啓鎶借薄綾誨拰鏂規硶</strong><strong></strong></div> <div>鎶借薄綾伙細</div> <div>–      琛ㄧず涓涓娊璞$殑姒傚康錛屼笉搴旇琚疄渚嬪寲</div> <div>–      abstract鍏抽敭瀛?/div> <div>鎶借薄鏂規硶錛?/div> <div>–      娌℃湁瀹炵幇鐨勬柟娉曪紝鍏佽瀛愮被鎻愪緵榪欎簺鏂規硶鐨勫疄鐜扮粏鑺?/div> <div>–          濡傛灉鎶借薄綾誨彧鍖呭惈鎶借薄鏂規硶錛岄偅涔堝畠搴旇琚畾涔夋垚鎺ュ彛</div> <div></div> <div><strong>鍒涘緩綾葷殑灝忕粨</strong><strong>    </strong></div> <div>綾葷殑瀹氫箟鏈変袱涓儴鍒嗭細</div> <div>–     綾誨0鏄?/div> <div>–     綾諱綋錛氭垚鍛樺彉閲忋佹柟娉曘佹瀯閫犲櫒</div> <div>璁塊棶璇存槑絎︹斺旀帶鍒跺鎴愬憳鍙橀噺鍜屾柟娉曠殑璁塊棶鏂瑰紡錛?/div> <div>綾誨彉閲忋佺被鏂規硶錛宻tatic鏂規硶鍏抽敭瀛?/div> <div>瀹炰緥鎴愬憳銆佸疄渚嬫柟娉?/div> <div></div> <div></div> <div><strong>浜斻佹帴鍙e拰鍖?/strong><strong></strong></div> <div><strong></strong></div> <div><strong>瀹炵幇鎺ュ彛錛?/strong>implements鍏抽敭瀛?/div> <div></div> <div>綾誨彲浠ュ疄鐜板涓帴鍙?implements鍏抽敭瀛楀悗闈㈣窡浠ラ楀彿鍒嗛殧鐨勬帴鍙e垪琛紱</div> <div>濡傛灉鏈塭xtends鍏抽敭瀛?implements瀛愬彞搴旇鍦╡xtends瀛愬彞鐨勫悗闈紱</div> <div>綾昏涔堝繀闇瀹炵幇鎺ュ彛鍙婂叾瓚呮帴鍙d腑鐨勬墍鏈夋柟娉?瑕佷箞綾誨繀欏昏澹版槑涓烘娊璞$殑錛?/div> <div>綾諱腑鐨勬柟娉曟爣璁?鍚嶇О鍜屽弬鏁板垪琛?蹇呴』鍖歸厤鎺ュ彛涓殑鏂規硶鏍囪銆?/div> <div></div> <div><strong>灝嗘帴鍙d綔涓虹被鍨嬩嬌鐢?/strong><strong></strong></div> <div>鍦ㄥ畾涔変簡涓涓柊鎺ュ彛鏄?灝辨槸鍦ㄥ畾涔変竴涓柊鐨勫紩鐢ㄦ暟鎹被鍨嬶紱</div> <div>瀹氫箟鍙竴鐢ㄦ帴鍙?瀹炰緥鍖栨槸蹇呴』鐢ㄧ被銆?/div> <div></div> <div><strong>鎺ュ彛涓嶈兘鏀瑰彉</strong><strong></strong></div> <div>浠庤娉曠殑瑙掑害鐪?鎺ュ彛鍙互琚敼鍙橈紱</div> <div>浠庤璁$殑瑙掑害鐪?涓涓凡緇忓湪緋葷粺涓騫挎硾浣跨敤鐨勬帴鍙?涓嶈兘杞繪槗琚敼鍙橈紱</div> <div>濡傛灉鏀瑰彉浜嗘帴鍙?瀹炵幇鍘熸帴鍙g殑綾婚兘灝嗘棤娉曞伐浣滐紱</div> <div>搴旇灝藉彲鑳界殑鑰冭檻鎺ュ彛鎵鎻愪緵鐨勬柟娉曪紱</div> <div>濡傛灉瑕佹敼鍙樻帴鍙?鐢ㄧ戶鎵跨殑鏂瑰紡瀹氫箟鏂扮殑鎺ュ彛銆?/div> <div></div> <div><strong>鎺ュ彛灝忕粨</strong><strong></strong></div> <div>鎺ュ彛瀹氫箟浜嗕竴縐嶅姛鑳芥弿榪?瀹氫箟浜嗗璞′箣闂磋繘琛岄氳鐨勫崗璁紱</div> <div>鎺ュ彛瀹氫箟鐢辨帴鍙e0鏄庡拰鎺ュ彛浣撶粍鎴愶紱</div> <div>鎺ュ彛鍖呭惈涓緇勬柟娉曠殑澹版槑,浣嗘病鏈夋柟娉曠殑瀹炵幇錛?/div> <div>瀹炵幇鎺ュ彛鐨勭被蹇呴』瀹炵幇鎺ュ彛涓0鏄庣殑鎵鏈夋柟娉曪紱</div> <div>鎺ュ彛鍚嶇О鍙互浣滀負鏁版嵁綾誨瀷浣跨敤銆?/div> <div></div> <div><strong>鍒涘緩鍜屼嬌鐢ㄥ寘</strong><strong></strong></div> <div>鍒涘緩鍖咃細</div> <div>–     灝唒ackage璇彞浣滀負綾繪垨鎺ュ彛婧愪唬鐮佹枃浠朵腑鐨勭涓鏉¤鍙?/div> <div>–     綾繪垨鎺ュ彛鐨勬簮浠g爜鍜岀被鏂囦歡鐨勮礬寰勫悕涓庡寘鐨勫悕縐扮浉瀵瑰簲</div> <div>浣跨敤鍙︿竴涓寘涓殑鎺ュ彛鎴栫被錛?/div> <div>–     綾繪垨鎺ュ彛鐨勯檺瀹氬悕</div> <div>–     瀵煎叆綾繪垨鎺ュ彛</div> <div>–     瀵煎叆綾繪垨鎺ュ彛鎵鍦ㄧ殑鏁翠釜鍖?/div> <div></div> <div><strong>鍏佷嬌鐢ㄥ紓甯稿鐞嗛敊璇?/strong><strong></strong></div> <div><strong></strong></div> <div><strong>浠涔堟槸寮傚父</strong>錛氬紓甯?exception)鏄湪紼嬪簭鎵ц鏈熼棿涓柇鎸囦護鐨勬甯告祦紼嬬殑浜嬩歡銆?/div> <div></div> <div><strong>try</strong><strong>鍧?/strong><strong></strong></div> <div>try {</div> <div>       statements</div> <div>}</div> <div>statements鏄寘鍚竴涓垨澶氫釜鍙兘鎶涘嚭寮傚父鐨勮鍙ャ?/div> <div></div> <div><strong>catch</strong><strong>鍧?/strong><strong></strong></div> <div>姣忎釜catch鍧楁槸涓涓紓甯稿鐞嗗櫒錛屽畠澶勭悊鐢卞叾鍙傛暟鎸囧畾鐨勫紓甯哥被鍨?/div> <div>try{</div> <div>       ......</div> <div>} catch(ExceptionType name) {</div> <div>       ……</div> <div>} catch (ExceptionType name) {</div> <div>       ……</div> <div>}</div> <div></div> <div><strong>finally</strong><strong>鍧?/strong><strong></strong></div> <div>finally鍧楁槸鍙夌殑錛屽畠鎻愪緵涓縐嶆満鍒訛紝鍏剁洰鐨勬槸鏃犺try鍧椾腑鏄惁鍙戠敓寮傚父閮界‘淇濊繘琛屾竻鐞嗗伐浣滐紱</div> <div>鏃犺鏄惁鍙戠敓寮傚父錛岄兘浼氭墽琛宖inally鍧椾腑鐨勪唬鐮併?/div> <div></div> <div><strong>throw</strong><strong>璇彞</strong><strong></strong></div> <div>throw璇彞闇瑕佷竴涓弬鏁幫細涓涓彲鎶涘嚭鐨勶紙Throwable錛夊璞★紱鍙姏鍑哄璞℃槸Throwable綾葷殑瀛愮被銆?/div> <div></div> <div><strong>Throwable</strong><strong>綾誨強鍏跺瓙綾?/strong><strong></strong></div> <div>Throwable綾繪湁涓や釜鐩存帴瀛愮被錛?/div> <div>–     Error</div> <div>–     Exception</div> <div>Error錛?/div> <div>–     JAVA铏氭嫙鏈虹殑鍔ㄦ侀摼鎺ユ晠闅滄垨鍏跺畠“紜?#8221;鏁呴殰錛屼竴鑸殑紼嬪簭涓嶅簲璇ユ崟鑾稥rror錛屼篃涓嶈兘鎶涘嚭Error</div> <div>Exception錛?/div> <div>澶у鏁扮▼搴忔姏鍑哄茍鎹曡幏浠嶦xception綾繪淳鐢熺殑瀵硅薄銆侲xception琛ㄧず鍙戠敓浜嗕竴涓棶棰橈紝浣嗗茍涓嶆槸涓ラ噸鐨勭郴緇熼棶棰樸備綘鍐欑殑澶氭暟紼嬪簭灝嗘姏鍑哄茍鎹曡幏Exception(鑰屼笉鏄疎rror)銆?/div> <div>–     Exception琛ㄧず鍙戠敓浜嗕竴涓棶棰橈紝浣嗗茍涓嶆槸涓ラ噸鐨勭郴緇熼棶棰?/div> <div>–     Exception鐨勪笉鍚屽瓙綾昏〃紺哄彲鑳藉彂鐢熺殑鍚勭寮傚父</div> <div></div> <div><strong>寮傚父鐨勪紭鐐癸細</strong>灝嗛敊璇唬鐮佷笌“甯歌”浠g爜鍒嗙錛涘皢閿欒娌胯皟鐢ㄥ爢鏍堝悜涓婁紶閫掞紱瀵歸敊璇被鍨嬭繘琛屽垎緇勫拰鍖哄垎銆?/div> <div></div> <div><strong>寮傚父鐨勫皬緇?/strong><strong></strong></div> <div>紼嬪簭鍙互浣跨敤寮傚父琛ㄦ槑鍙戠敓浜嗛敊璇紱</div> <div>紼嬪簭鍙互浣跨敤throw璇彞鎶涘嚭寮傚父錛?/div> <div>寮傚父鏄竴涓璞★紙Throwable鐨勫瓙綾伙級錛?/div> <div>紼嬪簭鍙互浣跨敤try銆乧atch璇彞finally鏉ユ崟鑾峰紓甯革細</div> <div>–     try璇彞鏍囪瘑鍑哄彲鑳藉彂鐢熺殑寮傚父</div> <div>–     catch璇彞鏍囪瘑鍑哄紓甯稿鐞嗗櫒</div> <div>–          finally浠g爜鍧椾笉璁烘姏鍑哄紓甯鎬笌鍚﹂兘浼氳鎵ц錛岄傜敤浜庢竻鐞嗗伐浣?/div> <div></div> <div></div> <div><strong>涓冦佺嚎紼嬶細鍚屾椂鎵ц澶氫釜浠誨姟</strong><strong></strong></div> <div><strong></strong></div> <div><strong>鍙鐢ㄥ埌綰跨▼灝卞繀欏葷戶鎵挎垨鎺ュ彛錛?/strong><strong>Thread</strong><strong>銆?/strong><strong></strong></div> <div><strong>鍙鐢ㄥ埌綰跨▼灝卞繀欏昏鐢?/strong><strong>run</strong><strong>鏂規硶銆?/strong><strong></strong></div> <div><strong></strong></div> <div><strong>浠涔堟槸綰跨▼錛?/strong><strong></strong></div> <div>–     綰跨▼鏄▼搴忓唴鐨勪竴涓崟涓鐨勯『搴忔帶鍒舵祦紼?/div> <div>–     綰跨▼鏈韓涓嶆槸紼嬪簭錛屼笉鑳藉崟鐙繍琛岋紝瀹冨湪涓涓▼搴忓唴榪愯</div> <div>–     澶氫釜綰跨▼鍙互鍚屾椂榪愯錛屽湪涓涓▼搴忓唴鎵ц涓嶅悓鐨勪換鍔?/div> <div></div> <div><strong>瀹氬埗綰跨▼鐨?/strong><strong>run</strong><strong>鏂規硶</strong><strong></strong></div> <div>run鏂規硶鎵ц綰跨▼鐨勫伐浣滐紱</div> <div>run鏂規硶瀹炵幇浜嗙嚎紼嬬殑榪愯琛屼負錛?/div> <div>run鏂規硶鍙互鍋氫換浣曞彲浠ョ敤璇彞瀹炵幇鐨勪簨銆?/div> <div></div> <div><strong>涓虹嚎紼嬫彁渚?/strong><strong>run</strong><strong>鏂規硶錛?/strong><strong></strong></div> <div>–     緇ф壙Thread綾伙紝騫惰鐩杛un鏂規硶</div> <div>–     瀹炵幇Runnable鎺ュ彛</div> <div></div> <div><strong>瀵?/strong><strong>Thread</strong><strong>綾昏繘琛屽瓙綾誨寲鍜岃鐩?/strong><strong>run</strong></div> <div>public class SimpleThread extends Thread {</div> <div>       public SimpleThread(String str) {</div> <div>           super(str);</div> <div>       }</div> <div>       public void run() {</div> <div>           for (int i = 0; i < 10; i++) {</div> <div>               System.out.println(i + " " + getName());</div> <div>               try {</div> <div>                   sleep((long)(Math.random() * 1000));</div> <div>               } catch (InterruptedException e) {}</div> <div>           }</div> <div>           System.out.println("DONE! " + getName());</div> <div>       }</div> <div>}</div> <div></div> <div><strong>瀹炵幇</strong><strong>Runnable</strong><strong>鎺ュ彛錛?/strong>濡傛灉涓涓被宸茬粡緇ф壙浜嗗彟涓涓被錛岄偅涔堣鎯沖疄鐜扮嚎紼嬪氨蹇呴』瀹炵幇Runnable鎺ュ彛銆?/div> <div></div> <div>鍦ㄧ嚎紼嬩腑緇撴灉鏄殢鏈轟駭鐢熺殑錛屽鏋滄兂閿佸畾瀵硅薄灝辮浣跨敤Synchronized鍏抽敭瀛楁剰鎬濅負閿佸畾鏂規硶鎵鏈夊湪鐨勫璞°傚湪瀵硅薄琚В閿佸墠錛屽叾浠栫嚎紼嬩笉鑳借皟鐢ㄧ浉鍚屽璞′笂鐨勮鍚屾鐨勬柟娉曘傛剰鎬濅負鎵ц涓涓璞″悗嬋媧誨彟涓涓璞★紝鑷韓鏆傛椂鐫$湢錛岀瓑寰呭彟涓涓璞℃墽琛屽畬姣曪紝鍦ㄦ墽琛屼笅涓姝ワ紝鍙嶅濡傛銆?/div> <div><font face="Verdana"></font></div> <div><font face="Verdana"><strong>鍏両O錛氳鍜屽啓</strong></font></div> <div> <p><font face="Verdana"><strong>濡備綍浣跨敤綆¢亾嫻侊細</strong>綆¢亾鐢ㄤ簬灝嗕竴涓嚎紼嬬殑杈撳嚭榪炴帴鍒板彟涓涓嚎紼嬬殑杈撳叆</font></p> <p><font face="Verdana"><strong>濡備綍灝佽嫻侊細</strong>嫻佺粡甯歌浠ヤ笅鐨勮繖縐嶅艦寮忓皝瑁呰搗鏉ワ紝浠ヤ究緇勫悎璁稿嫻佺殑鍚勭鍔熻兘</font></p> <p><font face="Verdana"><strong>瀵硅薄鐨勪覆琛屽寲錛?/strong>Java.io鍖呬腑鐨勪袱涓祦鈥斺擮bjectInputStream鍜孫bjectOutputStream鏄瓧鑺傛祦錛屼粬浠殑宸ヤ綔涓庡叾浠栬緭鍏ュ拰杈撳嚭嫻佺被浼箋備絾浠栦滑鐨勭壒孌婁箣澶勫湪浜庡畠浠彲浠ヨ鍐欏璞°?/font></p> <p><font face="Verdana"><strong>瀵瑰璞¤繘琛屼覆琛屽寲錛?/strong>濡傛灉灝嗕竴涓笉鑳戒覆琛屽寲鐨勫璞′紶閫掔粰writeObject鏂規硶錛岄偅涔堝畠鎶涘嚭涓涓狽otSerializable Exception銆傚璞″彧鑳藉湪瀹冪殑綾誨疄鐜頒簡Serializable鎺ュ彛鐨勬儏鍐典笅琚覆琛屽寲銆?/font></p> <p><font face="Verdana"><strong>涓虹被鎻愪緵瀵硅薄涓茶鍖栵細</strong>鍙湁鍦ㄥ璞$殑綾誨疄鐜頒簡Serializable鎺ュ彛鎯呭喌涓嬶紝瀵硅薄鎵嶆槸鍙覆琛屽寲鐨勩傛墍鏈夛紝濡傛灉鎯寵瀵逛綘鐨勭被鐨勫疄渚嬭繘涓茶鍖栵紝榪欎釜綾誨繀欏誨疄鐜癝erializable鎺ュ彛銆係erializable鎺ュ彛鏄竴涓┖鎺ュ彛錛屼篃灝辨槸璇達紝浠栦笉鍖呭惈浠諱綍鏂規硶澹版槑錛涘畠鐨勪綔鐢ㄥ彧鏄〃鏄庤繖涓被鐨勫璞″彲浠ヨ涓茶鍖栥?/font></p> <p><font face="Verdana"><strong>I/O澶嶅埗灝忕▼搴?Copy.java)錛屽涓嬶細</strong></font></p> <p><font face="Verdana">import java.io.File;<br /> import java.io.FileReader;<br /> import java.io.FileWriter;<br /> import java.io.IOException;<br /> //浠ヤ笂鏄紼嬪簭鐢ㄥ埌鐨処O綾葷殑鍖咃紝涔熷彲浠ョ敤“import java.io.*”</font></p> <p><font face="Verdana">public class Copy {<br />        public static void main(String[] args) throws IOException {<br /> File inputFile = new File("D:\\temp\\HelloWorld.java"); //鐩爣鏂囦歡璺緞錛孞AVA涓礬寰勫湴鍧鍙兘鐢?#8220;\\”鎴?#8220;/”涓嶈兘浣跨敤“\”<br /> File outputFile = new File("D:\\temp\\OutAgain.java"); //澶嶅埗鍚庢柊鏂囦歡淇濆瓨璺緞</font></p> <p><font face="Verdana">           FileReader in = new FileReader(inputFile);<br />            FileWriter out = new FileWriter(outputFile);<br />            int c;</font></p> <p><font face="Verdana">           while ((c = in.read()) != -1) //涓鐩村驚鐜埌0琛ㄧず宸茬粡澶嶅埗瀹屾瘯錛屾墍浠ヨ繖閲屼嬌鐢ㄤ笉絳変簬璐?<br />               out.write(c);</font></p> <p><font face="Verdana">           in.close(); //鍏抽棴璇繪枃浠跺璞?br />            out.close(); //鍏抽棴鍐欐枃浠跺璞?br />        }<br /> </font></p> </div><img src ="http://www.tkk7.com/mlh123caoer/aggbug/168109.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-12-16 21:04 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/12/16/168109.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java 5|6 騫跺彂鍖呬粙緇?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/10/24/155474.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Wed, 24 Oct 2007 02:14:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/10/24/155474.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/155474.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/10/24/155474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/155474.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/155474.html</trackback:ping><description><![CDATA[     鎽樿: java.util.concurrent 鍖呭惈璁稿綰跨▼瀹夊叏銆佹祴璇曡壇濂姐侀珮鎬ц兘鐨勫茍鍙戞瀯寤哄潡銆備笉瀹㈡皵鍦拌錛屽垱寤?java.util.concurrent 鐨勭洰鐨勫氨鏄瀹炵幇 Collection 妗嗘灦瀵規暟鎹粨鏋勬墍鎵ц鐨勫茍鍙戞搷浣溿傞氳繃鎻愪緵涓緇勫彲闈犵殑銆侀珮鎬ц兘騫跺彂鏋勫緩鍧楋紝寮鍙戜漢鍛樺彲浠ユ彁楂樺茍鍙戠被鐨勭嚎紼嬪畨鍏ㄣ佸彲浼哥緝鎬с佹ц兘銆佸彲璇繪у拰鍙潬鎬с?濡傛灉涓浜涚被鍚嶇湅璧鋒潵鐩鎬技錛屽彲鑳芥槸鍥犱負 java.util.concurr...  <a href='http://www.tkk7.com/mlh123caoer/archive/2007/10/24/155474.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/155474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-10-24 10:14 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/10/24/155474.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>1銆佸爢鎺掑簭鐨勫疄鐜?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149091.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Fri, 28 Sep 2007 06:24:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149091.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/149091.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149091.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/149091.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/149091.html</trackback:ping><description><![CDATA[<div id="m8k8acm" class="codeShade"><code><font color="#ffffff"></font><img alt="Heap sort" src="http://www.java2s.com/Code/JavaImages/Heap.PNG" border="0" /><br /> <font color="#ffffff">       </font></code></div> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.io.IOException;</font><br /> <font color="#ffffff"></font><br /> <font color="#7f0055"><strong>class </strong></font><font color="#000000">MyNode </font><font color="#000000">{</font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private </strong></font><font color="#7f0055"><strong>int </strong></font><font color="#000000">iData; </font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#000000">MyNode</font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">key</font><font color="#000000">) {</font><br /> <font color="#ffffff">    </font><font color="#000000">iData = key;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>int </strong></font><font color="#000000">getKey</font><font color="#000000">() {</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>return </strong></font><font color="#000000">iData;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#7f0055"><strong>public class </strong></font><font color="#000000">Heap </font><font color="#000000">{</font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private </strong></font><font color="#000000">MyNode</font><font color="#000000">[] </font><font color="#000000">heapArray;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private </strong></font><font color="#7f0055"><strong>int </strong></font><font color="#000000">maxSize;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private </strong></font><font color="#7f0055"><strong>int </strong></font><font color="#000000">currentSize; </font><font color="#3f7f5f">// number of items in array</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#000000">Heap</font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">mx</font><font color="#000000">) {</font><br /> <font color="#ffffff">    </font><font color="#000000">maxSize = mx;</font><br /> <font color="#ffffff">    </font><font color="#000000">currentSize = </font><font color="#990000">0</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">heapArray = </font><font color="#7f0055"><strong>new </strong></font><font color="#000000">MyNode</font><font color="#000000">[</font><font color="#000000">maxSize</font><font color="#000000">]</font><font color="#000000">;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#000000">MyNode remove</font><font color="#000000">() </font><br /> <font color="#ffffff">  </font><font color="#000000">{ </font><br /> <font color="#ffffff">    </font><font color="#000000">MyNode root = heapArray</font><font color="#000000">[</font><font color="#990000">0</font><font color="#000000">]</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#990000">0</font><font color="#000000">] </font><font color="#000000">= heapArray</font><font color="#000000">[</font><font color="#000000">--currentSize</font><font color="#000000">]</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">trickleDown</font><font color="#000000">(</font><font color="#990000">0</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>return </strong></font><font color="#000000">root;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">trickleDown</font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">index</font><font color="#000000">) {</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">largerChild;</font><br /> <font color="#ffffff">    </font><font color="#000000">MyNode top = heapArray</font><font color="#000000">[</font><font color="#000000">index</font><font color="#000000">]</font><font color="#000000">; </font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>while </strong></font><font color="#000000">(</font><font color="#000000">index < currentSize / </font><font color="#990000">2</font><font color="#000000">)</font><br /> <font color="#ffffff">    </font><font color="#000000">{</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">leftChild = </font><font color="#990000">2 </font><font color="#000000">* index + </font><font color="#990000">1</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">rightChild = leftChild + </font><font color="#990000">1</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#3f7f5f">// 鎵懼埌鏈澶х殑瀛愯妭鐐?/font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">rightChild < currentSize</font><br /> <font color="#ffffff">          </font><font color="#000000">&& </font><br /> <font color="#ffffff">          </font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">leftChild</font><font color="#000000">]</font><font color="#000000">.getKey</font><font color="#000000">() </font><font color="#000000">< heapArray</font><font color="#000000">[</font><font color="#000000">rightChild</font><font color="#000000">]</font><br /> <font color="#ffffff">              </font><font color="#000000">.getKey</font><font color="#000000">())</font><br /> <font color="#ffffff">        </font><font color="#000000">largerChild = rightChild;</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>else</strong></font><br /> <font color="#ffffff">        </font><font color="#000000">largerChild = leftChild;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">top.getKey</font><font color="#000000">() </font><font color="#000000">>= heapArray</font><font color="#000000">[</font><font color="#000000">largerChild</font><font color="#000000">]</font><font color="#000000">.getKey</font><font color="#000000">())</font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>break</strong></font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">      </font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">index</font><font color="#000000">] </font><font color="#000000">= heapArray</font><font color="#000000">[</font><font color="#000000">largerChild</font><font color="#000000">]</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">index = largerChild; </font><br /> <font color="#ffffff">    </font><font color="#000000">}</font><br /> <font color="#ffffff">    </font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">index</font><font color="#000000">] </font><font color="#000000">= top;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">displayHeap</font><font color="#000000">() {</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">nBlanks = </font><font color="#990000">32</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">itemsPerRow = </font><font color="#990000">1</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">column = </font><font color="#990000">0</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">currentIndex = </font><font color="#990000">0</font><font color="#000000">; </font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>while </strong></font><font color="#000000">(</font><font color="#000000">currentSize > </font><font color="#990000">0</font><font color="#000000">)</font><br /> <font color="#ffffff">    </font><font color="#000000">{</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">column == </font><font color="#990000">0</font><font color="#000000">) </font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">k = </font><font color="#990000">0</font><font color="#000000">; k < nBlanks; k++</font><font color="#000000">)</font><br /> <font color="#ffffff">          </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#990000">' '</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">currentIndex</font><font color="#000000">]</font><font color="#000000">.getKey</font><font color="#000000">())</font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">++currentIndex == currentSize</font><font color="#000000">) </font><font color="#3f7f5f">//  鍒ゆ柇鏄惁杈撳嚭緇撴潫</font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>break</strong></font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">++column == itemsPerRow</font><font color="#000000">) </font><font color="#3f7f5f">// 鏄惁鍒拌揪琛屽熬?</font><br /> <font color="#ffffff">      </font><font color="#000000">{</font><br /> <font color="#ffffff">        </font><font color="#000000">nBlanks /= </font><font color="#990000">2</font><font color="#000000">; </font><br /> <font color="#ffffff">        </font><font color="#000000">itemsPerRow *= </font><font color="#990000">2</font><font color="#000000">; </font><br /> <font color="#ffffff">        </font><font color="#000000">column = </font><font color="#990000">0</font><font color="#000000">; </font><br /> <font color="#ffffff">        </font><font color="#000000">System.out.println</font><font color="#000000">()</font><font color="#000000">; </font><br /> <font color="#ffffff">      </font><font color="#000000">} </font><font color="#7f0055"><strong>else</strong></font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">k = </font><font color="#990000">0</font><font color="#000000">; k < nBlanks * </font><font color="#990000">2 </font><font color="#000000">- </font><font color="#990000">2</font><font color="#000000">; k++</font><font color="#000000">)</font><br /> <font color="#ffffff">          </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#990000">' '</font><font color="#000000">)</font><font color="#000000">; </font><font color="#3f7f5f">// 杈撳叆絀虹櫧</font><br /> <font color="#ffffff">    </font><font color="#000000">} </font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">displayArray</font><font color="#000000">() {</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">j = </font><font color="#990000">0</font><font color="#000000">; j < maxSize; j++</font><font color="#000000">)</font><br /> <font color="#ffffff">      </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">j</font><font color="#000000">]</font><font color="#000000">.getKey</font><font color="#000000">() </font><font color="#000000">+ </font><font color="#2a00ff">" "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.println</font><font color="#000000">(</font><font color="#2a00ff">""</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">insertAt</font><font color="#000000">(</font><font color="#7f0055"><strong>int </strong></font><font color="#000000">index, MyNode newNode</font><font color="#000000">) {</font><br /> <font color="#ffffff">    </font><font color="#000000">heapArray</font><font color="#000000">[</font><font color="#000000">index</font><font color="#000000">] </font><font color="#000000">= newNode;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">incrementSize</font><font color="#000000">() {</font><br /> <font color="#ffffff">    </font><font color="#000000">currentSize++;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public static </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">main</font><font color="#000000">(</font><font color="#000000">String</font><font color="#000000">[] </font><font color="#000000">args</font><font color="#000000">) </font><font color="#7f0055"><strong>throws </strong></font><font color="#000000">IOException </font><font color="#000000">{</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">size, i;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">    </font><font color="#000000">size = </font><font color="#990000">100</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">Heap theHeap = </font><font color="#7f0055"><strong>new </strong></font><font color="#000000">Heap</font><font color="#000000">(</font><font color="#000000">size</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#000000">i = </font><font color="#990000">0</font><font color="#000000">; i < size; i++</font><font color="#000000">) {</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>int </strong></font><font color="#000000">random = </font><font color="#000000">(</font><font color="#7f0055"><strong>int</strong></font><font color="#000000">) (</font><font color="#000000">java.lang.Math.random</font><font color="#000000">() </font><font color="#000000">* </font><font color="#990000">100</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">MyNode newNode = </font><font color="#7f0055"><strong>new </strong></font><font color="#000000">MyNode</font><font color="#000000">(</font><font color="#000000">random</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">theHeap.insertAt</font><font color="#000000">(</font><font color="#000000">i, newNode</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">theHeap.incrementSize</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#2a00ff">"Random: "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">theHeap.displayArray</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#000000">i = size / </font><font color="#990000">2 </font><font color="#000000">- </font><font color="#990000">1</font><font color="#000000">; i >= </font><font color="#990000">0</font><font color="#000000">; i--</font><font color="#000000">)</font><br /> <font color="#ffffff">      </font><font color="#000000">theHeap.trickleDown</font><font color="#000000">(</font><font color="#000000">i</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#2a00ff">"Heap:   "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">theHeap.displayArray</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">theHeap.displayHeap</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>for </strong></font><font color="#000000">(</font><font color="#000000">i = size - </font><font color="#990000">1</font><font color="#000000">; i >= </font><font color="#990000">0</font><font color="#000000">; i--</font><font color="#000000">) {</font><br /> <font color="#ffffff">      </font><font color="#000000">MyNode biggestNode = theHeap.remove</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">theHeap.insertAt</font><font color="#000000">(</font><font color="#000000">i, biggestNode</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">}</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#2a00ff">"Sorted: "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">theHeap.displayArray</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#000000">}</font><br /> <font color="#ffffff"></font><br /><img src ="http://www.tkk7.com/mlh123caoer/aggbug/149091.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-09-28 14:24 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149091.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>DB榪炴帴姹犵鐞嗙紪紼嬩婦渚?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149082.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Fri, 28 Sep 2007 06:10:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149082.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/149082.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149082.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/149082.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/149082.html</trackback:ping><description><![CDATA[<div id="00006g0" class="codeShade"><code><font color="#ffffff"></font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.sql.Connection;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.sql.ResultSet;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.sql.SQLException;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.sql.Statement;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">java.util.Properties;</font><br /> <font color="#ffffff"></font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">javax.naming.Context;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">javax.naming.InitialContext;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">javax.naming.NamingException;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">javax.sql.ConnectionPoolDataSource;</font><br /> <font color="#7f0055"><strong>import </strong></font><font color="#000000">javax.sql.PooledConnection;</font><br /> <font color="#ffffff"></font><br /> <font color="#7f0055"><strong>public class </strong></font><font color="#000000">MainClass </font><font color="#000000">{</font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>public static </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">main</font><font color="#000000">(</font><font color="#000000">String</font><font color="#000000">[] </font><font color="#000000">args</font><font color="#000000">) {</font><br /> <font color="#ffffff">    </font><font color="#000000">Connection connection = </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">Statement statement = </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">ResultSet resultSet = </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>try </strong></font><font color="#000000">{</font><br /> <font color="#ffffff">      </font><font color="#000000">connection = getConnection</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#3f7f5f">// 鎿嶄綔榪炴帴</font><br /> <font color="#ffffff">      </font><font color="#000000">statement = connection.createStatement</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">String selectEmployeesSQL = </font><font color="#2a00ff">"SELECT * FROM employees"</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">resultSet = statement.executeQuery</font><font color="#000000">(</font><font color="#000000">selectEmployeesSQL</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>while </strong></font><font color="#000000">(</font><font color="#000000">resultSet.next</font><font color="#000000">()) {</font><br /> <font color="#ffffff">        </font><font color="#000000">printEmployee</font><font color="#000000">(</font><font color="#000000">resultSet</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">      </font><font color="#000000">}</font><br /> <font color="#ffffff">    </font><font color="#000000">} </font><font color="#7f0055"><strong>catch </strong></font><font color="#000000">(</font><font color="#000000">Exception e</font><font color="#000000">) {</font><br /> <font color="#ffffff">      </font><font color="#000000">e.printStackTrace</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">} </font><font color="#7f0055"><strong>finally </strong></font><font color="#000000">{</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">resultSet != </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>try </strong></font><font color="#000000">{</font><br /> <font color="#ffffff">          </font><font color="#000000">resultSet.close</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#7f0055"><strong>catch </strong></font><font color="#000000">(</font><font color="#000000">SQLException e</font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#3f7f5f">// nothing we can do</font><br /> <font color="#ffffff">      </font><font color="#000000">}</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">statement != </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>try </strong></font><font color="#000000">{</font><br /> <font color="#ffffff">          </font><font color="#000000">statement.close</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#7f0055"><strong>catch </strong></font><font color="#000000">(</font><font color="#000000">SQLException e</font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#3f7f5f">// nothing we can do</font><br /> <font color="#ffffff">      </font><font color="#000000">}</font><br /> <font color="#ffffff">      </font><font color="#7f0055"><strong>if </strong></font><font color="#000000">(</font><font color="#000000">connection != </font><font color="#7f0055"><strong>null</strong></font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#7f0055"><strong>try </strong></font><font color="#000000">{</font><br /> <font color="#ffffff">          </font><font color="#000000">connection.close</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#7f0055"><strong>catch </strong></font><font color="#000000">(</font><font color="#000000">SQLException e</font><font color="#000000">) {</font><br /> <font color="#ffffff">        </font><font color="#000000">} </font><font color="#3f7f5f">// nothing we can do</font><br /> <font color="#ffffff">      </font><font color="#000000">}</font><br /> <font color="#ffffff">    </font><font color="#000000">}</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private static </strong></font><font color="#000000">Connection getConnection</font><font color="#000000">() </font><font color="#7f0055"><strong>throws </strong></font><font color="#000000">NamingException, SQLException </font><font color="#000000">{</font><br /> <font color="#ffffff">    </font><font color="#000000">InitialContext initCtx = createContext</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">String jndiName = </font><font color="#2a00ff">"HrDS"</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">ConnectionPoolDataSource dataSource = </font><font color="#000000">(</font><font color="#000000">ConnectionPoolDataSource</font><font color="#000000">) </font><font color="#000000">initCtx.lookup</font><font color="#000000">(</font><font color="#000000">jndiName</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">PooledConnection pooledConnection = dataSource.getPooledConnection</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>return </strong></font><font color="#000000">pooledConnection.getConnection</font><font color="#000000">()</font><font color="#000000">; </font><font color="#3f7f5f">// 浠庢睜涓緱鍒拌繛鎺?/font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private static </strong></font><font color="#000000">InitialContext createContext</font><font color="#000000">() </font><font color="#7f0055"><strong>throws </strong></font><font color="#000000">NamingException </font><font color="#000000">{</font><br /> <font color="#ffffff">    </font><font color="#000000">Properties env = </font><font color="#7f0055"><strong>new </strong></font><font color="#000000">Properties</font><font color="#000000">()</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">env.put</font><font color="#000000">(</font><font color="#000000">Context.INITIAL_CONTEXT_FACTORY, </font><font color="#2a00ff">"com.sun.jndi.rmi.registry.RegistryContextFactory"</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">env.put</font><font color="#000000">(</font><font color="#000000">Context.PROVIDER_URL, </font><font color="#2a00ff">"rmi://localhost:1099"</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">InitialContext context = </font><font color="#7f0055"><strong>new </strong></font><font color="#000000">InitialContext</font><font color="#000000">(</font><font color="#000000">env</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#7f0055"><strong>return </strong></font><font color="#000000">context;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">  </font><font color="#7f0055"><strong>private static </strong></font><font color="#7f0055"><strong>void </strong></font><font color="#000000">printEmployee</font><font color="#000000">(</font><font color="#000000">ResultSet resultSet</font><font color="#000000">) </font><font color="#7f0055"><strong>throws </strong></font><font color="#000000">SQLException </font><font color="#000000">{</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#000000">resultSet.getInt</font><font color="#000000">(</font><font color="#2a00ff">"employee_id"</font><font color="#000000">)</font><font color="#000000">+</font><font color="#2a00ff">", "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#000000">resultSet.getString</font><font color="#000000">(</font><font color="#2a00ff">"last_name"</font><font color="#000000">)</font><font color="#000000">+</font><font color="#2a00ff">", "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.print</font><font color="#000000">(</font><font color="#000000">resultSet.getString</font><font color="#000000">(</font><font color="#2a00ff">"first_name"</font><font color="#000000">)</font><font color="#000000">+</font><font color="#2a00ff">", "</font><font color="#000000">)</font><font color="#000000">;</font><br /> <font color="#ffffff">    </font><font color="#000000">System.out.println</font><font color="#000000">(</font><font color="#000000">resultSet.getString</font><font color="#000000">(</font><font color="#2a00ff">"email"</font><font color="#000000">))</font><font color="#000000">;</font><br /> <font color="#ffffff">  </font><font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#000000">}</font><br /> <font color="#ffffff"></font><br /> <font color="#ffffff">           </font><br /> <font color="#ffffff">       </font></code></div><img src ="http://www.tkk7.com/mlh123caoer/aggbug/149082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-09-28 14:10 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/09/28/149082.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java涓浣曢噸璁炬暟緇勭殑澶у皬錛?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/09/19/146367.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Wed, 19 Sep 2007 02:34:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/09/19/146367.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/146367.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/09/19/146367.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/146367.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/146367.html</trackback:ping><description><![CDATA[鍦↗ava涓紝鏁扮粍涓嶈兘鍔ㄦ侀噸璁懼ぇ灝忋備竴涓彲鏇夸唬鏂規硶鏄嬌鐢?a goog_ds_charindex="31">java.util.ArrayList</a> (鎴栬?a goog_ds_charindex="56">java.util.Vector</a>)浠f浛浣跨敤鍘熷鏁扮粍錛坅rray錛夈傚彟涓縐嶈В鍐蟲柟妗堟槸鐢ㄤ竴涓笉鍚屽ぇ灝忕殑鏁扮粍閲嶈鏁扮粍錛屽皢鏃ф暟緇勫唴瀹規嫹璐濆埌鏂扮殑鏁扮粍銆備笅闈㈠仛浜嗕釜婕旂ず紼嬪簭瀹炵幇絎簩縐嶆柟妗堬紝緙栧啓浜嗕釜閫氱敤鍑芥暟r<em goog_ds_charindex="154">sizeArray</em> (鍙傛暟)鏉ュ疄鐜版鍔熻兘錛?<br /> <br /> <pre goog_ds_charindex="181">/**<br goog_ds_charindex="185" /> * 浣跨敤涓涓柊澶у皬閲嶈鏁扮粍錛屽茍鎷瘋礉鏃ф暟緇勭殑鍐呭鍒版柊鏁扮粍<br goog_ds_charindex="249" /> * @param oldArray 鏃ф暟緇勮閲嶈<br goog_ds_charindex="339" /> * @param newSize 鏂版暟緇勫ぇ灝?br goog_ds_charindex="378" /> * @return 榪斿洖甯﹀悓鏍峰唴瀹圭殑鏂版暟緇?br goog_ds_charindex="433" /> */<br goog_ds_charindex="436" /> private static Object resizeArray (Object oldArray, int newSize){<br goog_ds_charindex="503" /> int oldSize = java.lang.reflect.Array.getLength(oldArray);<br goog_ds_charindex="565" /> Class elementType = oldArray.getClass().getComponentType();<br goog_ds_charindex="628" /> Object newArray = java.lang.reflect.Array.newInstance(<br goog_ds_charindex="686" /> elementType,newSize);<br goog_ds_charindex="717" /> int preserveLength = Math.min(oldSize,newSize);<br goog_ds_charindex="768" /> if (preserveLength > 0)<br goog_ds_charindex="795" /> System.arraycopy (oldArray,0,newArray,0,preserveLength);<br goog_ds_charindex="858" /> return newArray; <br /> }</pre> <pre goog_ds_charindex="884">// resizeArray()嫻嬭瘯鐢ㄤ緥<br /> public static void main (String[] args) {<br goog_ds_charindex="961" /> int[] a = {1,2,3};<br goog_ds_charindex="983" /> a = (int[])resizeArray(a,5);<br goog_ds_charindex="1015" /> a[3] = 4;<br goog_ds_charindex="1028" /> a[4] = 5;<br goog_ds_charindex="1041" /> for (int i=0; i<a.length; i++)<br goog_ds_charindex="1075" /> System.out.println (a[i]); }</pre> <br goog_ds_charindex="1111" /> <p goog_ds_charindex="1113"><strong goog_ds_charindex="1114">閭d簩緇存暟緇勫浣曢噸璁懼ぇ灝忓憿錛?寰堢畝鍗曪紝灝辨槸澶勭悊鏁扮粍鐨勬暟緇勫憖錛?/strong></p> <p goog_ds_charindex="1155">瑕佹兂閲嶈浜岀淮鏁扮粍錛?em>resizeArray鏂規硶</em>蹇呴』澶勭悊澶栭儴鏁扮粍鍜屾墍鏈夊祵濂楁暟緇勶紝濡備笅渚嬶細 </p> <pre goog_ds_charindex="1346"> int a[][] = new int[2][3];<br goog_ds_charindex="1375" /> //...<br goog_ds_charindex="1383" /> a = (int[][])resizeArray(a,20);<br goog_ds_charindex="1417" /> // 鏂版暟緇勬槸[20][3]<br goog_ds_charindex="1445" /> for (int i=0; i<a.length; i++) {<br goog_ds_charindex="1480" /> if (a[i] == null)<br goog_ds_charindex="1503" /> a[i] = new int[30];<br goog_ds_charindex="1531" /> else a[i] = (int[])resizeArray(a[i],30); <br /> }<br goog_ds_charindex="1580" /> // 鏂版暟緇勬槸[20][30]</pre><img src ="http://www.tkk7.com/mlh123caoer/aggbug/146367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-09-19 10:34 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/09/19/146367.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>甯稿幓鐨勫嚑涓鍥芥妧鏈棬鎴?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/09/15/145394.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Sat, 15 Sep 2007 09:56:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/09/15/145394.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/145394.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/09/15/145394.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/145394.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/145394.html</trackback:ping><description><![CDATA[http://www.infoq.com<br /> http://www.theserverside.com<br /> http://www.javablogs.com<br /> http://www.java.net<br /> http://www.javasoft.com<br /> http://blogs.sun.com <br />    涔嬶紙閲嶈錛?br />    http://blogs.sun.com/roumen/<br />    http://blogs.sun.com/geertjan/<br />    http://blogs.sun.com/theaquarium/<br /> http://www.ibm.com/developerworks<br /> http://www.onjava.com/<br /> http://www.developer.com/java/<br /> http://www.javaworld.com/<br /> http://www.java.com/<br /> http://www.netbeans.org/kb/index.html<br /> http://www.eclipse.org<br /> http://www.oracle.com/technology/tech/java/index.html<br /> http://www.javaranch.com<br /> http://www.javablackbelt.com<br /> http://www.jugcologne.org<br /> http://www.dzone.com<br /><img src ="http://www.tkk7.com/mlh123caoer/aggbug/145394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-09-15 17:56 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/09/15/145394.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java Annotation鎵嬪唽http://www.tkk7.com/mlh123caoer/archive/2007/09/06/143260.html鑽夊効鑽夊効Thu, 06 Sep 2007 11:11:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/09/06/143260.htmlhttp://www.tkk7.com/mlh123caoer/comments/143260.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/09/06/143260.html#Feedback13http://www.tkk7.com/mlh123caoer/comments/commentRss/143260.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/143260.htmlAnnotation 鎻愪緵浜嗕竴鏉′笌紼嬪簭鍏冪礌鍏寵仈浠諱綍淇℃伅鎴栬呬換浣曞厓鏁版嵁錛坢etadata錛夌殑閫斿緞銆備粠鏌愪簺鏂歸潰鐪嬶紝annotation灝卞儚淇グ絎︿竴鏍瘋浣跨敤錛屽茍搴旂敤浜庡寘銆佺被鍨嬨佹瀯閫犳柟娉曘佹柟娉曘佹垚鍛樺彉閲忋佸弬鏁般佹湰鍦板彉閲忕殑澹版槑涓傝繖浜涗俊鎭瀛樺偍鍦╝nnotation鐨勨渘ame=value鈥濈粨鏋勫涓?annotation綾誨瀷鏄竴縐嶆帴鍙o紝鑳藉閫氳繃java鍙嶅皠API鐨勬柟寮忔彁渚涘鍏朵俊鎭殑璁塊棶銆?
  闃呰鍏ㄦ枃

鑽夊効 2007-09-06 19:11 鍙戣〃璇勮
]]>
浠涔堟槸JMX?http://www.tkk7.com/mlh123caoer/archive/2007/09/03/142456.html鑽夊効鑽夊効Mon, 03 Sep 2007 14:26:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/09/03/142456.htmlhttp://www.tkk7.com/mlh123caoer/comments/142456.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/09/03/142456.html#Feedback5http://www.tkk7.com/mlh123caoer/comments/commentRss/142456.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/142456.htmlJMX(Java Management Extensions)鏄竴涓負搴旂敤紼嬪簭妞嶅叆綆$悊鍔熻兘鐨勬鏋躲侸MX鏄竴濂楁爣鍑嗙殑浠g悊鍜屾湇鍔★紝瀹為檯涓婏紝鐢ㄦ埛鍙互鍦ㄤ換浣旿ava搴旂敤紼嬪簭涓嬌鐢ㄨ繖浜涗唬鐞嗗拰鏈嶅姟瀹炵幇綆$悊銆?

JMX鐨勫墠韜槸JMAPI銆?

JMX鑷村姏浜庤В鍐沖垎甯冨紡緋葷粺綆$悊鐨勯棶棰橈紝鍥犳錛岃兘澶熼傚悎浜庡悇縐嶄笉鍚岀殑鐜鏄潪甯擱噸瑕佺殑銆備負浜嗚兘澶熷埄鐢ㄥ姛鑳藉己澶х殑Java璁$畻鐜瑙e喅榪欎竴鐨勯棶棰橈紝Sun鍏徃鎵╁厖浜?a class="wikipage" >Java鍩虹綾誨簱錛屽紑鍙戜簡涓撶敤鐨勭鐞嗙被搴撱?

JMX鏄竴縐嶅簲鐢ㄧ紪紼嬫帴鍙o紝鍙墿鍏呭璞″拰鏂規硶鐨勯泦鍚堜綋錛屽彲浠ョ敤浜庤法瓚婁竴緋誨垪涓嶅悓鐨勫紓鏋勬搷浣滅郴緇熷鉤鍙般佺郴緇熶綋緋葷粨鏋勫拰緗戠粶浼犺緭鍗忚錛岀伒媧葷殑寮鍙戞棤緙濋泦鎴愮殑緋葷粺銆佺綉緇滃拰鏈嶅姟綆$悊搴旂敤瀹冩彁渚涗簡鐢ㄦ埛鐣岄潰鎸囧銆丣ava綾誨拰寮鍙戦泦鎴愮郴緇熴佺綉緇滃強緗戠粶綆$悊搴旂敤鐨勮鑼冦?

綆$悊瀵硅薄鏄疛MX搴旂敤紼嬪簭鐨勬牳蹇冦侸MX緇撴瀯鍖呮嫭錛氭敮鎸丣ava鐨刉eb嫻忚鍣ㄧ敤鎴鋒帴鍙o紝綆$悊榪愯妯″潡ARM(Admin Runtime Module)鍜屽簲鐢ㄣ傝繖涓変釜閮ㄤ歡涔嬮棿閫氳繃RMI錛圧emote Method Invocation錛夎繘琛岄氫俊銆傝繖閲岄渶瑕佽鏄庣殑鏄紝RMI鏄嬌寰椾竴涓狫ava铏氭嫙鏈猴紙JVM錛変笂榪愯鐨勭▼搴忓彲浠ヨ皟鐢ㄨ繙紼嬫湇鍔″櫒涓婂彟涓涓?a class="wikipage" >JVM鎬葷殑瀵硅薄銆?

鐢ㄦ埛鎺ュ彛鐢ㄦ潵鍙戝竷綆$悊鎿嶄綔錛岃繖浜涙搷浣滃彲浠ラ棿鎺ョ殑閫氳繃嫻忚鍣ㄦ垨閫氳繃鍗曠嫭鐨勫簲鐢ㄧ▼搴忔潵嬋鍙戙傜鐞嗚繍琛屾ā鍧楃敤鏉ョ粰搴旂敤鎻愪緵瀹炰緥鍖栫殑綆$悊瀵硅薄銆傚畠鍖呮嫭Agent瀵硅薄鎺ュ彛錛岄氱煡鎺ュ彛鍜岃綆℃暟鎹帴鍙c傚簲鐢ㄦ寚鐨勬槸閭d簺琚璁懼鍗曞厓銆?

JMX鏄竴涓畬鏁寸殑緗戠粶綆$悊搴旂敤紼嬪簭寮鍙戠幆澧冿紝瀹冨悓鏃舵彁渚涗簡錛氬巶鍟嗛渶瑕佹敹闆嗙殑瀹屾暣鐨勭壒鎬ф竻鍗曪紝鍙敓鎴愯祫婧愭竻鍗曡〃鏍鹼紝鍥懼艦鍖栫殑鐢ㄦ埛鎺ュ彛錛涜闂?a class="editpage" title="Create 'SNMP'" >SNMP鐨勭綉緇淎PI錛涗富鏈洪棿榪滅▼榪囩▼璋冪敤錛涙暟鎹簱璁塊棶鏂規硶銆?

JMX榪欎竴杞誨瀷鐨勭鐞嗗熀紜緇撴瀯錛屼環鍊煎湪浜庡琚鐞嗚祫婧愮殑鏈嶅姟瀹炵幇浜嗘娊璞★紝鎻愪緵浜嗕綆灞傜殑鍩烘湰綾婚泦鍚堬紝寮鍙戜漢鍛樺湪淇濊瘉澶у鏁扮殑鍏叡綆$悊綾葷殑瀹屾暣鎬у拰涓鑷存х殑鍓嶆彁涓嬶紝榪涜鎵╁睍浠ユ弧瓚崇壒瀹氱綉緇滅鐞嗗簲鐢ㄧ殑闇瑕併?

JMX娉ㄩ噸浜庢瀯閫犵鐞嗗伐鍏風殑杞歡妗嗘灦錛屽茍灝介噺閲囩敤宸叉垚鐔熺殑鎶鏈?

JMX浣撶郴琚垎鎴愪笁涓眰嬈?

  • 琛ㄧ幇灞?
  • 浠g悊灞?
  • 鍒嗗竷寮忔湇鍔″眰

琛ㄧ幇灞?

琛ㄧ幇灞傚畾涔夌殑鏄疛MX鍙鐞嗚祫婧愭墍鍦ㄧ殑灞傘?

榪欎簺宸茬鐞嗙殑璧勬簮鍙互緙栧啓鎴栧皝瑁呬負MBean銆?

MBean鍒嗕負鍥涚綾誨瀷錛?鏍囧噯銆佸姩鎬併佸紑鏀俱佹ā鍨?

浠g悊灞?

瀹氫箟鐨勬槸MBean鍚戝簲鐢ㄧ▼搴忔柦鍔犵鐞嗙殑灞傘傚寘鎷琈Bean鏈嶅姟鍣ㄥ拰浠g悊鏈嶅姟鐨勫畾涔夈傝繕鑷沖皯鍖呮嫭涓涓崗璁傞厤鍣ㄦ垨榪炴帴鍣ㄣ?

浠g悊鐨勭粍鎴愶細 銆備竴涓狹Bean鏈嶅姟鍣?銆傝綆$悊鐨凪Bean 銆備綔涓篗Bean瀹炵幇鐨勪唬鐞嗘湇鍔?銆傝嚦灝戜竴涓崗璁傞厤鍣?

MBean

鍦↗MX涓紝鏈灝忕殑鍙鐞嗗崟鍏冩槸MBean銆?

MBean涓嶆槸涓涓湡姝g殑鎺ュ彛鍜岀被錛岃屾槸蹇呴』鍑嗗驚鐨勮璁℃ā寮忎互紜繚璧勬簮鏄竴涓吋瀹圭殑MBean銆?

MBean鐨勬縺媧繪柟娉?

invoke()鏂規硶鏄鐞嗗簲鐢ㄧ▼搴忕敤浜庢縺媧籑Bean鐨勬柟娉曠殑鎵嬫銆?invoke()鏂規硶鏈変笁涓弬鏁幫紝鍒嗗埆鏄柟娉曠殑鍚嶇О銆佽〃紺哄睘鎬х殑瀵硅薄鏁扮粍鍜屾弿榪版柟娉曠鍚嶇殑涓涓瓧絎︿覆鏁扮粍銆傚畠涓庝嬌鐢?a class="editpage" title="Create 'JavaReflection'" >Java Reflection Api 嬋媧繪柟娉曠殑鏂瑰紡綾諱技銆?

Notification(閫氱煡)妯″瀷錛?

MBean鐨勯氱煡妯″瀷綾諱技涓嶫ava浜嬩歡鐨勭洃鍚櫒妯″瀷銆?MBean鎴栫鐞嗗簲鐢ㄧ▼搴忓彲浠ヤ綔涓篗Bean浜嬩歡鐨勭洃鍚櫒娉ㄥ唽銆?閫氱煡鏀寔鐢變袱涓熀鏈殑姒傚康緇勬垚錛屽嵆騫挎挱鍣ㄥ拰鐩戝惉鍣ㄣ?

MBean鏈嶅姟鍣?

MBean鏈嶅姟鍣ㄧ敤浜庢敞鍐屽彲綆$悊鐨凪Bean銆?

鎵鏈夊MBean鐨勮姹傛垨鏌ヨ閮芥槸閫氳繃MBean鏈嶅姟鍣ㄥ疄鏂界殑銆?

浠g悊鏈嶅姟

浠g悊鏈嶅姟鏄竴浜涚壒孌婄殑鍑芥暟錛屼唬鐞嗘妸榪欎簺鏈嶅姟鎻愪緵緇橫Bean錛岃繖浜涗唬鐞嗘湇鍔$嫭绔嬩簬浠諱綍MBean銆?

涓涓唬鐞嗗彲浠ユ彁渚涘洓縐嶄富瑕佺殑鏈嶅姟錛?

  • 鍔ㄦ佽杞斤細鍏佽浠g悊閫氳繃涓嬭澆榪欎釜Bean鐨勭被鍔ㄦ佸疄渚嬪寲MBean錛岃繖涓庤杞絘pplet鐨勬柟寮忕被浼箋?

JMX浣跨敤m-let榪欎釜鏍囪鎸囧畾鏈熸湜鍔ㄦ佽杞界殑MBean鐨勪綅緗?

  • 鐩戞帶錛氬厑璁鎬唬鐞嗛氱煡鏈夊叧鐨勭洃鍚櫒鐩戞帶涓涓狹Bean鐨勫睘鎬у肩殑鍙樺寲

JMX鍏佽浣跨敤涓夌鍩烘湰綾誨瀷鐨勭洃鎺х▼搴?(1)CounterMonitor錛氳紼嬪簭鍙互瑙傚療綾誨瀷鏂歸潰鐨勫彉鍖栵紝姣斿Byte綾諱技鎴朓nteger綾誨瀷 (2)GaugeMonitor錛氳紼嬪簭鍙互瑙傚療綾誨瀷鏂歸潰鐨勫彉鍖栵紝姣斿Byte綾諱技鎴朓nteger綾誨瀷錛岃繕鍙互鍦ㄥ埌杈句笂涓嬮榾鍊兼椂榪涜鎶ュ憡銆?(3)StringMonitor錛氳紼嬪簭鍙互瑙傚療java.lang.String綾誨瀷鐨勫彉鍖栥?

  • 璁℃椂鍣細鍏佽棰勮鐨勬椂闂撮棿闅斿彂閫侀氱煡錛屽彲浠ヤ綔涓轟竴涓皟搴︾▼搴?
  • 鍏崇郴錛氬厑璁稿垱寤哄拰緇存姢MBean涔嬮棿鐨勫叧緋?

鍒嗗竷寮忔湇鍔″眰

鍖呭惈鍗忚閫傞厤鍣ㄥ拰榪炴帴鍣ㄤ袱縐嶇被鍨嬬殑緇勪歡錛岄氳繃瀹冧滑榪炴帴鍒板閮ㄧ殑搴旂敤錛屽RMI綆$悊搴旂敤銆佸熀浜庢祻瑙堝櫒鐨勭鐞嗘帶鍒剁瓑

鍗忚閫傞厤鍣ㄥ拰榪炴帴鍣?

鍗忚閫傞厤鍣ㄦ槸浠g悊涓庣鐞嗗鎴烽氫俊鐨勬墜孌碉紝姣忎釜閫氫俊鐨勫崗璁兘鍙兘涓嶅悓銆?

瀹冧滑閮芥槸綆$悊瀹㈡埛涓嶮Bean浜や簰鐨勬柟寮忋?

JMX鐨勫ソ澶?

  • 鍙噺灝戝JAVA搴旂敤瀹炴柦綆$悊鐨勬姇璧?
  • 鎻愪緵浜嗕竴涓彲浼哥緝鐨勭鐞嗘鏋?
  • 闆嗘垚鐜版湁鐨勭鐞嗘柟妗堬細濡傦細WBEM錛孲NMP錛孴MN
  • 浣跨敤鐜版湁鐨勬爣鍑咼AVA鎶鏈?
  • 鑳戒嬌鐢ㄦ湭鏉ョ殑涓浜涚鐞嗘蹇碉細濡侸ini榪炴帴鎶鏈侀氱敤鍗蟲彃鍗崇敤銆佹湇鍔″畾浣嶅崗璁?Service Location Protocol)
  • 鍙畾涔変簡涓浜涘彲浠ヨ闂殑鎺ュ彛

鐩稿叧璧勬簮錛?/p>



鑽夊効 2007-09-03 22:26 鍙戣〃璇勮
]]>
杞?渚嵎璋圝ava鍙嶅皠鏈哄埗http://www.tkk7.com/mlh123caoer/archive/2007/08/29/140824.html鑽夊効鑽夊効Wed, 29 Aug 2007 03:24:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/08/29/140824.htmlhttp://www.tkk7.com/mlh123caoer/comments/140824.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/08/29/140824.html#Feedback2http://www.tkk7.com/mlh123caoer/comments/commentRss/140824.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/140824.html闃呰鍏ㄦ枃

鑽夊効 2007-08-29 11:24 鍙戣〃璇勮
]]>
鍥藉寮婧愮綉绔欒仛鍚?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/08/25/139337.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Sat, 25 Aug 2007 15:16:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/08/25/139337.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/139337.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/08/25/139337.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/139337.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/139337.html</trackback:ping><description><![CDATA[<p>sourceforge <a >http://www.sourceforge.net</a><br>java.net <a >http://www.java.net</a></p> <p><a >www.eclipse.org</a></p> <p><a >www.opensource.org</a><br></p> <p><span lang=EN-US style="FONT-FAMILY: SimSun; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: SimSun"><a >http://strutstestcase.sourceforge.net</a> <font color=#002c99>(StrutsTestCase</font></span><span style="FONT-FAMILY: SimSun; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: SimSun">鏄熀浜?span lang=EN-US>Junit</span>鐨勪竴涓柟渚挎祴璇?span lang=EN-US>struts</span>妗嗘灦鐨勬祴璇曟鏋?<br><br></span>Lomboz <a >http://www.objectlearn.com/index.jsp</a> (J2EE plugin for Eclipse)<br>htmlArea <a >http://sourceforge.net/projects/itools-htmlarea/</a> (鎵瑙佸嵆鎵寰楃殑鍦ㄧ嚎HTML緙栬緫鍣?<br>XmlBuddy <a >http://www.xmlbuddy.com/</a> (XML Editor plugin for Eclipse)<br>JFreeChart <a >http://www.jfree.org/</a> (鐢ㄤ簬鐢熸垚鍥捐〃鐨勯」鐩?<br>EclipseME <a >http://eclipseme.sourceforge.net/</a> (J2ME Developmnt Plugin for Eclipse)<br>mvnForum <a >http://sourceforge.net/projects/mvnforum/</a> (璁哄潧)<br>jChatBox <a >http://www.javazoom.net/index.shtml</a> (鐢╯ervlet瀹炵幇鐨刉EB鑱婂ぉ寮曟搸)<br>POI <a >http://jakarta.apache.org/poi/index.html</a> (鐢ㄤ簬澶勭悊Excel,WORD絳夋枃。鐨剻骞鐩)<br>FileUpload <a >http://jakarta.apache.org/commons/fileupload/</a> (鐢ㄤ簬澶勭悊HTTP鏂囦歡涓婁紶寰楅」鐩?<br>PDFBox <a >http://sourceforge.net/projects/pdfbox/</a> (澶勭悊PDF鏂囨。鐨勯」鐩?<br>Lucene <a >http://jakarta.apache.org/lucene/index.html</a> (鎼滅儲寮曟搸)<br>Digester <a >http://jakarta.apache.org/commons/digester/</a> (澶勭悊XML淇℃伅鐨勯」鐩?<br>DBCP <a >http://jakarta.apache.org/commons/dbcp/</a> (鏁版嵁搴撹繛鎺ユ睜)<br>AXIS <a >http://ws.apache.org/axis/</a> (WebService 鐨勫疄鐜版鏋?<br>Jetspeed <a >http://portals.apache.org/jetspeed-1/</a> (Portal)<br>HSQLDB <a >http://sourceforge.net/projects/hsqldb/</a> (Im memory Database Engine)<br>CEWOLF <a >http://sourceforge.net/projects/cewolf/</a> (涓濂楁爣絳懼簱瀹炵幇Web鎶ヨ〃,浣跨敤鐨勬槸jFreeChart寮曟搸)<br>Struts Menu <a >http://sourceforge.net/projects/struts-menu/</a> (鍩轟簬Struts鐨刉eb鑿滃崟欏圭洰)<br>htmlparser <a >http://sourceforge.net/projects/htmlparser/</a> (鐢ㄤ簬瑙f瀽HTML淇℃伅鐨勯」鐩?<br>Mondrian <a >http://sourceforge.net/projects/mondrian/(Open</a> Source OLAP Database)<br>ProGuard <a >http://sourceforge.net/projects/proguard/(Java</a>鐨勬販娣嗗櫒)<br>InfoGlue <a >http://sourceforge.net/projects/infoglue/</a> (J2EE 鍐呭綆$悊緋葷粺)<br>JPivot <a >http://sourceforge.net/projects/jpivot/</a> (鍩轟簬WEB鐨凮LAP 灞曠幇)<br><a >http://java-source.net/</a></p> <p>(5)鍑犱釜甯哥敤JAVA寮婧愰」鐩殑鍦板潃鑽熻悆:<br>Lomboz <a >http://www.objectlearn.com/index.jsp</a> (J2EE plugin for Eclipse)<br>htmlArea <a >http://sourceforge.net/projects/itools-htmlarea/</a> (鎵瑙佸嵆鎵寰楃殑鍦ㄧ嚎HTML緙栬緫鍣?<br>XmlBuddy <a >http://www.xmlbuddy.com/</a> (XML Editor plugin for Eclipse)<br>JFreeChart <a >http://www.jfree.org/</a> (鐢ㄤ簬鐢熸垚鍥捐〃鐨勯」鐩?<br>EclipseME <a >http://eclipseme.sourceforge.net/</a> (J2ME Developmnt Plugin for Eclipse)<br>mvnForum <a >http://sourceforge.net/projects/mvnforum/</a> (璁哄潧)<br>jChatBox <a >http://www.javazoom.net/index.shtml</a> (鐢╯ervlet瀹炵幇鐨刉EB鑱婂ぉ寮曟搸)<br>POI <a >http://jakarta.apache.org/poi/index.html</a> (鐢ㄤ簬澶勭悊Excel,WORD絳夋枃妗g殑欏圭洰)<br>FileUpload <a >http://jakarta.apache.org/commons/fileupload/</a> (鐢ㄤ簬澶勭悊HTTP鏂囦歡涓婁紶寰楅」鐩?<br>PDFBox <a >http://sourceforge.net/projects/pdfbox/</a> (澶勭悊PDF鏂囨。鐨勯」鐩?<br>Lucene <a >http://jakarta.apache.org/lucene/index.html</a> (鎼滅儲寮曟搸)<br>Digester <a >http://jakarta.apache.org/commons/digester/</a> (澶勭悊XML淇℃伅鐨勯」鐩?<br>DBCP <a >http://jakarta.apache.org/commons/dbcp/</a> (鏁版嵁搴撹繛鎺ユ睜)<br>AXIS <a >http://ws.apache.org/axis/</a> (WebService 鐨勫疄鐜版鏋?<br>Jetspeed <a >http://portals.apache.org/jetspeed-1/</a> (Portal)<br>HSQLDB <a >http://sourceforge.net/projects/hsqldb/</a> (Im memory Database Engine)<br>CEWOLF <a >http://sourceforge.net/projects/cewolf/</a>(涓濂楁爣絳懼簱瀹炵幇Web鎶ヨ〃,浣跨敤鐨勬槸jFreeChart鎿?<br>Struts Menu <a >http://sourceforge.net/projects/struts-menu/</a> (鍩轟簬Struts鐨刉eb鑿滃崟欏圭洰)<br>htmlparser <a >http://sourceforge.net/projects/htmlparser/</a> (鐢ㄤ簬瑙f瀽HTML淇℃伅鐨勯」鐩?<br>Mondrian <a >http://sourceforge.net/projects/mondrian/</a> (Open Source OLAPdatabase)<br>ProGuard <a >http://sourceforge.net/projects/proguard/</a> (Java鐨勬販娣嗗櫒)<br>InfoGlue <a >http://sourceforge.net/projects/infoglue/</a> (J2EE 鍐呭綆$悊緋葷粺)<br>JPivot <a >http://sourceforge.net/projects/jpivot/</a> (鍩轟簬WEB鐨凮LAP 灞曠幇)<br>HttpClient <a >http://jakarta.apache.org/commons/httpclient/</a> 澶勭悊http瀹㈡埛绔殑鎺ュ彛</p><img src ="http://www.tkk7.com/mlh123caoer/aggbug/139337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-08-25 23:16 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/08/25/139337.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JavaFX緙栫▼璇█鍩虹http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137425.html鑽夊効鑽夊効Thu, 16 Aug 2007 16:39:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/08/17/137425.htmlhttp://www.tkk7.com/mlh123caoer/comments/137425.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/08/17/137425.html#Feedback3http://www.tkk7.com/mlh123caoer/comments/commentRss/137425.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/137425.html闃呰鍏ㄦ枃

鑽夊効 2007-08-17 00:39 鍙戣〃璇勮
]]>
娣卞叆瀛︿範JavaFX鑴氭湰璇█-鍙冭?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137424.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Thu, 16 Aug 2007 16:36:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137424.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/137424.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137424.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/137424.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/137424.html</trackback:ping><description><![CDATA[     鎽樿: Translated by Liu Dan (cleverpig) and Tian Le (Tin) 鏈枃。灏嗚璁哄湪JavaFX璇█涓彲鐢ㄧ殑鍚勭GUI緇勪歡錛屽茍鎻愪緵紺轟緥浠g爜錛岃璁篔avaFX緇勪歡涓嶴wing GUI緇勪歡鐩告瘮鐨勫樊寮傘? 鍓嶆彁鏉′歡 濡傛灉浣犱粠鍓嶆病鏈夐槄璇昏繃JavaFX鑴氭湰璇█璧鋒鏁欑▼錛岄偅涔堟垜浠己鐑堟帹鑽愪綘鍦ㄧ戶緇槄璇繪湰鏂囨。涔嬪墠棣栧厛闃呰JavaFX鑴氭湰璇█璧鋒鏁欑▼銆?浣犲簲璇ュ叿鏈夌啛...  <a href='http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137424.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/137424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-08-17 00:36 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/08/17/137424.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁塊棶鍐呭瓨涓璊DBC椹卞姩淇℃伅鐨勫皬紼嬪簭http://www.tkk7.com/mlh123caoer/archive/2007/08/13/136329.html鑽夊効鑽夊効Mon, 13 Aug 2007 03:43:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/08/13/136329.htmlhttp://www.tkk7.com/mlh123caoer/comments/136329.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/08/13/136329.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/136329.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/136329.html鍦ㄤ綘鍚屽唴瀛樹腑澶氫釜JDBC椹卞姩鎵撲氦閬撶殑榪囩▼涓紝浣犲彲浠ヨ闂洿澶氱殑鏈夊叧JDBC椹卞姩鐨勪俊鎭備笅闈㈡槸鏄闂繖浜涘唴瀹圭殑鍙傝冧唬鐮侊細
import java.sql.*;
import java.util.*;

public class drvinf{

public static void main(String[] args)
  {
  
  //緇戝畾灞炴ф枃浠?br>  ResourceBundle bundle = ResourceBundle.getBundle("START");
  Connection conn=null;
  String drv=null;
  String url=null;

  //鍔犺澆JDBC 椹卞姩
 try{
     drv = bundle.getString("Driver");
     Class.forName(drv);
     }catch (ClassNotFoundException e)
       {System.out.println(e.getMessage());}

  //JDBC URL=jdbc:odbc:bank
  try{
     url = bundle.getString("jdbcURL");
     conn = DriverManager.getConnection(url);

     List drvs = Collections.list(DriverManager.getDrivers());
     for (int i=0; i<drvs.size(); i++)
       {
       System.out.println("----------------鎵撳嵃鏈夊叧椹卞姩鐨勪俊鎭?-----------");
       Driver driver = (Driver)drvs.get(i);
       String name = driver.getClass().getName();
       System.out.println(name);
       int maxV = driver.getMajorVersion();
       System.out.println(maxV);
       int minV = driver.getMinorVersion();
       System.out.println(minV);
       boolean comp = driver.jdbcCompliant();
       System.out.println(comp);
       }   
    }catch (SQLException e)
    {System.out.println(e.getMessage());}
       try{
          if(conn!=null)conn.close();
          }catch(SQLException e)   
               {System.out.println(e.getMessage());}
    }
}
START.properties 涓殑鍐呭錛?

Driver=sun.jdbc.odbc.JdbcOdbcDriver
jdbcURL=jdbc:odbc:bank
login=admin
password=hashflush


鑽夊効 2007-08-13 11:43 鍙戣〃璇勮
]]>濡備綍鍦↗ava涓嬌鐢≧obot綾?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135499.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Thu, 09 Aug 2007 06:59:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135499.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/135499.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135499.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/135499.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/135499.html</trackback:ping><description><![CDATA[<p>Java.awt.Robot 綾葷敤浜庢帶鍒墮紶鏍囧拰閿洏銆備竴鏃︿綘寰楀埌榪欑鎺у埗錛屼綘鑳藉閫氳繃浣犵殑Java浠g爜鍋氫笌<br>榧犳爣鍜岄敭鐩樹換浣曠被鍨嬬殑鎿嶄綔.榪欎釜綾婚氬父鐢ㄤ簬鑷姩鍖栨祴璇曘傚厛闈㈢殑浠g爜鏍蜂緥灝嗗悜鎮ㄥ睍紺篟obot<br>綾誨浣曞鐞嗛敭鐩樹簨浠躲傚鏋滀綘榪愯姝や唬鐮侊紝騫舵墦寮notepad錛屾偍灝嗗湪notepad涓湅鍒癏I CAOER銆傝刀蹇瘯涓璇曞惂銆?br>import java.awt.AWTException;<br>import java.awt.Robot;<br>import java.awt.event.KeyEvent;<br><br>public class RobotExp {<br><br>public static void main(String[] args) {<br><br>try {<br><br>Robot robot = new Robot();<br>//瀹氫箟5縐掔殑寤惰繜浠ヤ究浣犳墦寮notepad 鍝堝搱<br>// Robot 寮濮嬪啓<br>robot.delay(5000);<br>robot.keyPress(KeyEvent.VK_H);<br>robot.keyPress(KeyEvent.VK_I);<br>robot.keyPress(KeyEvent.VK_SPACE);<br>robot.keyPress(KeyEvent.VK_C);<br>robot.keyPress(KeyEvent.VK_A);<br>robot.keyPress(KeyEvent.VK_O);<br>robot.keyPress(KeyEvent.VK_E);<br>robot.keyPress(KeyEvent.VK_R);<br><br>} catch (AWTException e) {<br>e.printStackTrace();<br>}<br>}<br>}</p><img src ="http://www.tkk7.com/mlh123caoer/aggbug/135499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-08-09 14:59 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135499.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JavaFX鍏ラ棬鏁欑▼浜?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135471.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Thu, 09 Aug 2007 05:36:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135471.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/135471.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135471.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/135471.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/135471.html</trackback:ping><description><![CDATA[     鎽樿: 鍘熶綔鑰咃細 Anghel Leonard鏃墮棿錛?8/01/2007緲昏瘧錛欳aoer2007騫?鏈?鏃?JavaFX 浠g爜鍚孞ava浠g爜鏋佸鏄撻泦鎴? 榪欐湁涓涓嬌鐢↗avaFX瑁呰澆涓涓浘鐗囧埌紿椾綋渚嬪瓙錛屽畠鍏佽浣跨敤鑰呴夋嫨涓涓煩褰㈠尯鍩熶繚瀛樿繖涓煩褰㈠尯鍩熴傝繖涓崟鎹変繚瀛樻搷浣滅敱Java浠g爜瀹屾垚銆?婧愮爜鍒楄〃 15 import java.io.*; import javafx.ui.*; import jav...  <a href='http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135471.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/135471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-08-09 13:36 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/08/09/135471.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JavaFX鍏ラ棬鏁欑▼涓http://www.tkk7.com/mlh123caoer/archive/2007/08/07/134905.html鑽夊効鑽夊効Tue, 07 Aug 2007 03:49:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/08/07/134905.htmlhttp://www.tkk7.com/mlh123caoer/comments/134905.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/08/07/134905.html#Feedback5http://www.tkk7.com/mlh123caoer/comments/commentRss/134905.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/134905.html 

鍘熶綔鑰咃細 Anghel Leonard
鏃墮棿錛?/span>08/01/2007
緲昏瘧錛?/span>Caoer
2007騫?/span>8鏈?/span>5鏃?/span>

浠涔堟槸JavaFX錛?/span>SUN錛堝お闃沖叕鍙革級鍦?/span>2007騫存槬澶╁彂甯冧簡涓涓彨JavaFX鏂版鏋躲傝繖鏄竴涓硾娉涚殑鍚嶅瓧錛屽洜涓?/span>JavaFX涓昏鍖呭惈Script and Mobile涓や釜緇勪歡錛屽湪灝嗘潵SUN灝嗗紑鍙戞洿澶氱殑緇勪歡銆?/span>

JavaFX 鐨勬牳蹇冩槸 JavaFX 鑴氭湰錛屾槸涓涓0鏄庡紡鑴氭湰璇█銆傚敖綆″悓Java浠g爜闈炲父涓嶅悓錛屼絾鏄悓Java綾誨叿鏈夊緢楂樼殑浜や簰搴︺?/span> JavaFX 涓殑寰堝綾諱富瑕佷負浜嗘洿瀹規槗瀹炵幇Swing鍜?/span>Java2D鑰岃璁$殑銆備嬌鐢?/span> JavaFX 鑴氭湰錛屾偍鑳藉緢瀹規槗鐨勪負鏂囨湰鍜屽浘褰㈠紑鍙?/span>GUI鎺ュ彛銆佸姩鐢誨拰闈炲父COOL鐨勬晥鏋溿傚茍涓旓紝鎮ㄨ兘灝?/span>Java鍜?/span>HTML浠g爜鍖呰鍒?/span> JavaFX 鑴氭湰涓?/span>

絎簩涓粍浠?/span>- JavaFX Mobile錛屾槸涓虹Щ鍔ㄨ澶囧紑鍙?/span>Java搴旂敤鐨勫鉤鍙般傚畠鏈緇堜細鎴愪負寮鍙?/span> JavaFX 鑴氭湰鐨勫鉤鍙頒絾鏄幇鍦ㄥ悓榪欑瘒鏂囩珷瀹炵敤鐨勬妧鏈繕寰堜笉鍏煎銆?/span>

JavaFX 搴旂敤鐨勪竴浜涗緥瀛?/span>

鍦ㄥ紑濮嬪涔犱竴闂ㄦ柊鐨勮璦鍓嶏紝璁╂垜浠厛鐪嬩竴涓?/span>JavaFX浠g爜鐨勪竴浜涗緥瀛愩?/span>JavaFX 瀹樻柟绔欑偣鍏鋒湁澶ч噺鐨?/span>JavaFX 瀹炰緥銆傝鐐瑰嚮JavaFX Script 2D Graphics Tutorial涓嬭澆璇ュ疄渚?/span>. 涓嬭澆瀹屾垚浠ュ悗錛屽弻鍑?/span>tutorial.jnlp 鏂囦歡鍗沖彲榪愯銆傚嚑縐掕繃鍚庯紝浣犲簲璇ヨ兘澶熺湅鍒板鍥句竴鐨?/span>JavaFX瀹炰緥榪愯鍦烘櫙錛堣嫢娌℃湁鍑虹幇璇ュ浘鐗囷紝浣犲繀欏諱負.jnlp鎵╁睍鍚嶉噸鏂伴厤緗?/span>Java Web Start錛夈?/span> 
Running the tutorial.jnlp
鍥句竴銆佽繍琛?/span> tutorial.jnlp tutorial

鑺變簺鏃墮棿鐪嬩竴鐪嬭繖浜涗緥瀛愬拰婧愪唬鐮併備粎浠呬嬌鐢ㄦ湁闄愮殑鍑犺JavaFX浠g爜灝辮兘寰楀埌寰堝鏈夎叮鐨勬晥鏋溿傚鏋滀綘瀵逛簬JavaFX鐨勫簲鐢ㄨ繕鏄劅鍒版懜涓嶇潃澶磋剳錛岀湅涓鐪嬩笅闈㈢殑涓や釜demo銆傚畠浠槸StudioMoto 鍜?/span> Tesla Motors 绔欑偣鐨勯儴鍒嗛噸鏂板疄鐜般傛偍鍙互浠?/span>OpenJFX 欏圭洰绔欑偣涓嬭澆OpenJFX 鑴氭湰Studiomoto Demo 鍜?/span> Tesla Demo銆傚畠浠渶瑕?/span>Java Web Start 鎵嶈兘榪愯錛屼絾鏄篃鍙栧喅浜庝綘鐨勬満鍣ㄩ厤緗畠浠彲鑳借嚜鍔ㄨ繍琛岋紝鎴栬呬綘蹇呴』鎵懼埌鍜岃繍琛屽凡緇忎笅杞界殑.jnlp鏂囦歡銆?/span>

涓嬭澆瀹夎JavaFX


濡傛灉浣犲浜庡涔犲紑鍙?/span>JavaFX搴旂敤紼嬪簭錛屾偍搴旇浜嗚В鑷沖皯浣跨敤JavaFX涓変釜鏂規硶銆傚悓鏃朵簡瑙?/span>JavaFX搴旂敤紼嬪簭涓嶆槸鍩轟簬嫻忚鍣ㄧ殑涔熷緢閲嶈銆傛渶綆鍗曟渶蹇嵎鐨勬柟娉曟槸鍩轟簬鍙?/span>JavaFXPad杞婚噺綰х殑宸ュ叿銆備嬌鐢ㄨ宸ュ叿鐨勪富瑕佷紭鍔挎槸浣犳昏兘绔嬪嵆鐪嬪埌浣犲湪緙栬緫鍣ㄩ噷鎵浣滄洿鏀圭殑鏁堟灉銆備綘鑳戒粠JavaFX欏圭洰緗戠珯涓嬭澆鍒拌宸ュ叿錛?/span> JavaFXPad 錛夈傚茍涓旇繍琛屽畠闇瑕?/span>Java Web Start 錛堝鍥句簩錛夈?/span>

 Running the javafxpad editor
鍥句簩銆佽繍琛?/span>JavaFXPad緙栬緫鍣?/span>

浣跨敤JavaFX鐨勫彟涓縐嶆柟寮忔槸浣跨敤JavaFX鑴氭湰NetBeans 5.5鎻掍歡鎴栬?/span>Eclipse 3.2鎻掍歡錛堥渶瑕佷笅杞藉拰瀹夎NetBeans 5.5 鎴栬?/span> Eclipse 3.2.2浠ヤ笂闆嗘垚寮鍙戝伐鍏?/span> 錛夈傝嫢鎮ㄥ凡緇忎嬌鐢?/span> NetBeans 5.5寮濮嬩綘鐨?/span>JavaFX涔嬫梾,OpenJFX欏圭洰緗戠珯鐨勫浜?/span>NetBean寮鍙?/span>JavaFX鐨勮鏄?/span>灝嗕細緇欎簣浣犲府鍔┿?/span> 鐩鎬技鐨勫鏋滄偍浣跨敤鍩轟簬Eclipse鐨?/span>JavaFX鎻掍歡錛屾偍鍙互鍘?/span>JavaFX鐨?/span>Eclipse鎻掍歡銆傛敞鎰忚繖綃囨枃绔犱腑鐨勬墍鏈変緥瀛愬凡緇忓湪NetBeans5.5鐨?/span>JavaFX鎻掍歡涓祴璇曡繃錛屼絾鏄簲璇ヨ兘澶熶嬌鐢ㄥ叾浠栨柟娉曡繍琛屻?/span>

浣跨敤NetBeans 5.5涓嬬殑JavaFX鎻掍歡寮鍙?/span>Hello World 紼嬪簭

姣忓綋寮濮嬪涔犱竴闂ㄦ柊鐨勮璦鏃訛紝鎴戜滑蹇呭畾瑕佸啓Hello World 灝忕▼搴忥細

婧愮爜鍒楄〃1

import javafx.ui.*;

import java.lang.System;

Frame {

centerOnScreen: true

visible: true

height: 50

width: 350

title: "HelloWorld application..."

background: yellow

onClose: operation() {System.exit(0);}

content: Label {

text: "Hello World"

}

}

鍦?/span>NetBeans5.5寮鍙戝拰榪愯榪欎釜灝忕▼搴忔楠ゅ涓?/span>:

1.                   鍚姩NetBeans 5.5.

2.                   浠庝富鑿滃崟閫夋嫨File -> New Project.

3.                   鍦ㄦ柊欏圭洰紿楀彛,閫夋嫨鐩綍甯歌鐩綍鍜?/span> Java 搴旂敤欏圭洰(鐐瑰嚮涓嬩竴姝?/span>).

4.                   鍦ㄦ柊鐨?/span>Java搴旂敤紼嬪簭紿楀彛,鍦ㄩ」鐩悕鏂囨湰妗嗘暡鍏?/span> "FXExample".

5.                   鍦ㄧ浉鍚岀獥鍙o紝鐢ㄦ祻瑙堟寜閽夋嫨欏圭洰鐨勭洰褰?/span>.

6.                   鍙栨秷 "Set as main project" 鍜?/span> "Create main class" 澶嶉夋 (鐐瑰嚮瀹屾垚).

7.                   鍙沖嚮FXExample -> Source Packages 鍜岄夋嫨 New -> File/Folder.

8.                   鍦ㄦ柊鐨勬枃浠剁獥鍙o紝閫夋嫨鍙︿竴涓洰褰曞拰JavaFX鏂囦歡綾誨瀷錛堢偣鍑諱笅涓姝ワ級.

9.                   鍦ㄦ柊鐨?/span>JavaFX鏂囦歡紿楀彛錛屾暡鍏?/span>"HelloWorld" 浣滀負鏂囦歡鍚嶅拰"src"浣滀負鐩綍(鐐瑰嚮瀹屾垚).

10.               鎷瘋礉婧愮爜鍒楄〃1鍒?/span> HelloWorld.fx.

11.               鍙沖嚮FXExample 欏圭洰閫夋嫨欏圭洰灞炴?/span>.

12.               鍦ㄩ」鐩?/span>FXExample灞炴у璇濇 ,閫夋嫨浠庣洰褰曢潰鏉胯繍琛岃妭鐐?/span>.

13.               鍦ㄥ弬鏁版枃鏈鏁插叆 "Hello World" (鐐瑰嚮瀹屾垚).

14.               鍙沖嚮FXExample 欏圭洰閫夋嫨榪愯欏圭洰閫夐」.

濡傛灉涓鍒囪壇濂?/span>,浣犲簲璇ョ湅鍒頒竴涓獥浣撳鍥句笁錛?/span>

Running the Hello World application


鍥句笁銆?/span> 鍦?/span>NetBeans 5.5涓繍琛?/span> Hello World 搴旂敤紼嬪簭

鐜板湪浣犳嫢鏈変簡寮鍙戝拰榪愯浠諱綍JavaFX搴旂敤紼嬪簭鐨?/span>IDE杞歡鏀寔.

JavaFX 璇硶

鍦ㄦ寮忓紑濮嬪涔?/span>JavaFX錛岃鎴戜滑嫻忚涓閬嶈璇█鐨勮娉曡鐐廣傚鏋滀綘闈炲父鐔熸倝Java璇█錛岃繖浜涜娉曠殑澶у鏁頒細璁╀綘鎰熷埌闈炲父鐔熸倝錛屼絾鏄湁涓浜涗細鐩稿綋涓嶄竴鏍楓?/span>

JavaFX 鍘熷綾誨瀷

JavaFX 鏀寔鍘熷綾誨瀷錛?/span>String (瀵瑰簲浜?/span> java.lang.String), Boolean (瀵瑰簲浜?/span> java.lang.Boolean), Number (瀵瑰簲浜?/span> java.lang.Number) 鍜?/span> Integer (瀵瑰簲浜?/span> byte,short,int,long,BigInteger).

JavaFX 鍙橀噺

涓涓?/span>JavaFX鍙橀噺浣跨敤var鍏抽敭瀛楀0鏄庛傜湅涓嬮潰鐨勪緥瀛愶細

var x:Number = 0.9;

var name:String = "John";

var y:Integer = 0;

var flag:Boolean = true;

var numbers:Number = [1,2,3,4,5]錛?/span>

JavaFX 鎿嶄綔絎?/span>


浼楁墍鍛ㄧ煡鐨?/span>Java鎿嶄綔絎?/span>&&, || 鍜?/span> ! 鍦?/span>JavaFX涓噰鐢ㄤ笅闈㈢殑褰㈠紡錛?/span>

·                     Java: &&
JavaFX: and

·                     Java: ||
JavaFX: or

·                     Java: !
JavaFX: not

JavaFX 鏂規硶


JavaFX
鏀寔榪欎簺鏂規硶. 鍏鋒湁鍙傛暟銆佸彉閲忓0鏄庡拰榪斿洖鍊肩殑鏂規硶涓句緥錛?/span>

function taxes(x) { var t:Number = (19.0/100.0)*x; return t; }

JavaFX if 璇彞


鍦?/span>JavaFX涓紝浣犱綘鑳介氳繃浣跨敤if璇彞浣跨敤鏉′歡鍒ゆ柇銆?/span>

if (鏉′歡) { //鍔ㄤ綔 } else if (鏉′歡) { //鍔ㄤ綔 } else { //鍔ㄤ綔 }

JavaFX while 璇彞


榪欎釜 while 璇彞鍚屽湪Java涓殑while璇彞鐩鎬技銆?/span> while (鏉′歡) { //鍔ㄤ綔}

JavaFX for 璇彞


for 璇彞鐢ㄤ簬寰幆鍜岄棿闅旓紙闂撮殧浣跨敤鏂規嫭鍙?/span>[]鍜?/span> .. 絎﹀彿琛ㄧず).

//i 灝嗗彇鍊鹼細 0, 1, 2, 3, 4, 5璞″湪 (i in [0..5]) { //浼撮殢 i鐨勫姩浣?/span> }浠g爜鍧椾腑

JavaFX 榪囩▼


JavaFX
榪囩▼浠?/span>operation 鍏抽敭瀛椾負鏍囧織銆備竴涓畝鍗曠殑渚嬪瓙錛?/span>

operation startClock() {do{ while(true) {

if(seconds>=360) {seconds = 0; seconds = [0,6..360] dur 60000 linear;}

if(minutes>=360) {minutes = 0; minutes = [0,6..360] dur 3600000 linear;}

if(hours>=360) {hours = 0; hours = [0,6..360] dur 43200000 linear;} } }}

JavaFX 綾?/span>


JavaFX
綾諱嬌鐢?/span>class鍏抽敭瀛?/span>. 涓涓?/span> JavaFX 綾昏兘澶熶嬌鐢?/span>extends 鍏抽敭瀛楃戶鎵垮涓被浣跨敤閫楀彿鍒嗗壊
榪欎簺綾葷殑鍚嶅瓧銆傚湪鑺辨嫭鍙蜂腑闂翠綘鍙互鏀懼睘鎬с佹柟娉曞拰榪囩▼錛屼緥濡備笅闈㈢殑渚嬪瓙錛?/span>

class Order {

attribute order_nr: String;

attribute ordertype: Order inverse Order.products;

attribute products: Order* inverse Order.ordertype;

function getOrderNr(): String;

operation addOrder(order: Order);

}

 

娉ㄦ剰灞炴т嬌鐢?/span>attribute鍏抽敭瀛楀0鏄庯紝鏂規硶浣撳拰榪囩▼涓嶅湪綾諱綋涓紝瀹冧滑鍗曞厓瀹氫箟鍦ㄧ被澹版槑浠ュ悗錛屽湪涓嬫枃浣犲緢蹇氨鑳界湅鍒般?/span> inverse 瀛愬彞鏄竴涓彲閫夐」 錛屽畠琛ㄧず涓縐嶅悓鍦ㄧ被涓彟涓涓睘鎬х殑鍙屽悜鍏崇郴銆傚湪榪欎釜妗堜緥涓?/span>JavaFX灝嗚嚜鍔ㄥ畬鎴愭洿鏂幫紙鎻掑叆銆佹浛浠e拰鍒犻櫎錛変綘鑳藉湪Java.net涓婃壘鍒版洿瀹屾暣鐨?/span>鏂囨。銆?/span>

鐔熸倝JavaFX

 

鍦ㄦ湰灝忚妭錛屾偍灝嗕細鐪嬪埌涓緋誨垪鐨勫皬渚嬪瓙錛岃繖浜涗緥瀛愯鐩?/span>JavaFX鐨勫悇縐嶇壒鎬у拰鍔熻兘銆備富瑕佺洰鐨勬槸璁╀綘鐔熸倝JavaFX浠g爜鍜?/span>JavaFX搴旂敤紼嬪簭鐨勯昏緫銆傜浜屼釜鐩爣鏄綋浣犻渶瑕佸紑鍙戜粎浠呴渶瑕佸嚑琛屼唬鐮佸氨浼氭湁闈炲父閰風殑GUI錛屽姩鐢誨拰濂界殑鏁堟灉鏃跺欎嬌浣犵‘淇?/span>JavaFX鍊煎緱濂藉ソ鐮旂┒涓涓嬨傛墍鏈夊垪鍑虹殑渚嬪瓙灝嗕粙緇嶅叧浜?/span>JavaFX鐨勬妧宸с傛瘡涓涓緥瀛愬彧浣跨敤寰堝皯鐨勬弿榪板鐞嗭紝鎵浠ヤ笉瑕佹兂鎵懼埌澶ч噺鐨勬敞閲娿傛墍鏈夎繖浜涘彲璁塊棶鐨勪緥瀛愪綘閮芥槸浣犺嚜宸卞氨鑳借繍琛岀殑錛屾墍浠ヨ鎴戜滑寮濮嬪惂銆傚綋鎴戜滑闇瑕佷嬌鐢?/span>System.out.println 鎵撳嵃灞炴у兼椂鍊欙紝浣犲彲浠ユ妸瀹冪殑鍚嶅瓧鏀捐繘鍚湁寮曠敤鐨勫瓧絎︿覆錛岃薄婧愮爜鍒楄〃2涓墍紺虹殑閭f牱銆?/span>

婧愮爜鍒楄〃2

//甯︽湁搴旂敤鏂囨湰鐨勮〃杈懼紡

import java.lang.System;
var mynumber:Number = 10;
System.out.println("
鏁板瓧鏄?/span>: {mynumber}");

 

緇撴灉: 鏁板瓧鏄?/span>: 10
JavaFX
鏀寔鍙橀噺鐨勮鏁拌繖鏍蜂竴涓湁鐢ㄧ殑鍔熻兘銆傝繖涓姛鑳藉埄鐢ㄤ笅闈㈢殑涓変釜鎿嶄綔絎﹀疄鐜幫細

·                     ?: 鍙夌殑(鍙兘涓?/span> null)

·                     +: 1鎴栧涓?/span>

·                     *: 0鎴栧涓?/span>

婧愮爜鍒楄〃3

//鍙橀噺璁℃暟

import java.lang.System;
var mynumbers:Number* = [1,2,7];
System.out.println("
鏁板瓧鏄?/span>: {mynumbers}");

 

緇撴灉: 鏁板瓧鏄?/span>: 1 2 7
鍦?/span>JavaFX涓?/span>, 鍦ㄥ0鏄庨儴鍒嗕笉鎸囧畾鍙橀噺鐨勭被鍨嬫槸鍙兘鐨勩?/span> 榪欎笉浼氫駭鐢熼敊璇紝鍥犱負JavaFX 灝嗗湪璇ュ彉閲忕殑浣跨敤涓嚜鍔ㄥ彂鐜板畠鐨勭被鍨嬨?/span>

婧愮爜鍒楄〃 4

//鍙橀噺綾誨瀷鏄彲閫夌殑

import java.lang.System;
var days = ["Monday,","Friday,","Sunday"];
System.out.println("
浣犲繀欏誨伐浣?/span>: {days}");


緇撴灉: 浣犲繀欏誨伐浣?/span>: Monday, Friday, Sunday
浣犲彲浠ヤ嬌鐢?/span>sizeof 鎿嶄綔絎﹀緱鍒頒竴涓暟緇勭殑澶у皬錛?/span>

婧愮爜鍒楄〃 5

//寰楀埌涓涓暟緇勭殑澶у皬

import java.lang.System;
var lotto = [21,30,11,40,5,6];
System.out.println("
鏁扮粍澶у皬:{sizeof lotto}");

 

緇撴灉: 鏁扮粍澶у皬: 6

鎮ㄨ兘浣跨敤 [] 鎿嶄綔絎﹀緱鍒版弧瓚蟲寚瀹氭潯浠剁殑瀛愭暟緇勩傛潯浠舵斁鍦?/span> [] 涓綔涓哄竷灝斿垽鏂?/span> 銆傝繖涓笌XPath 璋撹瘝鐩鎬技.

婧愮爜鍒楄〃 6

//浣跨敤[] 鎿嶄綔絎?/span> -涓?/span> XPath鐩鎬技

import java.lang.System;
var mynumbers = [1,2,7,3,30,15,14,6,4];
var numbers = mynumbers[n|n < 10];
System.out.println("
灝忎簬10鐨勬暟瀛椾負: {numbers}");

 

緇撴灉: 灝忎簬10鐨勬暟瀛椾負: 1 2 7 3 6 4
浣犲彲浠ヤ嬌鐢?/span>indexof 鎿嶄綔絎﹀緱鍒版寚瀹氬簭鏁頒綅緗殑鏁扮粍涓竴涓厓绱?em>錛?/em>

婧愮爜鍒楄〃 7

//榪斿洖鎸囧畾搴忔暟浣嶇疆鐨勬暟緇勪腑鐨勫厓绱?/span>

import java.lang.System;

var mynumbers = [1,2,7,3,30,15,14,6,4];
var number_four = mynumbers[indexof . == 4];
System.out.println("
鏁板瓧4:{number_four}");

 

緇撴灉: 鏁板瓧4: 30

褰撴偍鎯寵鍚戜竴涓暟緇勪腑鎻掑叆涓涓厓绱犳椂錛屼綘鍙互浣跨敤涓嬪垪 insert 璇彞涓殑涓涓?/span>:

·                     as first: 鍦ㄧ涓涓綅緗彃鍏?/span>

·                     as last:鍦ㄦ渶鍚庝竴涓綅緗?/span>(榛樿)鎻掑叆

·                     before: 鍦ㄥ墠涓涓綅緗彃鍏?/span>

·                     after:鍦ㄤ笅涓涓綅緗彃鍏?/span>

浣犲彲浠ヤ嬌鐢?/span> delete 璇彞浠庝竴涓暟緇勪腑鍒犻櫎涓涓厓绱?/span>.

婧愮爜鍒楄〃8

//鎻掑叆鍜屽垹闄よ鍙?/span>
import java.lang.System;
var mynumbers = [1,2,7];
System.out.println("Before inserting anything: {mynumbers}");
insert 10 into mynumbers;
System.out.println("After inserting at the end the \"10\" value:{mynumbers}");
insert [8,6,90] as first into mynumbers;
System.out.println("After inserting at the first positions the \"8,6,90\" values:{mynumbers}");
insert 122 as last into mynumbers;
System.out.println("After inserting at the end the \"122\" value:{mynumbers}");
insert 78 before mynumbers[3];
insert 11 after mynumbers[3];
System.out.println("After inserting the \"78\" and \"11\" values before/after the 3rd element:{mynumbers}");
delete mynumbers[. == 122];
System.out.println("After deleting:{mynumbers}");

緇撴灉:
Before inserting anything: 1 2 7
After inserting the 10 value at the end: 1 2 7 10
After inserting the 8, 6, and 90 values at the first positions: 8 6 90 1 2 7 10
After inserting the 122 value at the end: 8 6 90 1 2 7 10 122
After inserting the 78 and 11 values before/after the 3rd element: 8 6 90 78 11 1 2 7 10 122
After deleting: 8 6 90 78 11 1 2 7 10

JavaFX涓殑涓涓潪甯稿ソ鐨勫姛鑳芥槸list銆傝繖涓姛鑳戒嬌鐢?/span> select 鍜?/span> foreach 鎿嶄綔絎﹀疄鐜般傝繖鏈変袱涓緥瀛愶紙涓涓嬌鐢?/span> select 鍜屼嬌鐢?/span> foreach) 寰楀埌鎸囧畾闂撮殧鐨勫鏁般?/span>

婧愮爜鍒楄〃9

//JavaFX涓殑 select 鍜?/span> foreach 鎿嶄綔絎?/span>

import java.lang.System;
function odd(p:Number)
{ return select i from i in [1.0 ..p]
 where (i%2 == 0.0);
}

var result = odd(10.0);
System.out.println("Odd numbers:{result}");

緇撴灉: Odd numbers: 2.0 4.0 6.0 8.0 10.0

婧愮爜鍒楄〃10 (鍚?/span> 婧愮爜鍒楄〃 9鐩稿悓, 浣嗘槸鏈?/span> foreach)

//JavaFX涓殑select 鍜?/span> foreach 鎿嶄綔絎?/span>

import java.lang.System;
function odd(p:Number) {
       return foreach (i in [1.0 ..p]
     where (i%2 == 0.0)) i;
     }
var result = odd(10.0);
System.out.println("Odd numbers:{result}");

榪欎釜渚嬪瓙鏄劇ず浜?/span> foreach 瀵逛簬鍒涘緩濂界殑鏁堟灉闈炲父鏈夌敤銆?/span>

婧愮爜鍒楄〃11

//JavaFX涓殑 select 鍜?/span> foreach 鎿嶄綔絎?/span>

import java.lang.*;
import javafx.ui.*;
import javafx.ui.canvas.*;
Frame {
centerOnScreen: true
visible: true
height: 500
width: 500
title: "Foreach demo..."
onClose: operation() {
System.exit(0);
}
content: ScrollPane {
background: white
view: Canvas {
 content: bind
foreach (i in [1..8], j in [1..8])
Rect { x: i*30 y: j*30 width:30 height:30 fill: Color {red: (100+i) green: (100+j) blue: (100+(i*j))
}
stroke:white
strokeWidth:1 } }

}

}

 Running listing 11
鍥懼洓. 榪愯婧愮爜鍒楄〃 11

浣跨敤鍙岀澶存嫭鍙峰紩鐢ㄤ負JavaFX鍏抽敭瀛楃殑鍙橀噺鍚嶆垨鑰呭睘鎬у悕錛屽涓嬫墍紺恒?/span>

婧愮爜鍒楄〃 12

//鏍囧織絎﹀紩鐢?/span>

import java.lang.System;

for (<<for>> in [0..3]) {

System.out.println("for = {<<for>>}");

}

緇撴灉: for = 0 for = 1 for = 2 for = 3

褰撲綘闇瑕佸紑鍙?/span>Swing鎺ュ彛鏃訛紝JavaFX 鏄竴涓紵澶х殑宸ュ叿錛屽洜涓?/span> JavaFX 鑰冭檻浜嗛潪甯稿鐢ㄦ潵闄嶄綆浠g爜閲忓拰鍚?/span>javax.swing.*鍖?/span>騫跺瓨鍙嬪ソ銆傚湪涓婁竴鑺傦紙浣跨敤NetBeans5.5涓殑JavaFX鎻掍歡嫻嬭瘯Hello World搴旂敤紼嬪簭錛夛紝浣犵湅鍒頒簡鍒涘緩涓涓獥浣撴槸濡備綍瀹規槗銆傝繖鏈変袱涓洿濂界殑渚嬪瓙錛氬垱寤烘寜閽拰鏂囨湰妗嗐?/span>

婧愮爜鍒楄〃 13

import javafx.ui.*;

import java.lang.System;

Frame{

content: Button { text: "Exit" action: operation() { System.exit(0); } }

visible: true

}

  Running listing 13
鍥句簲. 榪愯婧愮爜 13

婧愮爜鍒楄〃14

import javafx.ui.*;

Frame {

content: GroupPanel { var myRow = Row { alignment: BASELINE }

var label_col = Column { alignment: TRAILING }

var field_col = Column { alignment: LEADING }

rows: [myRow] columns: [label_col, field_col]

content: [SimpleLabel { row: myRow column: label_col text: "Type your text here:" }, TextField { row: myRow column: field_col columns: 50 }] }

visible: true

};

 Running listing 14
鍥懼叚. 榪愯婧愮爜 14

Java.net 涔熸湁浣跨敤JavaFx鍒涘緩 Swing鎺ュ彛鐨勬暀紼嬨?/span>

 


 



鑽夊効 2007-08-07 11:49 鍙戣〃璇勮
]]>
鍩轟簬Struts1.2.9妗嗘灦鐨勭櫥褰曢〉闈㈢殑澶勭悊榪囩▼http://www.tkk7.com/mlh123caoer/archive/2007/08/03/134201.html鑽夊効鑽夊効Fri, 03 Aug 2007 03:36:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/08/03/134201.htmlhttp://www.tkk7.com/mlh123caoer/comments/134201.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/08/03/134201.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/134201.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/134201.htmlStruts Web妗嗘灦鏄幇鍦ㄦ瀯寤篧eb搴旂敤蹇呴』鐨勫紑鍙戞鏋朵箣涓銆備互涓嬫槸鎴戜滑瀛︿範Struts妗嗘灦鏃墮氬父閮戒細鐪嬪埌鐨勭櫥褰曢〉闈㈢▼搴忕殑澶勭悊嫻佺▼鍒嗘瀽錛屽笇鏈涘拰騫垮ぇ鍗氬弸浜ゆ祦錛?/p>

鍩轟簬Struts妗嗘灦鐧誨綍紼嬪簭搴旂敤鐨刄ML欏哄簭鍥?br>Struts浜や簰鍥?src="http://www.tkk7.com/images/blogjava_net/mlh123caoer/24610/r_struts%e4%ba%a4%e4%ba%92%e5%9b%be.jpg"

澶勭悊姝ラ錛?/p>

1銆佸鎴蜂粠嫻忚鍣ㄥ鎴風鍚慦eb鏈嶅姟鍣ㄥ彂鍑鴻姹傦紝鏈嶅姟鍣ㄥ皢璇鋒眰杞彂鍒癢eb瀹瑰櫒錛屾瘮濡傦細Tomcat錛涙牴鎹姹傝礬寰刄RL鎵懼埌ActionServlet錛學eb瀹瑰櫒璋冪敤Servlet鐨剆ervic()鏂規硶錛屾牴鎹姹傚弬鏁扮殑涓嶅悓璋冪敤doGet()鎴栬卍oPost()鏂規硶銆?/p>

2銆佽孉ctionServlet鐨刣oGet()鎴栬卍oPost()鏂規硶璋冪敤process()鏂規硶澶勭悊璇鋒眰鍜屽搷搴旓紝鐢熸垚RequestProcess瀵硅薄澶勭悊閰嶇疆鏂囦歡struts-config.xml涓殑閰嶇疆淇℃伅錛屼緷嬈¤皟鐢╬rocessMapping()-鏌ユ壘澶勭悊姝ゆ璇鋒眰鐨凙ction淇℃伅騫惰繑鍥濧ctionMapping瀵硅薄錛沺rocessActionForm()--鍒涘緩姝ゆ璇鋒眰鐨凙ctionForm瀵硅薄錛沺rocessActionCreate()--鍒涘緩澶勭悊姝ゆ璇鋒眰鐨凙ction瀹炰緥錛圠oginAction瀵硅薄錛夛紱processActionPerform()--鎵цAction瀹炰緥鐨別xecute()鏂規硶銆?/p>

3銆侀氳繃璋冪敤execute()鏂規硶鑾峰彇LoginForm瀛樺偍鐨勭敤鎴峰拰瀵嗙爜絳夋暟鎹俊鎭紝鍏朵腑灝咥ctionForm Bean銆丄ctionMapping銆乺equest銆乺esponse瀵硅薄浼犻掔粰LoginAction瀵硅薄錛圓ction瀹炰緥錛夛紱鎵ц瀹屽繀瑕佺殑閫昏緫澶勭悊姣斿鏌ヨ鏁版嵁搴撳悗錛岃繑鍥炰竴涓狝ctionForward瀵硅薄錛岀敱璇ュ璞¤皟鐢≧equestProcess瀵硅薄涓殑processForwardConfig()鏂規硶瑙f瀽閰嶇疆鏂囦歡涓煩杞弬鏁幫紝杞彂鍒扮浉搴旂殑View欏甸潰success.jsp鎴栬協ailure.jsp銆?/p>



鑽夊効 2007-08-03 11:36 鍙戣〃璇勮
]]>
JSP鍦═OMCAT涓殑澶勭悊鐢熷懡鍛ㄦ湡http://www.tkk7.com/mlh123caoer/archive/2007/07/14/130271.html鑽夊効鑽夊効Sat, 14 Jul 2007 06:43:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/07/14/130271.htmlhttp://www.tkk7.com/mlh123caoer/comments/130271.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/07/14/130271.html#Feedback2http://www.tkk7.com/mlh123caoer/comments/commentRss/130271.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/130271.html1銆佸皢WEB搴旂敤閮ㄧ講鍒癟OMCAT瀹瑰櫒錛屽鍣ㄥ惎鍔ㄨ鍙栧簲鐢ㄧ殑閮ㄧ講鏂囦歡web.xml,浣嗕笉瀵?jsp鏂囦歡鍋氫換浣曞鐞嗚姹傘?/div>
2銆佸鎴風偣鍑昏繛鎺ヨ姹傛煇涓?jsp鏂囦歡錛屽鍣ㄥ紑濮嬪皢.jsp鏂囦歡杞崲涓轟竴涓猻ervrlet綾葷殑.java婧愪唬鐮併傛煡鐪嬫寚浠わ紝寰楀埌杞崲鐨勫彲鑳介渶瑕佺殑淇℃伅銆傚垱寤轟竴涓狧ttpServlet瀛愮被錛屽浜嶵omcat5鎵鐢熸垚鐨剆ervlet浼氭墿灞昽rg.apache.jasper.runtime.HttpJspBase綾匯傝嫢鏈変竴涓猵age鎸囦護鏈塱mport灞炴э紝鐢熸垚鐨勭被鏂囦歡鐨勬渶涓婇潰浼氬啓鍏mport璇彞銆備緥濡傚湪Tomcat5涓姞鍏ュ寘璇彞錛歱ackage org.apache.jsp錛涜嫢鏈夊0鏄庡鍣ㄥ皢榪欎簺澹版槑鍐欓亾綾繪枃浠訛紝閫氬父鏀懼湪鏈嶅姟鏂規硶鐨勪笅闈€俆omca5澹版槑浜嗚嚜宸辯殑涓涓潤鎬佹柟娉曞拰涓涓疄渚嬫柟娉曘傜劧鍚庡緩绔嬫湇鍔℃柟娉曪紝鏂規硶鍚嶄負_jspService()銆傛墍鐢熸垚鐨剆ervlet浼氳鐩杝ervlet瓚呯被鐨剆ervice()鏂規硶銆俖jspService()鐩存帴鐢眘ervice()璋冪敤錛岃鎺ユ敹HttpServletRequest鍜孒ttpServletResponse鍙傛暟銆傚湪寤虹珛榪欎釜鏂規硶鐨勬椂鍊欙紝瀹瑰櫒浼氬0鏄庡茍鍒濆鍖栨墍鏈夌殑闅愬紡瀵硅薄銆傚皢鏅氱殑HTML錛堟ā鏉挎枃浠訛級銆乻crptlet鍜岃〃杈懼紡鏀懼埌鏈嶅姟鏂規硶閲岋紝榪涜鏍煎紡鍖栵紝騫跺啓鑷砅rintWrite鍝嶅簲杈撳嚭銆?/div>
3銆佸鍣ㄥ皾璇曞皢榪欎釜servlet.java婧愭枃浠剁紪璇戜負.class鏂囦歡銆?/div>
4銆佸鍣ㄥ鍦ㄦ柊鐢熸垚鐨剆ervlet綾匯?/div>
5銆佸鍣ㄥ疄渚嬪寲servlet錛屽茍瀵艱嚧servlet鐨刯spInit()鏂規硶榪愯銆傚璞$幇鍦ㄥ凡鎴愪負涓涓畬鏁寸殑servlet鍑嗗灝辯華錛屾帴鍙楀鎴風殑璇鋒眰銆?/div>
6銆佸鍣ㄥ垱寤轟竴涓柊綰跨▼鏉ュ鐞嗗鎴瘋姹傦紝servlet鐨剆ervice()鏂規硶榪愯銆備互鍚庣殑澶勭悊鍚屾櫘閫氱殑servlet澶勭悊榪囩▼銆傛渶緇坰ervlet鍚戝鎴瘋繑鍥炰竴涓搷搴斻?/div>
闇瑕佹敞鎰忕殑鏄細鍦↗SP鐢熷懡鍛ㄦ湡涓紝JSP鐨勮漿鎹㈠拰緙栬瘧榪囩▼鍙彂鐢熶竴嬈°備竴鏃︾涓嬈$紪璇戝畬鎴愶紝浠ュ悗鐨勮皟鐢ㄥ悓鏅氱殑servlet涓鏍楓傚ぇ澶氭暟瀹瑰櫒寮鍙戝晢鎻愪緵棰勮漿鍖栧拰緙栬瘧鐨勫姙娉曪紝鏄繖浜涘伐浣滄彁鍓嶅畬鎴愩?/div>

鑽夊効 2007-07-14 14:43 鍙戣〃璇勮
]]>涓涓猄ervlet鐢熷懡鍛ㄦ湡錛圱omcat澶勭悊璇鋒眰涓級http://www.tkk7.com/mlh123caoer/archive/2007/07/07/128789.html鑽夊効鑽夊効Sat, 07 Jul 2007 08:04:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/07/07/128789.htmlhttp://www.tkk7.com/mlh123caoer/comments/128789.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/07/07/128789.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/128789.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/128789.html1銆佸鎴峰彂鍑鴻姹傗?gt;Web 鏈嶅姟鍣ㄨ漿鍙戝埌Web瀹瑰櫒Tomcat錛?br>2銆乀omcat涓葷嚎紼嬪杞彂鏉ョ敤鎴風殑璇鋒眰鍋氬嚭鍝嶅簲鍒涘緩涓や釜瀵硅薄錛欻ttpServletRequest鍜孒ttpServletResponse錛?br>3銆佷粠璇鋒眰涓殑URL涓壘鍒版紜甋ervlet錛孴omcat涓哄叾鍒涘緩鎴栬呭垎閰嶄竴涓嚎紼嬶紝鍚屾椂鎶?鍒涘緩鐨勪袱涓璞′紶閫掔粰璇ョ嚎紼嬶紱
4銆乀omcat璋冪敤Servlet鐨剆ervic()鏂規硶錛屾牴鎹姹傚弬鏁扮殑涓嶅悓璋冪敤doGet()鎴栬卍oPost()鏂規硶錛?br>5銆佸亣璁炬槸HTTP GET璇鋒眰錛宒oGet()鏂規硶鐢熸垚闈欐侀〉闈紝騫剁粍鍚堝埌鍝嶅簲瀵硅薄閲岋紱
6銆丼ervlet綰跨▼緇撴潫錛孴omcat灝嗗搷搴斿璞¤漿鎹負HTTP鍝嶅簲鍙戝洖緇欏鎴鳳紝鍚屾椂鍒犻櫎璇鋒眰鍜屽搷搴斿璞°?br>浠庤榪囩▼涓紝鎴戜滑鍙互鐞嗚ВServlet鐨勭敓鍛藉懆鏈燂細Servlet綾誨姞杞斤紙瀵瑰簲3姝ワ級錛汼ervlet瀹炰緥鍖栵紙瀵瑰簲3姝ワ級錛涜皟鐢╥nit鏂規硶錛堝搴?姝ワ級錛涜皟鐢╯ervice()鏂規硶錛堝搴?銆?姝ワ級錛涳紱璋冪敤destroy()鏂規硶錛堝搴?姝ワ級銆?img src ="http://www.tkk7.com/mlh123caoer/aggbug/128789.html" width = "1" height = "1" />

鑽夊効 2007-07-07 16:04 鍙戣〃璇勮
]]>
Adobe Flex2http://www.tkk7.com/mlh123caoer/archive/2007/07/06/128519.html鑽夊効鑽夊効Fri, 06 Jul 2007 02:59:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/07/06/128519.htmlhttp://www.tkk7.com/mlh123caoer/comments/128519.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/07/06/128519.html#Feedback1http://www.tkk7.com/mlh123caoer/comments/commentRss/128519.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/128519.html
Flex2搴旂敤紼嬪簭鍦ㄦ棤鎵涓嶅湪鐨勮交閲忕駭铏氭嫙鏈篎lash鎾斁鍣?璺ㄥ鉤鍙拌繍琛屻傝騫沖彴鍖呮嫭浠ヤ笅鎶鏈細
1銆佷竴縐嶅熀浜嶺ML鐨凪XML璇█錛屽畠鏀寔闈㈠璁捐鑰呯殑GUI緇勪歡澹版槑寮忕紪紼嬶紱
2銆佹爣鍑嗙殑OOP璇█錛屽熀浜庢渶鏂扮殑ECMASript瑙勮寖鐨凙S3錛?br>3銆佷嬌鐢‵DS錛團lex Data Services錛夋柟寮忚繘琛屾湇鍔$闆嗘垚錛屾槸瀹㈡埛绔▼搴忚兘澶熷J2EE涓栫晫閫忔槑璁塊棶錛?br>4銆佸浘琛ㄧ粍浠訛紱
5銆佸熀浜嶦clipse鍔熻兘寮哄ぇ鐨処DE錛屾嫢鏈夎嚜鍔ㄥ寲閮ㄧ講錛岃皟璇曪紝浠g爜璺熻釜鑳藉姏銆?br>Flex2騫沖彴鏄撲簬鎵╁睍涔熷鏈嶅姟绔妧鏈緥濡侸AVA錛孋oldFusion錛孭HP錛孯uby錛孉SP絳夌瓑瀹炵幇闆嗘垚銆傚嵆灝嗗彂甯冪殑Adobe Apollo鐗堝厑璁稿熀浜嶧lash Player錛孎lex錛孭DF鍜孒TML妗岄潰紼嬪簭鐨勬瀯寤恒?br>SWF鏂囦歡鏍煎紡鏄紑鏀劇殑錛屾湁絎笁鏂瑰紑婧愪駭鍝佽薄Laszlo緋葷粺鐨凮penLaszlo涓烘瀯寤篟IA紼嬪簭鎻愪緵宸ュ叿錛岀▼搴忎嬌鐢‵lash Player鍙戝竷銆?br>涓庝笂涓涓増鏈浉鍙嶏紝Flex2鎻愪緵涓縐嶄笉浼氭嫑鑷存巿鏉冨崗璁籂綰瘋屾瀯寤篟IA鐨勬柟寮忋備互涓嬮兘鍏嶈垂寰楀埌錛?br>1銆丮XML錛氬熀浜嶺ML澹版槑寮忕敤鏉ユ瀯寤篏UI鐨勭紪紼嬭璦錛?br>2銆丄ctionScript3.0錛氫笌JAVA鐩鎬技鐨凮OP璇█錛?br>3銆丗lash Player9錛氳繍琛屽湪WEB嫻忚鍣ㄥ崰鏈夊緢灝戝唴瀛樼殑铏氭嫙鏈猴紝榪愯浣犵紪璇戠殑浜岃繘鍒朵唬鐮侊紙.SWF錛?
4銆佸懡浠よ緙栬瘧鍣ㄥ拰璋冭瘯鍣紱
5銆丗lex 妗嗘灦錛氬寘鍚璁¤壇濂界殑GUI緇勪歡搴擄細鎸夐挳錛宼ab鐩綍錛屾暟鎹綉鏍鹼紝鏍戞帶鍒訛紝鍔ㄧ敾鏁堟灉絳夌瓑寰堝銆?br>6銆丗lex鏁版嵁鏈嶅姟棰勮鐗堬細閮ㄧ講鍦↗2EE鏈嶅姟鍣╓EB紼嬪簭涓庤繍琛屽湪Flash Player涓婄殑ActionScript瀹㈡埛绔▼搴忛氫俊妯℃澘銆侳DS棰勮鐗堝彧鑳借繍琛屽湪鍗旵PU涓婂茍涓斾笉鏀寔鍦紙24*7錛夐珮鍙闂ч厤緗ā寮忎笅浣跨敤銆?/p>

鏋勫緩涓涓熀鏈殑Flex2紼嬪簭姝ラ鏈夛細
1銆侀氳繃澧炲姞XML緇勪歡渚嬪涓嬮潰鎸夐挳鏉ユ瀯寤鴻繖涓▼搴忥細
<mx:Button label="Place Order" click="processOrder(event)"/>
鑻ヤ嬌鐢ㄦ敹璐圭殑寮鍙戝伐鍏稦lex Builder IDE錛屼綘灝卞彲浠ヤ嬌鐢ㄦ嫋鎷夋妧鏈簡銆傚綋鐒訛紝浣犱篃鍙互鎵嬪啓MXML鏂囨湰銆?br>2銆佸啓鎸夌収涓氬姟閫昏緫ActionScript浠g爜錛屼緥濡傦細
private function processOrder (event:Event):void{
//涓氬姟閫昏緫浠g爜
}
3銆佺紪璇戜唬鐮併侳lex緙栬瘧鍣ㄨ嚜鍔ㄧ殑鎶奙XML杞崲涓篈ctionScript浠g爜騫朵互SWF鏍煎紡瀛楄妭鐮佽緭鍑哄湪Flash Player 9鎴栬呮洿楂樼増鏈繍琛岋紝濡傛灉浣犵敤Flex Builder IDE錛屼綘灝嗗緱鍒版洿鐖界殑鑷姩鍖栫紪璇戣繃紼嬨?br>4銆佸湪浣犻夋嫨鐨刉EB鏈嶅姟鍣ㄤ腑閮ㄧ講SWF鏂囦歡鍜屽皝瑁呭ソ鐨凥TML欏甸潰銆傚鏋滀綘鐢ㄦ敹閽辯殑閭d釜宸ュ叿錛岃繖浜涜繃紼嬪畬鍏ㄩ忔槑銆?br>鏈変竴涓湪綰縁lex緙栬瘧鍣ㄧ綉绔欙紝浣犲彲浠ヨ瘯鐫鍐欎竴浜汧lex浠g爜鑰屼笉鐢ㄥ湪浣犺嚜宸辯殑鐢佃剳涓婂畨瑁呬換浣曚笢瑗褲傚悓鏃惰緗戠珯鎻愪緵浜嗕竴浜涚ず渚嬩唬鐮佷緵鎮ㄤ慨鏀瑰拰榪愯銆傝繕絳変粈涔堬紝GO錛?a >http://try.flex.org/



鑽夊効 2007-07-06 10:59 鍙戣〃璇勮
]]>
JDOM綆浠?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/06/25/126177.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Mon, 25 Jun 2007 10:33:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/06/25/126177.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/126177.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/06/25/126177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/126177.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/126177.html</trackback:ping><description><![CDATA[<a target=_new><u><font face=Verdana color=#800080>JDOM</font></u></a><font face=Verdana>鏄竴縐嶄嬌鐢?</font><a target=_new><u><font face=Verdana color=#0000ff>XML</font></u></a><font face=Verdana> 鐨勭嫭鐗?Java 宸ュ叿鍖咃紝鐢ㄤ簬蹇熷紑鍙?XML 搴旂敤</font><a target=_new><u><font face=Verdana color=#0000ff>紼嬪簭</font></u></a><font face=Verdana>銆傚畠鐨?/font><a target=_new><u><font face=Verdana color=#0000ff>璁捐鍖?/font></u></a><font face=Verdana>鍚?Java 璇█鐨勮娉曚箖鑷寵涔夈?</font> <p><font face=Verdana>      JDOM鏄袱浣嶈憲鍚嶇殑 Java 寮鍙戜漢鍛樺吋浣滆咃紝Brett Mclaughlin 鍜?Jason Hunter 鐨勫垱浣滄垚鏋滐紝 2000 騫村垵鍦?/font><a target=_new><font face=Verdana color=#0000ff><u>綾?/u></font></a><font face=Verdana>浼間簬 Apache 鍗忚鐨勮鍙笅錛孞DOM 浣滀負涓涓紑鏀炬簮浠g爜欏圭洰姝e紡寮濮嬬爺鍙戯紝JDOM 浣滀負涓涓紑鏀炬簮浠g爜欏圭洰姝e紡寮濮嬩簡銆傚畠宸叉垚闀夸負鍖呭惈鏉ヨ嚜騫挎硾鐨?Java 寮鍙戜漢鍛樼殑鎶曠ǹ銆侀泦涓弽棣堝強閿欒淇鐨勭郴緇燂紝騫惰嚧鍔涗簬寤虹珛涓涓畬鏁寸殑鍩轟簬 Java 騫沖彴鐨勮В鍐蟲柟妗堬紝閫氳繃 Java 浠g爜鏉ヨ闂佹搷浣滃茍杈撳嚭 XML 鏁版嵁銆?</font></p> <p><font face=Verdana>      铏界劧璁稿Java 寮鍙戜漢鍛樻瘡澶╅兘鍦ㄤ嬌鐢?XML錛孲un 鍗村湪灝?XML 鏁村悎榪?Java 騫沖彴鏂歸潰钀藉悗浜嗐傚洜涓哄湪 XML 鎴愪負浠庡晢瀹跺鍟嗗闆嗘垚鍒?Web 绔欑偣鍐呭嫻佹按鍖栫瓑鏂歸潰鐨勫叧閿妧鏈箣鍓嶏紝Java 2 騫沖彴灝卞凡緇忛潪甯告祦琛屼簡銆係un 宸茬粡浣跨敤 JSR 榪囩▼浣夸箣鎴愪負鐜板瓨 XML <a target=_new><u><font color=#0000ff>API</font></u></a> 鐨勯薊紲栵紝榪欎竴鐐瑰凡琚箍娉涙帴鍙椼傜洰鍓嶆渶鏄捐憲鐨勬槸鍔犲叆浜?JAXP 錛堢敤浜?XML 璇硶鍒嗘瀽鐨?Java API錛夛紝鍏朵腑鍖呭惈浜嗕笁涓?a target=_new><u><font color=#0000ff>杞歡鍖?/font></u></a>錛?</font></p> <p><font face=Verdana>      ·org.w3c.dom 錛學3C 鎺ㄨ崘鐨勭敤浜?XML 鏍囧噯瑙勫垝鏂囨。<a target=_new><u><font color=#0000ff>瀵硅薄</font></u></a>妯″瀷鐨?Java 宸ュ叿 <br>      ·org.xml.sax 錛岀敤浜庡 XML 榪涜璇硶鍒嗘瀽鐨勪簨浠墮┍鍔ㄧ殑綆鍗?API <br>      ·javax.xml.parsers 錛屽伐鍘傚寲宸ュ叿錛屽厑璁稿簲鐢ㄧ▼搴忓紑鍙戜漢鍛樿幏寰楀茍閰嶇疆鐗規畩鐨勮娉曞垎鏋愬櫒宸ュ叿 JDOM 鑳藉鏇挎崲 org.w3c.dom <a target=_new><u><font color=#0000ff>杞歡</font></u></a>鍖呮潵鏈夎鍒掑湴鎿嶄綔 XML 鏂囨。</font></p> <font face=Verdana> <p><br>      JDOM鏄竴涓?a target=_new><u><font color=#0000ff>寮婧?/font></u></a>欏圭洰錛屽畠鍩轟簬鏍戝瀷緇撴瀯錛屽埄鐢ㄧ函JAVA鐨勬妧鏈XML鏂囨。瀹炵幇瑙f瀽銆佺敓鎴愩佸簭鍒楀寲浠ュ強澶氱鎿嶄綔銆?/p> <p>      JDOM 鐩存帴涓篔AVA緙栫▼鏈嶅姟銆傚畠鍒╃敤鏇翠負寮烘湁鍔涚殑JAVA璇█鐨勮澶氱壒鎬э紙鏂規硶閲嶈澆銆侀泦鍚堟蹇典互鍙婃槧灝勶級錛屾妸SAX鍜孌OM鐨勫姛鑳芥湁鏁堝湴緇撳悎璧鋒潵銆?/p> <p>      Jdom鏄敤Java璇█璇匯佸啓銆佹搷浣淴ML鐨勬柊API鍑芥暟銆侸ason Hunter 鍜?Brett McLaughlin鍏紑鍙戝竷浜嗗畠鐨?.0鐗堟湰銆傚湪鐩磋銆佺畝鍗曞拰楂樻晥鐨勫墠鎻愪笅錛岃繖浜汚PI鍑芥暟琚渶澶ч檺搴︾殑浼樺寲銆傚湪鎺ヤ笅鏉ョ殑綃囧箙閲屽皢浠嬬粛鎬庝箞鐢↗dom鍘昏鍐欎竴涓凡緇忓瓨鍦ㄧ殑XML鏂囨。銆?/p> <p><br>      鍦ㄤ嬌鐢ㄨ璁′笂灝藉彲鑳藉湴闅愯棌鍘熸潵浣跨敤XML榪囩▼涓殑澶嶆潅鎬с傚埄鐢↗DOM澶勭悊XML鏂囨。灝嗘槸涓浠惰交鏉俱佺畝鍗曠殑浜嬨?/p> <p>      JDOM 鍦?000騫寸殑鏄ュぉ琚獴rett McLaughlin鍜孞ason Hunter寮鍙戝嚭鏉ワ紝浠ュ譏琛OM鍙奡AX鍦ㄥ疄闄呭簲鐢ㄥ綋涓殑涓嶈凍涔嬪銆?/p> <p>      榪欎簺涓嶈凍涔嬪涓昏鍦ㄤ簬SAX娌℃湁鏂囨。淇敼銆侀殢鏈鴻闂互鍙婅緭鍑虹殑鍔熻兘錛岃屽浜嶥OM鏉ヨ錛孞AVA紼嬪簭鍛樺湪浣跨敤鏃舵潵鐢ㄨ搗鏉ユ昏寰椾笉澶柟渚褲?/p> <p>      DOM鐨勭己鐐逛富瑕佹槸鏉ヨ嚜浜庣敱浜嶥om鏄竴涓帴鍙e畾涔夎璦錛圛DL錛?瀹冪殑浠誨姟鏄湪涓嶅悓璇█瀹炵幇涓殑涓涓渶浣庣殑閫氱敤鏍囧噯錛屽茍涓嶆槸涓篔AVA鐗瑰埆璁捐鐨勩侸DOM鐨勬渶鏂扮増鏈負JDOM Beta 9銆傛渶榪慗DOM琚敹褰曞埌JSR-102鍐咃紝榪欐爣蹇楃潃JDOM鎴愪負浜咼AVA騫沖彴緇勬垚鐨勪竴閮ㄥ垎銆?/p> <p>      鍦?JDOM 涓紝XML 鍏冪礌灝辨槸 Element 鐨勫疄渚嬶紝XML 灞炴у氨鏄?Attribute 鐨勫疄渚嬶紝XML 鏂囨。鏈韓灝辨槸 Document 鐨勫疄渚嬨?/p> <p>      鍥犱負 JDOM 瀵硅薄灝辨槸鍍?Document銆丒lement 鍜?Attribute 榪欎簺綾葷殑鐩存帴瀹炰緥錛屽洜姝ゅ垱寤轟竴涓柊 JDOM 瀵硅薄灝卞鍦?Java 璇█涓嬌鐢?new 鎿嶄綔絎︿竴鏍峰鏄撱侸DOM 鐨勪嬌鐢ㄦ槸鐩存埅浜嗗綋鐨勩?/p> <p>      JDOM 浣跨敤鏍囧噯鐨?Java 緙栫爜<a target=_new><u><font color=#0000ff>妯″紡</font></u></a>銆傚彧瑕佹湁鍙兘錛屽畠浣跨敤 Java new 鎿嶄綔絎﹁屼笉鏁呭紕鐜勮櫄浣跨敤澶嶆潅鐨勫伐鍘傚寲妯″紡錛屼嬌瀵硅薄鎿嶄綔鍗充究瀵逛簬鍒濆鐢ㄦ埛涔熷緢鏂逛究銆?/p> <p><br><strong>涓銆丣DOM鍖呮瑙?/strong></p> <p>JDOM鏄敱浠ヤ笅鍑犱釜鍖呯粍鎴愮殑</p> <p>org.jdom鍖呭惈浜嗘墍鏈夌殑xml鏂囨。瑕佺礌鐨刯ava綾?br>org.jdom.adapters鍖呭惈浜嗕笌dom閫傞厤鐨刯ava綾?br>org.jdom.filter鍖呭惈浜唜ml鏂囨。鐨勮繃婊ゅ櫒綾?br>org.jdom.input鍖呭惈浜嗚鍙杧ml鏂囨。鐨勭被<br>org.jdom.output鍖呭惈浜嗗啓鍏ml鏂囨。鐨勭被<br>org.jdom.transform鍖呭惈浜嗗皢jdomxml鏂囨。鎺ュ彛杞崲涓哄叾浠杧ml鏂囨。鎺ュ彛<br>org.jdom.xpath鍖呭惈浜嗗xml鏂囨。xpath鎿嶄綔鐨勭被</p> <p><strong>浜屻丣DOM綾昏鏄?/strong></p> <p>      1銆乷rg.JDOM榪欎釜鍖呴噷鐨勭被鏄綘J瑙f瀽xml<a target=_new><u><font color=#0000ff>鏂囦歡</font></u></a>鍚庢墍瑕佺敤鍒扮殑鎵鏈夋暟鎹?a target=_new><u><font color=#0000ff>綾誨瀷</font></u></a>銆?/p> <p>Attribute<br>CDATA<br>Coment<br>DocType<br>Document<br>Element<br>EntityRef<br>Namespace<br>ProscessingInstruction<br>Text</p> <p>      2銆乷rg.JDOM.transform鍦ㄦ秹鍙妜slt鏍煎紡杞崲鏃跺簲浣跨敤涓嬮潰鐨?涓被</p> <p>JDOMSource<br>JDOMResult<br>org.JDOM.input</p> <p>      3銆佽緭鍏ョ被錛屼竴鑸敤浜庢枃。鐨勫垱寰忓伐浣</p> <p>SAXBuilder<br>DOMBuilder<br>ResultSetBuilder</p> <p>      4銆乷rg.JDOM.output杈撳嚭綾伙紝鐢ㄤ簬鏂囨。杞崲杈撳嚭</p> <p>XMLOutputter<br>SAXOutputter<br>DomOutputter<br>JTreeOutputter</p> <p>      浣跨敤鍓嶆敞鎰忎簨欏癸細</p> <p>      1.JDOM瀵逛簬JAXP浠ュ強TRax鐨勬敮鎸?/p> <p>      JDOM鏀寔JAXP1.1錛氫綘鍙互鍦ㄧ▼搴忎腑浣跨敤浠諱綍鐨刾arser宸ュ叿綾?榛樿鎯呭喌涓嬫槸JAXP鐨刾arser銆?br>鍒跺畾鐗瑰埆鐨刾arser鍙敤濡備笅褰㈠紡<br>SAXBuilderparser<br>=newSAXBuilder("org.apache.crimson.parser.XMLReaderImpl");<br>Documentdoc=parser.build("http://www.cafeconleche.org/");<br>//workwiththedocument...<br>JDOM涔熸敮鎸乀RaX錛歑SLT鍙氳繃JDOMSource浠ュ強JDOMResult綾繪潵杞崲錛堝弬瑙佷互鍚庣珷鑺傦級</p> <p>      2.娉ㄦ剰鍦↗DOM閲屾枃。锛圖ocument錛夌被鐢眔rg.JDOM.Document鏉ヨ〃紺恒傝繖瑕佷笌org.w3c.dom涓殑Document鍖哄埆寮錛岃繖2縐嶆牸寮忓浣曡漿鎹㈠湪鍚庨潰浼氳鏄庛?br>      浠ヤ笅濡傛棤鐗規寚鍧囨寚JDOM閲岀殑Document銆?/p> <p><strong>涓夈丣DOM涓昏浣跨敤鏂規硶</strong></p> <p>1.Ducument綾?/p> <p>(1)Document鐨勬搷浣滄柟娉曪細</p> <p>Elementroot=newElement("GREETING");<br>Documentdoc=newDocument(root);<br>root.setText("HelloJDOM!");<br>鎴栬呯畝鍗曠殑浣跨敤Documentdoc=newDocument(newElement("GREETING").setText("HelloJDOM!t"));<br>榪欑偣鍜孌OM涓嶅悓銆侱om鍒欓渶瑕佹洿涓哄鏉傜殑浠g爜錛屽涓嬶細<br>DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();<br>DocumentBuilderbuilder=factory.newDocumentBuilder();<br>Documentdoc=builder.newDocument();<br>Elementroot=doc.createElement("root");<br>Texttext=doc.createText("Thisistheroot");<br>root.appendChild(text);<br>doc.appendChild(root);<br>娉ㄦ剰浜嬮」錛欽DOM涓嶅厑璁稿悓涓涓妭鐐瑰悓鏃惰2涓垨澶氫釜鏂囨。鐩稿叧鑱旓紝瑕佸湪絎?涓枃妗d腑浣跨敤鍘熸潵鑰佹枃。涓殑鑺傜偣鐨勮瘽銆傞鍏堥渶瑕佷嬌鐢╠etach()鎶婅繖涓妭鐐瑰垎寮鏉ャ?/p> <p>(2)浠庢枃浠躲佹祦銆佺郴緇烮D銆乁RL寰楀埌Document瀵硅薄錛?/p> <p>DOMBuilderbuilder=newDOMBuilder();<br>Documentdoc=builder.build(newFile("jdom_test.xml"));<br>SAXBuilderbuilder=newSAXBuilder();<br>Documentdoc=builder.build(url);<br>鍦ㄦ柊鐗堟湰涓璂OMBuilder宸茬粡Deprecated鎺塂OMBuilder.builder(url)錛岀敤SAX鏁堢巼浼氭瘮杈冨揩銆?br>榪欓噷涓句竴涓皬渚嬪瓙錛屼負浜嗙畝鍗曡搗瑙侊紝浣跨敤String瀵硅薄鐩存帴浣滀負xml鏁版嵁婧愶細<br>PublicjdomTest(){<br>StringtextXml=null;<br>textXml="";<br>textXml=textXml+<br>"aaabbbcccddd";<br>textXml=textXml+"";<br>SAXBuilderbuilder=newSAXBuilder();<br>Documentdoc=null;<br>Readerin=newStringReader(textXml);<br>try{<br>doc=builder.build(in);<br>Elementroot=doc.getRootElement();<br>Listls=root.getChildren();//娉ㄦ剰姝ゅ鍙栧嚭鐨勬槸root鑺傜偣涓嬮潰鐨勪竴灞傜殑Element闆嗗悎<br>for(Iteratoriter=ls.iterator();iter.hasNext();){<br>Elementel=(Element)iter.next();<br>if(el.getName().equals("to")){<br>System.out.println(el.getText());<br>}<br>}<br>}<br>catch(IOExceptionex){<br>ex.printStackTrace();<br>}<br>catch(JDOMExceptionex){<br>ex.printStackTrace();<br>}<br>}<br>(3)DOM鐨刣ocument鍜孞DOM鐨凞ocument涔嬮棿鐨勭浉浜掕漿鎹嬌鐢ㄦ柟娉曪紝綆鍗曪紒<br>DOMBuilderbuilder=newDOMBuilder();<br>org.jdom.DocumentjdomDocument=builder.build(domDocument);<br>DOMOutputterconverter=newDOMOutputter();//workwiththeJDOMdocument…<br>org.w3c.dom.DocumentdomDocument=converter.output(jdomDocument);<br>//workwiththeDOMdocument…</p> <p>2.XML鏂囨。杈撳嚭</p> <p>XMLOutPutter綾伙細<br>JDOM鐨勮緭鍑洪潪甯哥伒媧?鏀寔寰堝縐峣o鏍煎紡浠ュ強椋庢牸鐨勮緭鍑?br>Documentdoc=newDocument(...);<br>XMLOutputteroutp=newXMLOutputter();<br>outp.output(doc,fileOutputStream);//Rawoutput<br>outp.setTextTrim(true);//Compressedoutput<br>outp.output(doc,socket.getOutputStream());<br>outp.setIndent("");//Prettyoutput<br>outp.setNewlines(true);<br>outp.output(doc,System.out);<br>璇︾粏璇峰弬闃呮渶鏂扮殑JDOMAPI鎵嬪唽</p> <p>3.Element綾伙細</p> <p>(1)嫻忚Element鏍?br>Elementroot=doc.getRootElement();//鑾峰緱鏍瑰厓绱爀lement<br>ListallChildren=root.getChildren();//鑾峰緱鎵鏈夊瓙鍏冪礌鐨勪竴涓猯ist<br>ListnamedChildren=root.getChildren("name");//鑾峰緱鎸囧畾鍚嶇О瀛愬厓绱犵殑list<br>Elementchild=root.getChild("name");//鑾峰緱鎸囧畾鍚嶇О鐨勭涓涓瓙鍏冪礌<br>JDOM緇欎簡鎴戜滑寰堝寰堢伒媧葷殑浣跨敤鏂規硶鏉ョ鐞嗗瓙鍏冪礌錛堣繖閲岀殑List鏄痡ava.util.List錛?br>ListallChildren=root.getChildren();<br>allChildren.remove(3);//鍒犻櫎絎洓涓瓙鍏冪礌<br>allChildren.removeAll(root.getChildren("jack"));//鍒犻櫎鍙?#8220;jack”鐨勫瓙鍏冪礌<br>root.removeChildren("jack");//渚挎嵎鍐欐硶<br>allChildren.add(newElement("jane"));//鍔犲叆<br>root.addContent(newElement("jane"));//渚挎嵎鍐欐硶<br>allChildren.add(0,newElement("first"));</p> <p>(2)縐誨姩Elements:<br>鍦↗DOM閲屽緢綆鍗?br>Elementmovable=newElement("movable");<br>parent1.addContent(movable);//place<br>parent1.removeContent(movable);//remove<br>parent2.addContent(movable);//add<br>鍦―om閲?br>Elementmovable=doc1.createElement("movable");<br>parent1.appendChild(movable);//place<br>parent1.removeChild(movable);//remove<br>parent2.appendChild(movable);//鍑洪敊!<br>琛ュ厖錛氱籂閿欐?br>JDOM鐨凟lement鏋勯犲嚱鏁幫紙浠ュ強瀹冪殑鍏朵粬鍑芥暟錛変細媯鏌lement鏄惁鍚堟硶銆?br>鑰屽畠鐨刟dd/remove鏂規硶浼氭鏌ユ爲緇撴瀯錛屾鏌ュ唴瀹瑰涓嬶細<br>1.鍦ㄤ換浣曟爲涓槸鍚︽湁鍥炵幆鑺傜偣<br>2.鏄惁鍙湁涓涓牴鑺傜偣<br>3.鏄惁鏈変竴鑷寸殑鍛藉悕絀洪棿錛圢amespaces錛?/p> <p>(3)Element鐨則ext鍐呭璇誨彇</p> <p>Acooldemo</p> <p>//Thetextisdirectlyavailable<br>//Returns"\nAcooldemo\n"<br>Stringdesc=element.getText();<br>//There'saconvenientshortcut<br>//Returns"Acooldemo"<br>Stringdesc=element.getTextTrim();<br>(4)Elment鍐呭淇敼<br>element.setText("Anewdescription");<br>3.鍙紜В閲婄壒孌婂瓧絎?br>element.setText("</p> <p><strong>鍥涖丣DOM鐨勫簲鐢?/strong></p> <p>錛堜竴錛夈乆ML鏂囨。鍒涘緩</p> <p>      鎴戜滑鐢遍浂寮濮嬪埄鐢↗DOM鐢熸垚涓涓猉ML鏂囨。銆傛渶鍚庣殑緇撴灉(鏍鋒湰鏂囨。)鐪嬭搗鏉ヨ薄榪欐牱錛?/p> <p><br>kingwong</p> <p>87654321</p> <p>1.浠?MyInfo 涓烘牴鍏冪礌鍒涘緩鏂囨。</p> <p>Element rootElement = new Element("MyInfo");//鎵鏈夌殑XML鍏冪礌閮芥槸 Element 鐨勫疄渚嬨傛牴鍏冪礌涔熶笉渚嬪錛氾級<br>Document myDocument = new Document(rootElement);//浠ユ牴鍏冪礌浣滀負鍙傛暟鍒涘緩Document瀵硅薄銆備竴涓狣ocument鍙湁涓涓牴錛屽嵆root鍏冪礌銆?/p> <p>2.緇欐牴鍏冪礌娣誨姞灞炴?/p> <p>Attribute rootAttri = new Attribute("comment","introduce myself");//鍒涘緩鍚嶄負 commnet,鍊間負 introduce myself 鐨勫睘鎬с?br>rootElement.setAttribute(rootAttri);//灝嗗垰鍒涘緩鐨勫睘鎬ф坊鍔犲埌鏍瑰厓绱犮?br>榪欎袱琛屼唬鐮佷綘涔熷彲浠ュ悎鎴愪竴琛屾潵鍐欙紝璞¤繖鏍鳳細<br>rootElement.setAttribute(new Attribute("comment","introduce myself"));<br>鎴栬?br>rootElement.setAttribute("comment","introduce myself");</p> <p>3.娣誨姞鍏冪礌鍜屽瓙鍏冪礌</p> <p>JDOM閲屽瓙鍏冪礌鏄綔涓?content錛堝唴瀹癸級娣誨姞鍒扮埗鍏冪礌閲岄潰鍘葷殑,鎵璋揷ontent灝辨槸綾諱技涓婇潰鏍鋒湰鏂囨。涓箣闂寸殑涓滀笢錛屽嵆kingwong銆傜綏鍡︿簡鐐規槸鍚э細錛?br>Element nameElement = new Element("name");//鍒涘緩 name 鍏冪礌<br>nameElement.addContent("kingwong");//灝唊ingwong浣滀負content娣誨姞鍒皀ame鍏冪礌<br>rootElement.addContent(nameElement);//灝唍ame鍏冪礌浣滀負content娣誨姞鍒版牴鍏冪礌</p> <p>榪欎笁琛屼綘涔熷彲浠ュ悎涓轟竴鍙ワ紝璞¤繖鏍鳳細<br>rootElement.addContent((Content)(new Element("name").addContent("kingwong")));//鍥犱負addContent(Content child)鏂規硶榪斿洖鐨勬槸涓涓狿arent鎺ュ彛錛岃孍lement綾誨悓鏃剁戶鎵夸簡Content綾誨拰瀹炵幇浜哖arent鎺ュ彛錛屾墍浠ユ垜浠妸瀹冮犲瀷鎴怌ontent銆?/p> <p>鎴戜滑鐢ㄥ悓鏍風殑鏂規硶娣誨姞甯﹀睘鎬х殑瀛愬厓绱?br>rootElement.addContent(new Element("sex").setAttribute("value","male"));//娉ㄦ剰榪欓噷涓嶉渶瑕佽漿鍨嬶紝鍥犱負addAttribute(String name,String value)榪斿洖鍊煎氨鏄竴涓?Element銆?/p> <p>鍚屾牱鐨勶紝鎴戜滑娣誨姞鍏冪礌鍒版牴鍏冪礌涓嬶紝鐢ㄦ硶涓婁竴鏍鳳紝鍙槸紼嶅井澶嶆潅浜嗕竴浜涳細<br>rootElement.addContent((Content)(new Element("contact").addContent((Content)(new Element("telephone").addContent("87654321")))));<br>濡傛灉浣犲榪欑綆鍐欏艦寮忚繕涓嶅お涔犳儻錛屼綘瀹屽叏鍙互鍒嗘鏉ュ仛錛屽氨璞℃湰鑺傚垰寮濮嬬殑鏃跺欎竴鏍楓備簨瀹炰笂濡傛灉灞傛姣旇緝澶氾紝鍐欐垚鍒嗘鐨勫艦寮忔洿娓呮櫚浜涳紝涔熶笉瀹規槗鍑洪敊銆?/p> <p>4.鍒犻櫎瀛愬厓绱?/p> <p>榪欎釜鎿嶄綔姣旇緝綆鍗曪細<br>rootElement.removeChild("sex");//璇ユ柟娉曡繑鍥炰竴涓竷灝斿?/p> <p>鍒扮洰鍓嶄負姝紝鎴戜滑瀛︿範浜嗕竴涓婮DOM鏂囨。鐢熸垚鎿嶄綔銆備笂闈㈠緩绔嬩簡涓涓牱鏈枃。锛屽彲鏄垜浠庝箞鐭ラ亾瀵逛笉瀵瑰憿錛熷洜姝ら渶瑕佽緭鍑烘潵鐪嬩竴涓嬨傛垜浠皢JDOM鐢熸垚鐨勬枃妗h緭鍑哄埌鎺у埗鍙幫紝浣跨敤 JDOM 鐨?XMLOutputter 綾匯?/p> <p>5. 灝?JDOM 杞寲涓?XML 鏂囨湰</p> <p>XMLOutputter xmlOut = new XMLOutputter(" ",true);<br>try {<br>xmlOut.output(myDocument,System.out);<br>} catch (IOException e) {<br>e.printStackTrace();<br>}<br>XMLOutputter 鏈夊嚑涓牸寮忛夐」銆傝繖閲屾垜浠凡鎸囧畾甯屾湜瀛愬厓绱犱粠鐖跺厓绱犵緝榪涗袱涓┖鏍鹼紝騫朵笖甯屾湜鍏冪礌闂存湁絀鴻銆?br>new XMLOutputter(java.lang.String indent, boolean newlines)榪欎釜鏂規硶鍦ㄦ渶鏂扮増鏈腑宸茬粡涓嶅緩璁嬌鐢ㄣ侸DOM鏈変竴涓笓闂ㄧ殑鐢ㄦ潵瀹氫箟鏍煎紡鍖栬緭鍑虹殑綾伙細org.jdom.output.Format錛屽鏋滀綘娌℃湁鐗規畩鐨勮姹傦紝鏈夋椂鍊欎嬌鐢ㄩ噷闈㈢殑鍑犱釜闈欐佹柟娉曪紙搴旇鍙互璇存槸棰勫畾涔夋牸寮忥級濡?getPrettyFormat()灝卞彲浠ヤ簡銆傛垜浠妸涓婇潰鐨勮緭鍑烘牸寮忕◢寰敼涓涓嬶紝灝辮薄榪欐牱錛?br>XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat()); </p> <p>6.灝咼DOM鏂囨。杞寲涓哄叾浠栧艦寮?/p> <p>XMLOutputter 榪樺彲杈撳嚭鍒?Writer 鎴?OutputStream銆備負浜嗚緭鍑篔DOM鏂囨。鍒頒竴涓枃鏈枃浠訛紝鎴戜滑鍙互榪欐牱鍋氾細<br>FileWriter writer = new FileWriter("/some/directory/myFile.xml");<br>outputter.output(myDocument, writer);<br>writer.close();</p> <p>XMLOutputter 榪樺彲杈撳嚭鍒板瓧絎︿覆,浠ヤ究紼嬪簭鍚庨潰榪涜鍐嶅鐞?<br>Strng outString = xmlOut.outputString(myDocument);</p> <p>褰撶劧錛屽湪杈撳嚭鐨勬椂鍊欎綘涓嶄竴瀹氳杈撳嚭鎵鏈夌殑鏁翠釜鏂囨。錛屼綘鍙互閫夋嫨鍏冪礌榪涜杈撳嚭錛?br>xmlOut.output(rootElement.getChild("name"),System.out);<br>涓鍙ヨ瘽錛孞DOM闈炲父鐏墊椿鏂逛究錛佸鏋滀綘鎯寵繘涓姝ョ爺絀禞DOM錛岃鍒板畼鏂圭綉绔欏幓鐪嬩竴鐪嬶細http://www.jdom.org</p> <p>鏈妭紺轟緥婧愮爜錛?br>package com.cyberobject.study;</p> <p>import java.io.IOException;</p> <p>import org.jdom.Attribute;<br>import org.jdom.Content;<br>import org.jdom.Document;<br>import org.jdom.Element;<br>import org.jdom.output.Format;<br>import org.jdom.output.XMLOutputter;</p> <p>/**<br>* @author kingwong<br>*<br>* TODO To change the template for this generated <a target=_new><u><font color=#0000ff>type</font></u></a> comment go to<br>* Window - Preferences - Java - Code Style - Code Templates<br>*/<br>public <a target=_new><u><font color=#0000ff>class</font></u></a> TestJDOM {</p> <p>public static void main(String[] args)<br>{<br>Element rootElement = new Element("MyInfo");<br>Document myDocument = new Document(rootElement);</p> <p>// Attribute rootAttri = new Attribute("comment","introduce myself");<br>// rootElement.setAttribute(rootAttri);</p> <p>rootElement.setAttribute("comment","introduce myself");<br>//rootElement.setAttribute(new Attribute("comment","introduce myself"));<br>// Element sexElement = new Element("sex");<br>// rootElement.addContent(sexElement);</p> <p>// Element nameElement = new Element("name");<br>// nameElement.addContent("kingwong");<br>// rootElement.addContent(nameElement);</p> <p>rootElement.addContent((Content)(new Element("name").addContent("kingwong")));<br>rootElement.addContent(new Element("sex").setAttribute("value","male"));<br>rootElement.addContent((Content)(new Element("contract").addContent((Content)(new Element("telephone").addContent("87654321")))));</p> <p>rootElement.removeChild("sex");</p> <p>XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());<br>try {<br>xmlOut.output(myDocument,System.out);<br>//xmlOut.output(rootElement.getChild("name"),System.out);<br>//String outString = xmlOut.outputString(myDocument);<br>} catch (IOException e) {<br>e.printStackTrace();<br>}<br>}<br>}</p> <p><br>錛堜簩錛夈乆ML鏂囨。瑙f瀽</p> <p>JDOM 涓嶅厜鍙互寰堟柟渚跨殑寤虹珛XML鏂囨。錛屽畠鐨勫彟涓涓敤澶勬槸瀹冭兘澶熻鍙栧茍鎿嶄綔鐜版湁鐨?XML 鏁版嵁銆?br>JDOM鐨勮В鏋愬櫒鍦╫rg.jdom.input.*榪欎釜鍖呴噷錛屽叾涓殑DOMBuilder鐨勫姛鑳芥槸灝咲OM妯″瀷鐨凞ocument瑙f瀽鎴怞DOM妯″瀷鐨凞ocument錛汼AXBuilder鐨勫姛鑳芥槸浠庢枃浠舵垨嫻佷腑瑙f瀽鍑虹鍚圝DOM妯″瀷鐨刋ML鏍戙傜敱浜庢垜浠粡甯歌浠庝竴涓枃浠墮噷璇誨彇鏁版嵁錛屽洜姝ゆ垜浠簲璇ラ噰鐢ㄥ悗鑰呬綔涓鴻В鏋愬伐鍏楓?br>瑙f瀽涓涓獂ml鏂囨。錛屽熀鏈彲浠ョ湅鎴愪互涓嬪嚑涓楠わ細</p> <p>1.瀹炰緥鍖栦竴涓悎閫傜殑瑙f瀽鍣ㄥ璞?/p> <p>鏈緥涓垜浠嬌鐢⊿AXBuilder:<br>SAXBuilder sb = new SAXBuilder();</p> <p>2.浠ュ寘鍚玐ML鏁版嵁鐨勬枃浠朵負鍙傛暟錛屾瀯寤轟竴涓枃妗e璞yDocument</p> <p>Document myDocument = sb.build(/some/directory/myFile.xml);</p> <p>3.鑾峰埌鏍瑰厓绱?/p> <p>Element rootElement = myDocument.getRootElement();</p> <p>涓鏃︿綘鑾峰彇浜嗘牴鍏冪礌錛屼綘灝卞彲浠ュ緢鏂逛究鍦板瀹冧笅闈㈢殑瀛愬厓绱犺繘琛屾搷浣滀簡錛屼笅闈㈠Element瀵硅薄鐨勪竴浜涘父鐢ㄦ柟娉曚綔涓涓嬬畝鍗曡鏄庯細<br>getChild("childname") 榪斿洖鎸囧畾鍚嶅瓧鐨勫瓙鑺傜偣,濡傛灉鍚屼竴綰ф湁澶氫釜鍚屽悕瀛愯妭鐐癸紝鍒欏彧榪斿洖絎竴涓紱濡傛灉娌℃湁榪斿洖null鍊箋?br>getChildren("childname") 榪斿洖鎸囧畾鍚嶅瓧鐨勫瓙鑺傜偣List闆嗗悎銆傝繖鏍蜂綘灝卞彲浠ラ亶鍘嗘墍鏈夌殑鍚屼竴綰у悓鍚嶅瓙鑺傜偣銆?<br>getAttributeValue("name") 榪斿洖鎸囧畾灞炴у悕瀛楃殑鍊箋傚鏋滄病鏈夎灞炴у垯榪斿洖null,鏈夎灞炴т絾鏄間負絀猴紝鍒欒繑鍥炵┖瀛楃涓層?br>getChildText("childname") 榪斿洖鎸囧畾瀛愯妭鐐圭殑鍐呭鏂囨湰鍊箋?br>getText() 榪斿洖璇ュ厓绱犵殑鍐呭鏂囨湰鍊箋?/p> <p>榪樻湁鍏朵粬娌℃湁緗楀垪鍑烘潵鐨勬柟娉曪紝濡傛灉闇瑕佺殑璇濓紝鍙互闅忔椂鏌ラ槄JDOM鐨勫湪綰挎枃妗o細http://www.jdom.org/docs/apidocs/index.html銆傚綋鐒朵綘鍙互鍦ㄤ綘闇瑕佺殑鍦版柟娣誨姞銆佸垹闄ゅ厓绱犳搷浣滐紝榪樿寰椾笂闈㈢殑鍒涘緩XML鐨勬柟娉曞悧錛熷懙鍛祣~~</p> <p>瀛︿範鏂頒笢涓滆繕鏄粠瀹炰緥瀛﹁搗鏈涓哄揩鎹鳳紝涓嬮潰綆鍗曚婦涓緥瀛愶紝灝變互涓婇潰鐨刋ML鏍鋒湰浠g爜鏉ュ涔燡DOM鐨刋ML瑙f瀽銆傛湰渚嬩腑璇誨彇浜嗘牱鏈琗ML鏂囦歡閲屼竴浜涘睘鎬у拰content錛屾渶鍚庢垜浠繕鍦╟ontact鍏冪礌閲屾彃鍏ヤ簡涓涓柊鍏冪礌wanghua@cyberobject.com" />銆傚敖綆℃垜浠疄鐜頒簡瀵逛簬XML鐨勫熀鏈搷浣滐紝緇嗗績鐨勬湅鍙嬪彲鑳戒細<br>鏈夌枒闂細濡傛灉XML鏂囨。鐨勫眰嬈$◢寰鏉備竴浜涳紝濡傛灉宓屽澶氳揪鍑犲崄涓婄櫨灞傜殑璇濓紙寮涓帺絎戯級錛屽鏋滈潬榪欐牱浠庢牴鍏冪礌涓綰т竴綰у湴閫氳繃getChild("childname")鏉ヨ闂瓙鍏冪礌鐨勮瘽錛屽皢浼氶潪甯哥棝鑻︼紒鏄殑錛岀殑紜槸榪欐牱錛屼絾鏄垜浠湁鍙︿竴涓湁鍔涚殑宸ュ叿XPath錛屼負浠涔堜笉鐢ㄥ憿錛熻繖鏄悗璇濓紒鍏堝崠涓叧瀛愶紙鎵嬫暡绱暒錛屼笅鍥炲惂錛屽懙鍛碉級銆?/p> <p>/*<br>* Created on 2004-8-21<br>*<br>* TODO To change the template for this generated file go to<br>* Window - Preferences - Java - Code Style - Code Templates<br>*/<br>package com.cyberobject.study;</p> <p>import org.jdom.Document;<br>import org.jdom.Element;<br>import org.jdom.input.SAXBuilder;<br>import org.jdom.output.Format;<br>import org.jdom.output.XMLOutputter;</p> <p>/**<br>* @author kingwong<br>*<br>* TODO To change the template for this generated type comment go to<br>* Window - Preferences - Java - Code Style - Code Templates<br>*/<br>public class TestJDOM2 {<br>public static void main(String[] args){<br>SAXBuilder sb = new SAXBuilder();<br>try<br>{ <br>Document doc = sb.build("myFile.xml");<br>Element root = doc.getRootElement();</p> <p>String str1 = root.getAttributeValue("comment");<br>System.out.println("Root Element's comment attribute is : " + str1);<br>String str2 = root.getChild("sex").getAttributeValue("value");<br>System.out.println("sex Element's value attribute is : " + str2);<br>String str3 = root.getChildText("name");<br>System.out.println("name Element's content is :" + str3);<br>String str4 = root.getChild("contact").getChildText("telephone");<br>System.out.println("contact Element's telephone subelement content is : " + str4 + "\n");<br>Element inputElement = root.getChild("contact"); <br>inputElement.addContent(new Element("email").setAttribute("value","wanghua@cyberobject.com"));</p> <p>XMLOutputter xmlOut = new XMLOutputter(Format.getPrettyFormat());<br>String outStr = xmlOut.outputString(root);<br>System.out.println(outStr);<br>}<br>catch(Exception e)<br>{<br>e.printStackTrace();<br>}<br>}<br>}</p> <p> </p> <p></font></p><img src ="http://www.tkk7.com/mlh123caoer/aggbug/126177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-06-25 18:33 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/06/25/126177.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Groovy錛?涓涓睘浜嶫AVA騫沖彴鐨勫姩鎬佸紑鍙戣璦錛変笌JAVA 鐨勫紓鍚?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/06/06/122454.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Wed, 06 Jun 2007 13:31:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/06/06/122454.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/122454.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/06/06/122454.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/122454.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/122454.html</trackback:ping><description><![CDATA[<div id="e8sa80u" class=content style="PADDING-TOP: 3mm"> <p>Groovy tries to be as natural as possible for Java developers. We've tried to follow the principle of least surprise when designing Groovy, particularly for developers learning Groovy who've come from a Java background.</p> <p>Here we list all the major differences between Java and Groovy.</p> <div id="a0m8ww0" class=section_2> <h2><a name=DifferencesfromJava-Defaultimports></a>Default imports</h2> <p>All these packages and classes are imported by default, i.e. you do not have to use an explicit <tt>import</tt> statement to use them:</p> <ul> <li>java.io.* <li>java.lang.* <li>java.math.BigDecimal <li>java.math.BigInteger <li>java.net.* <li>java.util.* <li>groovy.lang.* <li>groovy.util.* </li> </ul> </div> <div id="cicwumy" class=section_2> <h2><a name=DifferencesfromJava-Commongotchas></a>Common gotchas</h2> <p>Here we list the common things you might trip over if you're a Java developer starting to use Groovy.</p> <ul> <li>== means equals on all types. In Java there's a wierd part of the syntax where == means equality for primitive types and == means identity for objects. Since we're using autoboxing this would be very confusing for Java developers (since x == 5 would be mostly false if x was 5 <img class=emoticon height=20 alt="" src="http://docs.codehaus.org/images/icons/emoticons/smile.gif" width=20 align=absMiddle border=0></img>. So for simplicity == means equals() in Groovy. If you really need the identity, you can use the method "is" like foo.is(bar). This does not work on null, but you can still use == here: foo==null. <li>in is a keyword. So don't use it as a variable name. <li>When declaring array you can't write <div id="eg00qgy" class=code> <div id="agmo8yg" class=codeContent> <pre class=code-java><span id="u8c0c0g" class=code-object><font color=#910091>int</font></span>[] a = {1,2,3};</pre> </div> </div> <p>you need to write</p> <div id="00060ms" class=code> <div id="80gci00" class=codeContent> <pre class=code-java><span id="ecc00sg" class=code-object><font color=#910091>int</font></span>[] a = [1,2,3]</pre> </div> </div> <li>If you were used to write a for loop which looked like <div id="68ci88e" class=code> <div id="6wk0qy8" class=codeContent> <pre class=code-java><span id="kcqus6g" class=code-keyword><font color=#000091>for</font></span> (<span id="cu800o0" class=code-object><font color=#910091>int</font></span> i =0; i < len; i++)</pre> </div> </div> <p>in groovy you need to write</p> <div id="yg8m0k0" class=code> <div id="go8m8o0" class=codeContent> <pre class=code-java><span id="ik08o00" class=code-keyword><font color=#000091>for</font></span> (i in 0..len-1)</pre> </div> </div> <p>or</p> <div id="g0mosua" class=code> <div id="ggmsmow" class=codeContent> <pre class=code-java><span id="8ym00k0" class=code-keyword><font color=#000091>for</font></span> (i in 0..<len)</pre> </div> </div> </li> </ul> </div> <div id="cmkaki0" class=section_2> <h2><a name=DifferencesfromJava-Thingstobeawareof></a>Things to be aware of</h2> <ul> <li>semicolon is optional. Use them if you like (though you must use them to put several statements on one line). <li>the return keyword is optional. <li>you can use the <em>this</em> keyword inside static methods (which refers to this class). <li>methods and classes are public by default. <li>protected in Groovy is the equivalent of both package-protected and protected in Java. i.e. you can have friends in the same package - or derived classes can also see protected members. <li>inner classes are not supported at the moment. In most cases you can use <a title=Closures ><font color=#2266cc>closures</font></a> instead. <li>the throws clause in method heads is not checked by the Groovy compiler, because there is no difference between checked and unchecked exceptions. </li> </ul> </div> <div id="aa8ym00" class=section_2> <h2><a name=DifferencesfromJava-UncommonGotchas></a>Uncommon Gotchas</h2> <p>Java programmers are used to semicolons terminating statements and not having <a title=Closures ><font color=#2266cc>closures</font></a>. Also there are instance initializers in class definitions. So you might see something like:</p> <div id="a80somw" class=code> <div id="a0qae00" class=codeContent> <pre class=code-java>class Trial { <span id="8wg0g08" class=code-keyword><font color=#000091>private</font></span> <span id="w8wgsq0" class=code-keyword><font color=#000091>final</font></span> Thing thing = <span id="uokg88e" class=code-keyword><font color=#000091>new</font></span> Thing ( ) ; { thing.doSomething ( ) ; } }</pre> </div> </div> <p>Many Groovy programmers eschew the use of semicolons as distracting and redundant (though others use them all the time - it's a matter of coding style). A situation that leads to difficulties is writing the above in Groovy as:</p> <div id="60gs0gg" class=code> <div id="ac08g00" class=codeContent> <pre class=code-java>class Trial { <span id="qywg80u" class=code-keyword><font color=#000091>private</font></span> <span id="ccy8acc" class=code-keyword><font color=#000091>final</font></span> thing = <span id="8oiuwea" class=code-keyword><font color=#000091>new</font></span> Thing ( ) { thing.doSomething ( ) } }</pre> </div> </div> <p>This will probably be a compile error!</p> <p>The issue here is that in this situation the newline is not a statement terminator so the following block is treated as a <a title=Closures ><font color=#2266cc>closures</font></a>that is a parameter to the Thing constructor. Bizarre to many, but true. If you want to use instance initializers in this sort of way, it is effectively mandatory to have a semicolon:</p> <div id="g80g0me" class=code> <div id="s8akukk" class=codeContent> <pre class=code-java>class Trial { <span id="ygi8u80" class=code-keyword><font color=#000091>private</font></span> <span id="80amy0i" class=code-keyword><font color=#000091>final</font></span> thing = <span id="isw6g0c" class=code-keyword><font color=#000091>new</font></span> Thing ( ) ; { thing.doSomething ( ) }</pre> </div> </div> <p>This way the block following the initialized definition is clearly an instance initializer.</p> </div> <div id="88cgs88" class=section_2> <h2><a name=DifferencesfromJava-NewfeaturesaddedtoGroovynotavailableinJava></a>New features added to Groovy not available in Java</h2> <ul> <li><span id="ia0eui8" class=nobr><a ><font color=#2266cc>closures</font></a></span> <li>native <span id="eegm0u0" class=nobr><a ><font color=#2266cc>syntax</font></a></span> for lists and maps </li> </ul> <ul> <li><span id="ascwiye" class=nobr><a ><font color=#2266cc>GroovyMarkup</font></a></span> and GPath support <li>native support for <span id="8wqcmu0" class=nobr><a ><font color=#2266cc>regular expressions</font></a></span> <li>polymorphic <span id="q8wgqg0" class=nobr><a ><font color=#2266cc>iteration</font></a></span> and powerful <span id="0auga0o" class=nobr><a ><font color=#2266cc>switch statement</font></a></span> </li> </ul> <ul> <li>dynamic and static typing is supported - so you can omit the type declarations on methods, fields and variables <li>you can embed expressions inside <span id="qiswo8s" class=nobr><a ><font color=#2266cc>strings</font></a></span> <li>lots of new helper methods added to the <span id="s8i08og" class=nobr><a ><font color=#2266cc>JDK</font></a></span> <li>simpler syntax for writing <span id="goiu0so" class=nobr><a ><font color=#2266cc>beans</font></a></span> for both properties and adding event listeners </li> </ul> <ul> <li><span id="8y000m0" class=nobr><a ><font color=#2266cc>safe navigation</font></a></span>using the ?. operator, e.g. "variable?.field" and "variable?.method()" - no more nested ifs to check for null clogging up your code </li> </ul> </div> </div><img src ="http://www.tkk7.com/mlh123caoer/aggbug/122454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-06-06 21:31 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/06/06/122454.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢熸垚涓涓猨ava緙栧埗鐨勫彲鎵ц鏂囦歡[1]http://www.tkk7.com/mlh123caoer/archive/2007/05/01/114944.html鑽夊効鑽夊効Tue, 01 May 2007 09:04:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/05/01/114944.htmlhttp://www.tkk7.com/mlh123caoer/comments/114944.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/05/01/114944.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/114944.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/114944.html灝唈ava緙栫粐鎴?class鍚庯紝濡傛灉鍙槸鐢╦ava 鍛戒護鏉ユ墽琛屾昏寰椾笉鏄お榪囩樉錛屾壘涓姙娉曠敓鎴愬儚exe鏂囦歡涓鏍風敤榧犳爣鍙屽嚮渚垮彲鎵ц鐨勬枃浠訛紝搴旇鏄緢鏈夎叮鐨勫晩銆傛湰鏂囦富瑕佷粙緇嶄簡涓縐嶇敓鎴恓ava鍙墽琛岀▼搴忕殑鏂規硶銆?

榪欓噷鎴戠敤浜嗕竴涓悕瀛楀彨鍋歟xe4j鐨勫厤璐瑰皬杞歡錛屾劅瑙変笉閿欍備笅闈㈡垜灝嗘垜鎶妀ava鐨?class鏂囦歡鐢熸垚鍙墽琛屾枃浠剁殑嫻佺▼璁蹭竴涓嬨?

棣栧厛錛氬皢浣犺閫夋嫨濂戒綘鍗沖皢鍙戝竷鐨?class鏂囦歡灝變笉鐢ㄧ粏璇翠簡錛屼笅闈㈡槸鍒涘緩jar鏂囦歡錛岃繖閲屾垜鐢ㄤ竴涓悕瀛楀彨鍋歵est.class鐨勬枃浠舵潵涓句緥錛屽彟澶栨敞鎰忚繕瑕佺紪鍐欎竴涓‘瀹歮ain_class鐨勬枃浠秏anifest.mf錛屽湪榪欓噷mainfest.mf鍜宼est.class鏄湪鍚屼竴涓洰褰曚笅錛岀劧鍚庝嬌鐢ㄥ涓嬪懡浠?

jar cvfm test.jar manifest.mf test

榪欐牱錛屼竴涓猼est.jar鏂囦歡灝辯敓鎴愪簡錛岃繖閲屾垜灝變笉緇嗚jar鐨勫叿浣撳姛鑳戒簡銆備絾涓轟簡紜繚鎴愬姛錛屾垜浠彲浠ュ啀鐢ㄤ笅闈㈢殑鎸囦護鎵ц涓涓嬪垰鍒氱敓鎴愮殑test.jar錛?

java -jar test.jar

鎬庝箞鏍鳳紝鏄笉鏄彲浠ュ緢欏哄埄鐨勮繘琛岋紵濡傛灉鏄紝閭f垜浠氨鍙互寮濮嬭繘琛屽彲鎵ц鏂囦歡鐨勫垱寤轟簡銆?

涓嬮潰鎵撳紑exe4j錛屽畠鐨勫紑濮嬩竴涓晫闈㈡槸榪欐牱鐨勶細

http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439280.jpg
鍗曞嚮NEXT閿紝閫夋嫨”JAR in EXE”mod鎸夐挳錛屽崟鍑籒EXT錛?

http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439282.jpg
鍑虹幇涓嬮潰鐢婚潰錛屽~鍐欑煭鍚嶅拰鏂囦歡杈撳嚭鐨勮礬寰勭劧鍚庣偣鍑籒EXT緇х畫
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439284.jpg
浣犲張浼氱湅鍒頒笅闈㈢殑鐢婚潰錛屽湪榪欓噷浣犲彲浠ラ夋嫨浣犺鐢熸垚鐨勫彲鎵ц鏂囦歡鐨勭被鍨嬶紝浠ュ強鐢熸垚鐨勫彲鎵ц鏂囦歡鍚嶇О銆佸彲鎵ц鏂囦歡鐨勫浘鏍囩瓑錛屾垜浠湪榪欓噷灝遍夋嫨GUI application錛屽悕瀛楀氨鏍規嵁鑷繁鐨勯渶瑕佸彇涓涓紝鍥炬爣浣犲彲浠ヨ嚜宸卞湪浣犵殑鍥炬爣搴撻噷閫変竴涓綘鍠滄鐨勶紝鐒跺悗鍐峃EXT鍐嶇戶緇紱

 

http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439286.jpg
涓嬩竴涓敾闈㈠涓嬶紝鍦ㄨ繖閲屽~鍐橫ain class鐨勫悕瀛楋紝鍗曞嚮涓嬮潰鐨勭豢鑹?閫夋嫨鎵闇鐨?jar鏂囦歡,濡傛灉娌℃湁鐗規畩瑕佹眰鎴戜滑灝卞彲浠ュ啀緇х畫浜嗭紱

 

http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-291439288.jpg
鎺ヤ笅鏉ユ槸閫夋嫨鐗堟湰鐨勭敾闈紝濉啓濂借嚜宸辯殑鏈澶ф渶灝忕増鏈劧鍚庡啀緇х畫
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392810.jpg
涓嬮潰榪欎釜鐢婚潰鍙互甯姪浣犺涓涓嬩綘鐨勬枃浠舵墽琛岀殑鐗囧ご錛屽鍔犲叾緹庤鏁堟灉錛岄夋嫨鑷繁鍠滄鐨勫浘鐗囷紝鍐欒嚜宸辨兂鍐欑殑鏂囧瓧錛屽茍鍙互鏍規嵁闇瑕佽皟鏁存枃瀛楃殑浣嶇疆錛屽啀緇х畫


http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392812.jpg
涓嬮潰鏄竴涓夋嫨璇█鐗堟湰鐨勭晫闈㈤夊ソ鍚庡啀緇х畫
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392814.jpg
涓嬮潰鏄竴涓煭鏆傜殑絳夊緟
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392816.jpg
鐒跺悗灝卞ぇ鍔熷憡鎴愪簡錛屼竴涓猨ava鍐欐垚鐨勫彲鎵ц鏂囦歡灝辮繖鏍風敓鎴愪簡
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392818.jpg
鍑諱竴涓嬬湅鐪嬫晥鏋滐紝榪庨潰鑰屾潵鐨勬槸鑷繁璁劇疆鐨勫紑澶存晥鏋滐紝鎰熻鎬庝箞鏍?
http://dev.csdn.net/Develop/ArticleImages/21/21845/CSDN_Dev_Image_2003-10-2914392820.png



鑽夊効 2007-05-01 17:04 鍙戣〃璇勮
]]>
java 闈㈣瘯棰?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102792.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Fri, 09 Mar 2007 04:56:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102792.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/102792.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/102792.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/102792.html</trackback:ping><description><![CDATA[     鎽樿: 涓銆丣ava鍩虹鐭ヨ瘑1.Java鏈夐偅浜涘熀鏈暟鎹被鍨嬶紝String鏄笉鏄熀鏈暟鎹被鍨嬶紝浠栦滑鏈変綍鍖哄埆銆?.瀛楃涓茬殑鎿嶄綔錛毬?鍐欎竴涓柟娉曪紝瀹炵幇瀛楃涓茬殑鍙嶈漿錛屽錛氳緭鍏bc錛岃緭鍑篶ba聽 鍐欎竴涓柟娉曪紝瀹炵幇瀛楃涓茬殑鏇挎崲錛屽錛氳緭鍏bbwlirbbb錛岃緭鍑篵bbhhtccc銆?.鏁版嵁綾誨瀷涔嬮棿鐨勮漿鎹⒙?濡備綍灝嗘暟鍊煎瀷瀛楃杞崲涓烘暟瀛楋紙Integer錛孌ouble錛壜?濡備綍灝嗘暟瀛楄漿鎹負瀛楃聽 濡備綍鍙栧皬鏁扮偣鍓嶄袱浣嶏紝騫跺洓...  <a href='http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102792.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/102792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-03-09 12:56 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102792.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Eclipse 蹇嵎閿?鎸囧崡http://www.tkk7.com/mlh123caoer/archive/2007/03/09/102790.html鑽夊効鑽夊効Fri, 09 Mar 2007 04:46:00 GMThttp://www.tkk7.com/mlh123caoer/archive/2007/03/09/102790.htmlhttp://www.tkk7.com/mlh123caoer/comments/102790.htmlhttp://www.tkk7.com/mlh123caoer/archive/2007/03/09/102790.html#Feedback0http://www.tkk7.com/mlh123caoer/comments/commentRss/102790.htmlhttp://www.tkk7.com/mlh123caoer/services/trackbacks/102790.html闃呰鍏ㄦ枃

鑽夊効 2007-03-09 12:46 鍙戣〃璇勮
]]>
Set up an SQL realm with DB2 Express-C, Eclipse WTP, and WebSphere Application Server Community Edition V1.1錛?錛?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93456.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Fri, 12 Jan 2007 07:33:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93456.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/93456.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/93456.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/93456.html</trackback:ping><description><![CDATA[<p> <span id="6yuoag0" class="atitle">Conclusion</span> </p> <a name="conclusion"> <p>This tutorial showed you how to create an SQL realm and deploy a Web application that uses the realm. In this example, you used DB2 Express-C as the database and the Eclipse Web Tools Platform for the development environment to create an application and deploy it to WebSphere Application Server Community Edition for hosting the application.</p> <p> <a name="N1064E"> <b>Acknowledgements</b> </a> </p> <p>The author would like to thank Manu T. George (WebSphere Application Server Community Edition L3 Support) and Anitha Krishnasamy (WebSphere Application Server Community Edition Business Development) for reviewing this tutorial and providing their valuable comments.</p> <p> <span id="a8qmwcm" class="atitle"> <a name="download">Download</a> </span> </p> <p> </p> <table class="data-table-1" cellspacing="0" cellpadding="0" width="70%" border="0"> <tbody> <tr> <th>Description</th> <th>Name</th> <th align="right">Size</th> <th>Download method</th> </tr> <tr> <td class="tb-row">Sample code for this tutorial</td> <td nowrap="">sample-db2-realm.zip</td> <td nowrap="" align="right">28KB</td> <td nowrap=""> <a class="fbox" > <b> <font color="#002c99">HTTP</font> </b> </a> </td> </tr> </tbody> </table> <br /> <p> <a name="resources"> <span id="skm8oay" class="atitle">Resources</span> </a> </p> <p> <b>Learn</b> <br /> </p> <ul> <li> <a > <font color="#002c99">Kick-start your Java apps</font> </a> <br /> <br /> </li> <li> <a > <font color="#002c99">WebSphere Application Server Community Edition resources</font> </a> </li> </ul> <p> <br /> <b>Get products and technologies</b> <br /> </p> <ul> <li> <a > <font color="#002c99">Download WebSphere Application Server Community Edition V1.1</font> </a> <br /> <br /> </li> <li> <a > <font color="#002c99">Download DB2 Express-C</font> </a> <br /> <br /> </li> <li> <a > <font color="#002c99">Download Eclipse</font> </a> <br /> <br /> <p> <a name="author"> <span id="a0gim00" class="atitle">About the author</span> </a> </p> <table cellspacing="0" cellpadding="0" width="70%" border="0"> <tbody> <tr> <td colspan="3"> <img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="100%" /> </td> </tr> <tr valign="top" align="left"> <td> <p> <img height="80" alt="" src="http://www.ibm.com/developerworks/i/p-kbalachandar.jpg" width="64" align="left" /> </p> </td> <td> <img height="5" alt="" src="https://www.ibm.com/i/c.gif" width="4" /> </td> <td width="100%"> <p> <b>Krishnakumar Balachandar</b> is a senior staff software engineer at IBM Software labs in Bangalore, India. He is part of the support team for Geronimo and WebSphere Community Edition. </p> </td> </tr> </tbody> </table> </li> </ul> </a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/93456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-01-12 15:33 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93456.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Set up an SQL realm with DB2 Express-C, Eclipse WTP, and WebSphere Application Server Community Edition V1.1錛堜竴錛?/title><link>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93407.html</link><dc:creator>鑽夊効</dc:creator><author>鑽夊効</author><pubDate>Fri, 12 Jan 2007 05:37:00 GMT</pubDate><guid>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93407.html</guid><wfw:comment>http://www.tkk7.com/mlh123caoer/comments/93407.html</wfw:comment><comments>http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mlh123caoer/comments/commentRss/93407.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mlh123caoer/services/trackbacks/93407.html</trackback:ping><description><![CDATA[<p> <a > <font color="#5c81a7">Krishnakumar Balachandar</font> </a> (<a href="mailto:krishnakumarb@in.ibm.com?subject=Set up an SQL realm with DB2 Express-C, Eclipse WTP, and WebSphere Application Server Community Edition V1.1"><font color="#5c81a7">krishnakumarb@in.ibm.com</font></a>), Software Engineer, WebSphere Application Server Community Edition Support Team, IBM<br /></p> <p>20 Sep 2006</p> <blockquote>This tutorial shows you how to set up an SQL realm to implement database security for a Web application using the no-charge Java kick-start package.</blockquote> <!--START RESERVED FOR FUTURE USE INCLUDE FILES--> <script language="JavaScript" type="text/javascript"> <!-- if (document.referrer&&document.referrer!="") { // document.write(document.referrer); var q = document.referrer; var engine = q; var isG = engine.search(/google\.com/i); var searchTerms; //var searchTermsForDisplay; if (isG != -1) { var i = q.search(/q=/); var q2 = q.substring(i+2); var j = q2.search(/&/); j = (j == -1)?q2.length:j; searchTerms = q.substring(i+2,i+2+j); if (searchTerms.length != 0) { searchQuery(searchTerms); document.write("<div class="8i00yi0" id=\"contents\"></div>"); } } } //--> </script> <!--END RESERVED FOR FUTURE USE INCLUDE FILES--> <p> <span id="8a0qkaq" class="atitle">Before you start</span> </p> <p>When implementing security in a Web application, a JAAS module is required to specifically handle user authentication and authorization. WebSphere Application Server Community Edition provides a SQL realm that can connect to a database for obtaining user credentials. In this tutorial, you will see how to set up tables for creating an SQL realm in DB2 Express-C, how to set up a development environment using the Eclipse Web Tooling Platform to create a Web application, and how to deploy the Web application to WebSphere Application Server Community Edition from Eclipse.</p> <p>All Web applications should employ some level of security for user authentication and authorization to verify a user鈥檚 identity and enable access to application functions that are applicable to the user's role.</p> <p>Web applications can use LDAP, database, file system, Kerberos, or other such systems to provide authentication and authorization. To access security data from the selected method or system, an SQL realm is set up by creating tables in a database and configuring a Java Authentication and Authorization Service (JAAS) module to access these tables from an application server. </p> <p>Figure 1 shows different components in WebSphere Application Server Community Edition (hereafter referred to as Community Edition) used to provide an SQL realm. The Web application uses an SQL realm that connects to the database using a pool or driver. The user credentials are stored in tables in the database and are fetched when calls are made using the JAAS SQL realm.</p> <br /> <a name="fig1"> <b>Figure 1. Components of an SQL realm</b> </a> <br /> <img height="236" alt="Figure 1. Components of an SQL realm" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure1.gif" width="474" /> <br /> <table cellspacing="0" cellpadding="0" width="40%" align="right" border="0"> <tbody> <tr> <td width="10"> <img height="1" alt="" src="https://www.ibm.com/i/c.gif" width="10" /> </td> <td> <table cellspacing="0" cellpadding="5" width="100%" border="1"> <tbody> <tr> <td bgcolor="#eeeeee">Java Authentication and Authorization Service (JAAS) is a set of APIs that enables Java applications to access authentication and access control services without being tied to the service it is using. Using JAAS, the Java application can plug into security mechanisms like LDAP, Kerberos, databases, and so on, providing a layer between our application and the security mechanism being used.</td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <p> <a name="N100BF"> <span id="a000oge" class="smalltitle"> <strong> <font face="Arial">Setting up a database realm</font> </strong> </span> </a> </p> <p>Setting up a database realm involves performing these general steps: </p> <ul> <li>Create tables for users and groups in DB2 Express-C. </li> <li>Deploy a database pool in Community Edition, if the realm is going to use a pool to connect to the database. </li> <li>Deploy the SQL realm plan in Community Edition. </li> <li>Configure and deploy the Web application that uses the SQL realm. </li> </ul> <p> </p> <p>The remainder of this tutorial explains these tasks in detail.<br /></p> <p> <span id="ewy0uwk" class="atitle">Setting up a database</span> </p> <a name="setdb"> <p>In this section, you will see how to set up the database and database tables required for the SQL realm. You can create database and tables either by using the Control Center or by running an SQL script.</p> <p> <a name="N100EA"> <span id="eeyce88" class="smalltitle"> <strong> <font face="Arial">Using the Control Center</font> </strong> </span> </a> </p> <p> <a name="N100F1"> <strong>Create the database</strong> </a> </p> <ol> <li>In DB2 Express-C, open the Control Center. </li> <li>Right-click <b>All Databases</b>, then select <b>Create Database</b> => <b>Standard</b>. </li> <li>For Database name, enter <code>WASCE</code>. </li> <li>Click <b>Finish</b>. </li> </ol> <p>You just created a new database called WASCE and should see it listed under All Databases (Figure 2).</p> <p> <br /> <a name="fig2"> <b>Figure 2. New database created</b> </a> <br /> <img height="375" alt="Figure 2. New database created" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure2.jpg" width="500" /> <br /> <br /> </p> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td> <img height="1" alt="" src="https://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%" /> </td> </tr> </tbody> </table> <table class="no-print" cellspacing="0" cellpadding="0" align="right"> <tbody> <tr align="right"> <td> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td valign="center"> <img height="16" alt="" src="https://www.ibm.com/i/v14/icons/u_bold.gif" width="16" border="0" /> <br /> </td> <td valign="top" align="right"> <a class="fbox" > <b> <font color="#996699" size="2">Back to top</font> </b> </a> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> <br /> <br /> <p> <a name="N10129"> <span id="6mqc0o0" class="smalltitle"> <strong> <font face="Arial">Create tables</font> </strong> </span> </a> </p> <p>Now, create the tables for users (USERS) and groups (GROUPS) in the new WASCE database: </p> <ol> <li>Under WASCE in the directory listing, right-click <b>Tables</b>, then select <b>Create</b>. </li> <li>For Table name, enter <code>USERS</code>, then click <b>Next</b>. </li> <li>Add a column: <ol type="a"><li>Select <b>Add</b> to add a column to the new table. </li><li>For Column name, enter <code>USERNAME</code>. </li><li>For Data type, select <b>VARCHAR</b>. </li><li>For Nullable or not, select <b>No</b>. </li><li>Click <b>Apply</b>. </li></ol></li> <li>Repeat step 3 to add an <code>EMAIL</code> column and a <code>PASSWORD</code> column to the USERS table, with the values shown in Figure 3. When finished, click <b>OK</b>. </li> <li>Repeat steps 1 through 4 to create a new <code>GROUPS</code> table with two columns: <code>GROUPNAME</code> and <code>USERNAME</code>. </li> <li>Click <b>Next => Next => Next</b> to get to the Define keys on new table panel. </li> <li>Select <b>Add Primary</b>. From the available columns, select which column is to be the primary key for each table: <ol type="a"><li>For the USERS table, select <b>USERNAME</b>, and for the GROUPS table, select <b>USERNAME/GROUPNAME </b>as the primary key. </li><li>For the GROUPS table, select <b>Add foreign => USERNAME</b>. Click the <b>></b> button to move it to foreign key. Select <b>USERNAME</b> as the primary key in the Parent table (Schema/Name - ADMINISTRATOR/USERS). </li></ol></li> <li>Click <b>Finish</b> and the table is created. </li> </ol> <p> </p> <p>Use the steps above and the schema definitions shown in Figures 3 and 4 to create the USERS and GROUPS tables. For the USERS table, USERNAME is the primary key. For the GROUPS table, GROUPNAME and USERNAME are primary keys, and USERNAME is a foreign key (referring to USERNAME in the USERS table). </p> <p> <br /> <a name="fig3"> <b>Figure 3. USERS schema</b> </a> <br /> <img height="375" alt="Figure 3. USERS schema" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure3.jpg" width="500" /> <br /> <br /> <a name="fig4"> <b>Figure 4. GROUPS schema</b> </a> <br /> <img height="375" alt="Figure 4. GROUPS schema" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure4.jpg" width="500" /> <br /> </p> <p>In the steps shown above, the USERS and GROUPS tables are created under the ADMINISTRATOR schema. Had you logged in as db2admin, the tables would be created under the DB2ADMIN schema.</p> <p> <a name="N101DB"> <b>Populate tables with values</b> </a> </p> <ol> <li>Select <b>WASCE => Tables => USERS</b>. </li> <li>Right-click on the <b>USERS</b> table, then select <b>Open => Add row</b>. </li> <li>Enter test values for each field in the database record, then select <b>Commit</b>. </li> <li>Repeat steps 2 and 3 for each test record you wish to create, then <b>Close</b>. </li> <li>Repeat steps 1 through 4 for the GROUPS table (Figure 5). </li> </ol> <p> <br /> <a name="fig5"> <b>Figure 5. Create test data records</b> </a> <br /> <img height="462" alt="Figure 5. Create test data records" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure5.jpg" width="500" /> <br /> </p> <p> <a name="N10212"> <b>Using scripts</b> </a> </p> <p>As an alternative to using the DB2 Control Center, you can create the database, tables, and test data using an SQL script. The download file included with this tutorial contains a sanmple script file, db2_realm.sql. Execute this script from DB2 command line to create the database and tables: </p> <ol> <li>Open a Windows command window or run the DB2 batch file <code>/<i><db2 install directory></i>bin/db2cw.bat</code>. </li> <li>Execute the sample script file with this command: <code>db2 -tvfdb2-realm.sql</code>. </li> </ol> <p> </p> <p>If there are no errors, success messages will be generated for the SQL (Figure 6).</p> <p> <br /> <a name="fig6"> <b>Figure 6. Create database, tables, and test data using script</b> </a> <br /> <img height="462" alt="Figure 6. Create database, tables, and test data using script" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure6.jpg" width="500" /> <br /> </p> <p> <span id="k8amg08" class="atitle">Creating the Web application</span> </p> <a name="webapp"> <p>In this section, you will use the Eclipse Web Tools Platform (WTP) to create a simple Web application. Before you begin with the application, though, you will need to define a new server in Eclipse (to which the new application will be deployed) and create a Java Runtime Environment (JRE). After that, you can use Eclipse WTP to create the application components (like the WAR and EAR files). The download file included with this tutorial contains a source EAR file of a sample application that you can import into Eclipse WTP.</p> <p> <a name="N10251"> <b>Define a new server</b> </a> </p> <p>To deploy an application, you need to define a server in Eclipse: </p> <ol> <li>In Eclipse, right-click the <b>Server</b> tab, and select <b>New Server</b> to open the New Server wizard (Figure 7). <br /><br /><a name="fig7"><b>Figure 7. Define new server</b></a><br /><img height="529" alt="Figure 7. Define new server" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure7.jpg" width="496" /><br /><br /></li> <li>Select <b>WebSphere Application Server Community v1.1 Server</b>, then press <b>Next.</b></li> <li>Enter values for all fields, as shown in Figure 8, then <b>Finish</b>. <br /><br /><a name="fig8"><b>Figure 8. New server parameters</b></a><br /><img height="329" alt="Figure 8. New server parameters" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure8.jpg" width="498" /><br /><br /></li> </ol> <p> </p> <p> <a name="N10294"> <b>Create a JRE</b> </a> </p> <p>To build application for supported Java Runtime Environment (JRE), in this case the IBM JRE, you need to configure the JRE in Eclipse WTP: </p> <ol> <li>In Eclipse, select <b>Window => Preferences</b>. </li> <li>Select <b>Java => Installed JREs</b>. </li> <li>Click <b>Add. . . </b></li> <li>On the Add JRE dialog, enter values for all fields, as shown in Figure 9. <br /><br /><a name="fig9"><b>Figure 9. Add JRE </b></a><br /><img height="375" alt="Figure 9. Add JRE" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure9.jpg" width="500" /><br /><br /></li> <li>Be sure this JRE is selected as the default JRE. </li> <li>Next, you need to make sure that the IBM JRE will run the new server that you created earlier. Right-click on the new server, then select <b>Open</b> (Figure 10). <br /><br /><a name="fig10"><b>Figure 10. Open new server</b></a><br /><img height="375" alt="Figure 10. Open new server" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure10.jpg" width="500" /><br /><br /></li> <li>Next to Runtime, select <b>Edit</b>. </li> <li>For JRE, select <b>IBM</b> (Figure 11), then <b>Finish.</b><br /><br /><a name="fig11"><b>Figure 11. Select IBM JRE </b></a><br /><img height="375" alt="Figure 11. Select IBM JRE " src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure11.jpg" width="500" /><br /><br /></li> </ol> <p> </p> <p> <a name="N102FB"> <b>Develop an application</b> </a> </p> <p>The Web application will contain pages for the application (in a WAR file) and will be added to an enterprise application (in an EAR file). For the purposes of this tutorial, you can either use an application you develop from scratch, or you can use the sample application included in the download file.</p> <p> <a name="N10305"> <b>Create a new application in Eclipse WTP</b> </a> </p> <ol> <li>Run Eclipse WTP either by double-clicking eclipse.exe from the location where you extracted the WTP platform, or by executing eclipse.exe from a command line. </li> <li>Select <b>File => New => Project => Web =>Dynamic Web Project</b>. </li> <li>On the Dynamic Web Project dialog, enter or select the following values: <ul><li>Project name: <code>SQLRealmWeb</code></li><li>Target runtime: <b>WebSphere Community Edition v1.1</b></li><li>EAR membership: <code>SQLRealmApp</code></li></ul></li> <li>If you need to create a WebSphere Application Server Community Edition V1.1 runtime option (Figure 12): <ol type="a"><li>Click the <b>New</b> button next to Target Runtime. </li><li>Select <b>WebSphere Application Server Community Edition v1.1</b>, then <b>Next</b>. </li><li>Select <b>IBM</b> for JRE, and browse to the appropriate Application Server Install Directory, then click <b>Finish</b>. <br /><br /><a name="fig12"><b>Figure 12. Create Community Edition runtime</b></a><br /><img height="375" alt="Figure 12. Create Community Edition runtime" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure12.jpg" width="500" /><br /><br /></li></ol></li> <li>Click <b>Next</b> on the next two panels. </li> <li>For Context Root, enter <code>/SQLRealmWeb</code>, then <b>Next</b>. </li> <li>Configure the Geronimo deployment plan by entering these values: <ul><li>Group ID: <code>wasce</code></li><li>Artifact ID: <code>sqlrealm</code></li><li>Version: <code>1.0</code></li><li>Artifact Type: WAR </li></ul></li> <li>Click <b>Finish</b> (Figure13). <br /><br /><a name="fig13"><b>Figure 13. Server setup complete</b></a><br /><img height="375" alt="Figure 13. Server setup complete" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure13.jpg" width="500" /><br /><br /></li> </ol> <p> <a name="N103A3"> <b>Import sample application into Eclipse WTP</b> </a> </p> <p>If you choose to import the sample project, the <a ><font color="#5c81a7">download file</font></a> included with this tutorial contains an EAR file you can import into the Eclipse WTP workspace: </p> <ol> <li>In Eclipse, select <b>File => Import => J2EE</b>. </li> <li>For Source File, enter <code>SQLRealmAppSrc</code>.ear, then click <b>Next</b>. </li> <li>Enter or select the following values: <ul><li>EAR Project: <code>SQLRealmApp</code></li><li>Web Project: <code>SQLRealmWeb</code></li><li>Target Runtime: <b>WebSphere Community Edition v1.1</b></li></ul></li> <li>If you need to create a WebSphere Application Server Community Edition V1.1 runtime option (Figure 12): <ol type="a"><li>Click the <b>New</b> button next to Target Runtime. </li><li>Select <b>WebSphere Application Server Community Edition v1.1</b>, then <b>Next</b>. </li><li>Select <b>IBM</b> for JRE, and browse to the appropriate Application Server Install Directory, then click <b>Finish</b>. </li></ol></li> <li>Click <b>Finish</b>. </li> </ol> <p> <span id="cuo8qoo" class="atitle">Deploying the application</span> </p> <a name="deploy"> <p>With the application created, you can deploy it to the Community Edition runtime environment. However, for the application to run, you need a database pool and realm plan:</p> <p> <a name="N10412"> <b>Deploy the database pool</b> </a> </p> <p>To connect to DB2, you need a database pool, which you can create by deploying a database pool plan with the wizard that is available from the Community Edition administrative console: </p> <ol> <li>Logon to the Community Edition administrative console by starting the server. To start the server, right-click on the new server you created above, and select <b>Start</b>. Once the server is started, the status changes to green and shows "Started". You can now launch the console by right-clicking on the started server and selecting <b>Launch Community Edition Console</b>. Enter your username and password as <code>system</code> and <code>manager</code>. </li> <li>Under Services, select <b>Database Pools</b> => <b>Using Geronimo PoolsWizard</b>. </li> <li>For Database Pools, enter <code>Db2Realm</code>, then <b>Next</b>. </li> <li>On the Select Driver, JAR, Parameters panel, enter or select the values shown for all fields in Figure 14. When finished, click <b>Next</b>. <br /><br /><a name="fig14"><b>Figure 14. Enter database pool parameters</b></a><br /><img height="349" alt="Figure 14. Enter database pool parameters" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure14.jpg" width="500" /><br /><br /></li> <li>Test the connection for errors by selecting <b>Test connection</b>. If there are no errors, you will see the message: <code>Test Result: Connected to DB2/NT SQL09000 in the console.</code></li> <li>Once you deploy the pool, it is started and running (Figure 15). <br /><br /><a name="fig15"><b>Figure 15. Database pool deployed</b></a><br /><img height="375" alt="Figure 15. Database pool deployed" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure15.jpg" width="500" /><br /><br /></li> </ol> <p> </p> <p> <a name="N10474"> <b>Deploy the realm plan</b> </a> </p> <p>Community Edition connects to SQL databases using JAAS, by default, to provide an SQL realm to applications deployed in the server. You can make this connection by using a JDBC driver that connects directly to the database, or by using a database pool that gets a connection from a pool to connect to the database.</p> <p>The realm plan (see <a ><font color="#996699">Listings 1</font></a> and <a ><font color="#996699">2</font></a>) is used to deploy an SQL realm that connects to the database. The realm plan contains Geronimo GBeans required to create an SQL realm. The GBean "sql-login" has attributes that you use to specify the realm type, <code>loginModuleClass = org.apache.geronimo.security.realm.providers.SQLLoginModule</code>, and options where you specify the JDBC properties required to connect to the database. You can use this plan to connect to any JDBC database. For this exercise, you can specify either the JDBC driver or the DataSource name to connect to the database.</p> <p> <a name="N1048D"> <b>Using the JDBC driver</b> </a> </p> <p>Listing 1 shows an SQL realm plan that uses the JDBC driver to connect to database. The plan is contained in the download file as sqlplan.xml. In the statements that are bold in Listing 1, replace ADMINISTRATORS with the schema name in which the tables have been created.</p> <p> <br /> <a name="listing1"> <b>Listing 1. SQL realm plan using JDBC driver</b> </a> <br /> </p> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"> <environment> <moduleId> <groupId>db2</groupId> <artifactId>realm</artifactId> <version>1.0</version> <type>car</type> </moduleId> <dependencies> <dependency> <groupId>geronimo</groupId> <artifactId>j2ee-security</artifactId> <version>1.1</version> <type>car</type> </dependency> <dependency> <groupId>console.dbpool</groupId> <artifactId>DB2Realm</artifactId> <version>1.0</version> <type>rar</type> </dependency> </dependencies> <hidden-classes/> <non-overridable-classes/> </environment> <gbean name="sql-login" class="org.apache.geronimo.security.jaas.LoginModuleGBean"> <attribute name="loginModuleClass">org.apache.geronimo. security.realm.providers.SQLLoginModule</attribute> <attribute name="serverSide">true</attribute> <attribute name="options">jdbcUser=db2admin jdbcPassword=db2admin jdbcURL=jdbc:db2:WASCE jdbcDriver=com.ibm.db2.jcc.DB2Driver userSelect=select username, password from ADMINISTRATOR.USERS groupSelect=select groupname, username from ADMINISTRATOR.GROUPS</attribute> <attribute name="loginDomainName">sql-realm</attribute> </gbean> <gbean name="sql-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <attribute name="realmName">sql-realm</attribute> <reference name="LoginModuleConfiguration"> <name>sql-login</name> </reference> <reference name="ServerInfo"> <name>ServerInfo</name> </reference> <!--Add--> <reference name="LoginService"> <name>JaasLoginService</name> </reference> </gbean> <gbean name="sql-login" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse"> <attribute name="controlFlag">REQUIRED</attribute> <reference name="LoginModule"> <name>sql-login</name> </reference> </gbean> <gbean name="sqltest" class="org.apache.geronimo.security.jaas.ServerRealmConfigurationEntry"> <attribute name="applicationConfigName">sqltest</attribute> <attribute name="realmName">sql-realm</attribute> <reference name="LoginService"> <name>JaasLoginService</name> </reference> </gbean> </module></pre> </td> </tr> </tbody> </table> <br /> <p> <a name="N104A4"> <b>Using database pool</b> </a> </p> <p>Listing 2 shows an SQL realm plan that uses a database pool (DB2Realm) that was deployed using the console wizard. The plan is contained in the <a ><font color="#5c81a7">download file</font></a> as sqlpoolplan.xml.</p> <p> <br /> <a name="listing2"> <b>Listing 2. SQL realm plan using database pool</b> </a> <br /> </p> <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td class="code-outline"> <pre class="displaycode"> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"> <environment> <moduleId> <groupId>db2</groupId> <artifactId>pool-realm</artifactId> <version>1.0</version> <type>car</type> </moduleId> <dependencies> <dependency> <groupId>geronimo</groupId> <artifactId>j2ee-security</artifactId> <version>1.1</version> <type>car</type> </dependency> <dependency> <groupId>console.dbpool</groupId> <artifactId>DB2Realm</artifactId> <version>1.0</version> <type>rar</type> </dependency> </dependencies> <hidden-classes/> <non-overridable-classes/> </environment> <gbean name="sqlpool-login" class="org.apache.geronimo.security.jaas.LoginModuleGBean"> <attribute name="loginModuleClass">org.apache.geronimo.security.realm. providers.SQLLoginModule</attribute> <attribute name="serverSide">true</attribute> <attribute name="options"> userSelect=select username, password from ADMINISTRATOR.USERS groupSelect=select groupname, username from ADMINISTRATOR.GROUPS dataSourceName=DB2Realm</attribute> <attribute name="loginDomainName">sqlpool-realm</attribute> </gbean> <gbean name="sqlpool-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <attribute name="realmName">sqlpool-realm</attribute> <reference name="LoginModuleConfiguration"> <name>sqlpool-login</name> </reference> <reference name="ServerInfo"> <name>ServerInfo</name> </reference> <!--Add--> <reference name="LoginService"> <name>JaasLoginService</name> </reference> </gbean> <gbean name="sqlpool-login" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse"> <attribute name="controlFlag">REQUIRED</attribute> <reference name="LoginModule"> <name>sqlpool-login</name> </reference> </gbean> <gbean name="sqlpooltest" class="org.apache.geronimo.security.jaas.ServerRealmConfigurationEntry"> <attribute name="applicationConfigName">sqlpooltest</attribute></pre> </td> </tr> </tbody> </table> <br /> <p> <a name="N104BF"> <b>Deploy the realm</b> </a> </p> <p>You can deploy the realms to the server using the administrative console: </p> <ol> <li>Start the Community Edition server from Eclipse WTP. In Eclipse, select the server you created earlier by right-clicking on the <b>Server</b> tab, then select <b>Start</b> (Figure 16). <br /><br /><a name="fig16"><b>Figure 16. Start server</b></a><br /><img height="375" alt="Figure 16. Start server" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure16.jpg" width="500" /><br /><br /></li> <li>Login to the Community Edition administrative console. </li> <li>Deploy the SQL realm plan that uses JDBC Driver (sqlplan.xml shown in <a ><font color="#996699">Listing 1</font></a>) by selecting <b>Deploy New</b> on the console (Figure 17). <br /><br /><a name="fig17"><b>Figure 17. Deploy database realm</b></a><br /><img height="375" alt="Figure 17. Deploy database realm" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure17.jpg" width="500" /><br /><br /></li> <li>Deploy the SQL database realm plan that uses the database pool (sqlpoolplan.xml shown in Listing 2). </li> <li>Check to see that these two plans are deployed successfully by selecting <b>Systems Modules</b> under Applications in the console (Figure 18). <br /><br /><a name="fig18"><b>Figure 18. Check successful real deployment</b></a><br /><img height="375" alt="Figure 18. Check successful real deployment" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure18.jpg" width="500" /><br /><br /></li> </ol> <p> </p> <p> <a name="N10518"> <b>Deploy the application</b> </a> </p> <p>With the application and server configuration defined in Eclipse, and the database realm deployed, you can now deploy the application to the server. </p> <ol> <li>In Community Edition, select <b>Server</b> tab, right-click on the server you created earlier, and then select <b>Add and Remove Projects</b>. </li> <li>Select the <b>SQLRealmApp</b> from the Available projects list and click Add > to move it over to the Configured projects list (Figure 19). </li> <li>Click <b>Finish</b>. <br /><br /><a name="fig19"><b>Figure 19. Add to configured projects</b></a><br /><img height="374" alt="Figure 19. Add to configured projects" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure19.jpg" width="477" /><br /><br /></li> <li>Start the server. From the <b>Server</b> tab, right-click again on your server and select <b>Start</b>. The application will run on the server you selected. </li> <li>To launch the console for the server, right-click on the Community Edition server, then select <b>Launch Community Edition Console</b>. Enter the login ID and password: <code>system</code> and <code>manager</code>, respectively (Figure 20). <br /><br /><a name="fig20"><b>Figure 20. Launch administrative consoles</b></a><br /><img height="375" alt="Figure 20. Launch administrative console" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure20.jpg" width="500" />聽<br /><p><span id="0si0a0m" class="atitle">Running the application</span></p><a name="runapp"><p>In the prior sections, you created and deployed the Web application to the server from Eclipse WTP. Next, you can use the application, following the instructions in this section to test authentication, authorization, and access to the database pool. The application referred to in this section is the sample application provided in the <a ><font color="#5c81a7">download file</font></a>.</p><p><a name="N10582"><b>Access the application</b></a></p><p>To access the Web application: </p><ol><li>From the Eclipse Navigator, right-click the Web application <b>SQLRealmWeb</b>, then select <b>Run As => Run on Server</b>. </li><li>Select <b>WebSphere Application Server Community Edition 1.1</b>, which is the server you defined earlier. </li><li>The project should already be added. Select <b>Next</b> and <b>Finish</b>. </li><li>The application should now be available at http://localhost:8080/SQLRealmWeb/ (Figure 21). <br /><br /><a name="fig21"><b>Figure 21. Test the application</b></a><br /><img height="375" alt="Figure 21. Test the application" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure21.jpg" width="500" /><br /><br /></li></ol><p></p><p><a name="N105B9"><b>Test the authentication</b></a></p><p>Included with this sample application are several valid user ID and password combinations (for testing authentication) with different roles (for testing authorization). Test the authentication by logging in. Using a correct user ID and password will log you in. An incorrect user ID and password will display the error page shown in Figure 22.</p><p>Valid user ID/password values are as follows:</p><p><code>system/manager<br />admin/admin123<br />user1/user1123<br />user2/user2123<br />guest1/guest1123<br />guest2/guest2123</code></p><br /><a name="fig22"><b>Figure 22. Application error page</b></a><br /><img height="375" alt="Figure 22. Application error page" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure22.jpg" width="500" /><br /><p><a name="N105E6"><b>Test authorization</b></a></p><p>Once authenticated and inside the application, the user is allowed access to areas of Web application based on the user's business role, as defined in the deployment descriptor. The sample application is defined with three roles: admin, user, and guest. A user with an admin role has access to all accounts in the sample application, but a user with a guest role will only be able to access pages defined for the guest. Test this by entering the application with different user IDs and passwords with admin, user, and guest roles. Figure 23 shows a user logged in as admin, but who is able to view the guest pages.</p><br /><a name="fig23"><b>Figure 23. Admin user viewing Guest page</b></a><br /><img height="375" alt="Figure 23. Admin user viewing Guest page" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure23.jpg" width="500" /><br /><p>In the case of unauthorized access (for example, if a guest user attempts to access a page authorized for admin users only), an HTTP 403 status error occurs (Figure 24) and prevents access to the page.</p><br /><a name="fig24"><b>Figure 24. Authorization error</b></a><br /><img height="375" alt="Figure 24. Authorization error" src="https://www6.software.ibm.com/developerworks/education/websphere/0609_balachandar/images/figure24.jpg" width="500" /><br /><p><a name="N10611"><b>Using the database pool</b></a></p><p>The default Web application is configured to use SQL realm that uses the JDBC driver. You can change this so that it uses the database pool by changing the realm name in the geronimo-web.xml file as <code><security-realm-name>sqlpool-realm</security-realm-name></code>, and republishing the server. Verify if this works by stopping the db2/realm/1.0/car configuration in the server.</p><p><a name="N1061F"><b>Contents of the download file</b></a></p><p>The download file included with this tutorial, <a ><font color="#5c81a7">sample-db2-realm.zip</font></a>, contains the following files: </p><ul><li>db2-realm.sql - SQL script file to create database and tables </li><li>db2-plan.xml - Plan to deploy a DB2 database pool. </li><li>sqlplan.xml - SQL realm plan that uses JDBC driver. </li><li>sqlpoolplan.xml - SQL realm plan that uses a database pool. </li><li>SQLRealmAppSrc.ear - Source for sample Web application. </li></ul></a></li> </ol> </a> </a> </a><img src ="http://www.tkk7.com/mlh123caoer/aggbug/93407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mlh123caoer/" target="_blank">鑽夊効</a> 2007-01-12 13:37 <a href="http://www.tkk7.com/mlh123caoer/archive/2007/01/12/93407.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://wwwhaole10.com" target="_blank">免费黄色app网站</a>| <a href="http://6217c.com" target="_blank">国产美女精品视频免费观看</a>| <a href="http://918989b.com" target="_blank">亚洲国产成人久久</a>| <a href="http://conghui8.com" target="_blank">亚洲人成影院在线观看</a>| <a href="http://directzx.com" target="_blank">国产精品亚洲w码日韩中文</a>| <a href="http://79909d.com" target="_blank">av无码久久久久不卡免费网站 </a>| <a href="http://moushengguigz.com" target="_blank">亚洲色偷偷综合亚洲av78</a>| <a href="http://gz-shunan.com" target="_blank">亚洲女久久久噜噜噜熟女</a>| <a href="http://sdyzzs.com" target="_blank">日本无卡码免费一区二区三区</a>| <a href="http://828556.com" target="_blank">巨胸喷奶水视频www免费视频</a>| <a href="http://ywgj50225.com" target="_blank">成年女人色毛片免费看</a>| <a href="http://youtobey.com" target="_blank">99国产精品视频免费观看</a>| <a href="http://sjzbosite.com" target="_blank">全部一级一级毛片免费看</a>| <a href="http://ydysmedia.com" target="_blank">亚洲日韩一中文字暮</a>| <a href="http://zhidianzh.com" target="_blank">情侣视频精品免费的国产</a>| <a href="http://www66913.com" target="_blank">一个人免费高清在线观看 </a>| <a href="http://1178767.com" target="_blank">亚洲精品网站在线观看不卡无广告</a>| <a href="http://yy1514.com" target="_blank">日韩中文字幕精品免费一区</a>| <a href="http://k96d.com" target="_blank">免费观看91视频</a>| <a href="http://socgl.com" target="_blank">曰批视频免费40分钟试看天天</a>| <a href="http://xiaochidaquan.com" target="_blank">国产精品玖玖美女张开腿让男人桶爽免费看 </a>| <a href="http://www-84243.com" target="_blank">亚洲AV无码一区二区三区人</a>| <a href="http://lswqn.com" target="_blank">久久亚洲日韩看片无码</a>| <a href="http://wwwk47.com" target="_blank">午夜a级成人免费毛片</a>| <a href="http://902578.com" target="_blank">成年在线观看免费人视频草莓</a>| <a href="http://35469642.com" target="_blank">久久WWW色情成人免费观看</a>| <a href="http://ningxialanh.com" target="_blank">99久久综合国产精品免费</a>| <a href="http://www91v.com" target="_blank">噼里啪啦电影在线观看免费高清</a>| <a href="http://717795.com" target="_blank">久久久久久免费视频</a>| <a href="http://senimei9.com" target="_blank">国内外成人免费视频</a>| <a href="http://05942688.com" target="_blank">亚洲无码日韩精品第一页</a>| <a href="http://6006284.com" target="_blank">亚洲人成人一区二区三区</a>| <a href="http://nh-car.com" target="_blank">亚洲酒色1314狠狠做</a>| <a href="http://4001120002.com" target="_blank">亚洲国产精品综合一区在线</a>| <a href="http://bii59.com" target="_blank">亚洲av永久无码一区二区三区</a>| <a href="http://scbangde.com" target="_blank">美女被暴羞羞免费视频</a>| <a href="http://tedegold.com" target="_blank">最近国语视频在线观看免费播放 </a>| <a href="http://www-840012.com" target="_blank">精品久久香蕉国产线看观看亚洲</a>| <a href="http://12345ww.com" target="_blank">毛片基地免费观看</a>| <a href="http://yuase.com" target="_blank">亚洲色欲久久久综合网</a>| <a href="http://weisuoshu.com" target="_blank">亚洲韩国在线一卡二卡</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>