锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久综合久久综合亚洲,国产亚洲sss在线播放,欧洲亚洲国产清在高http://m.tkk7.com/zqc/archive/2006/06/04/50308.html楦熶笉鐢熻泲铔嬬殑鍦版柟楦熶笉鐢熻泲铔嬬殑鍦版柟Sun, 04 Jun 2006 10:53:00 GMThttp://m.tkk7.com/zqc/archive/2006/06/04/50308.htmlhttp://m.tkk7.com/zqc/comments/50308.htmlhttp://m.tkk7.com/zqc/archive/2006/06/04/50308.html#Feedback0http://m.tkk7.com/zqc/comments/commentRss/50308.htmlhttp://m.tkk7.com/zqc/services/trackbacks/50308.html寰堝ソ鐨勪竴綃囨枃绔狅紝娣卞叆璇翠簡(jiǎn)寰堝鍏充簬嫻嬭瘯鐨勪笢瑗褲?br />
A article from Technoetic
- Posted in
Software Dev., Agile by Steve Bate

I recently read a blog entry with criticisms of mock-based testing. The author raised several 鈥渋ssues鈥?with using mocks to support unit testing. I鈥檓 commenting here since the author has closed comments on the original blog entry.

Issue 1: Poor integration tests, as everything is being tested in isolation

I鈥檝e had good experience with mock-based testing. However, it鈥檚 obvious that mocks will only test classes in isolation. I use both unit tests and integration tests (sometimes called system or acceptance tests) together. The need for integration tests is not an issue for mock-based techniques and is not a good reason to use less mocks. It鈥檚 just a different aspect of testing. A more common issue in my experience is that people in the agile community who are new to testing often don鈥檛 understand these different aspects of testing and seem to believe that mock-based unit testing and integration testing are mutually exclusive options. The lack of common terminology in the community only worsens the problem. For some people, a 鈥渦nit鈥?is a class or small group of tightly coupled classes. For others, it鈥檚 a large portion of the software product. Most agile developers seem to call every test they write a unit test. It鈥檚 become so confusing for some teams that I鈥檝e seen terminology like 鈥渋ntegration unit tests鈥?being used to describe testing strategies.

But, back to the topic. Poor integration testing is simply the result of lack of integration tests. Mocks do not cause a lack of integration tests. A team makes that choice, probably based on a weak understanding of the tradeoffs between isolation (unit) and integration (system) testing.

Issue 2: Mocks add complexity to the software design.

鈥淚鈥檝e seen numerous occasions where the introduction of mocks has added a large amount of complexity to an otherwise simple design. This complexity leads to higher implementation costs, a higher cognitive load on the developers working on the system, and higher maintenance costs (as there鈥檚 more code to maintain). 鈥?/p>

The author appears to focused on the increased use of interfaces when using mock-based testing and expresses the opinion that interfaces should only be used where we鈥檇 want to be able to replace one implementation with another. First, there are other reasons to use interfaces. In general, interfaces are useful for managing dependencies between software components or subsystems. This can be beneficial even if the implementations do not change (see The Dependency Inversion Principle).

A modular software design will generally make it easier to use mock-based testing without altering the design specifically for the mocks. However, there are times when the software must be modified to support testing. Fortunately, the changes needed to support testing often, if done well, support the modularity goal.

In my experience, extra interfaces don鈥檛 add a significant maintenance overhead. Most effort is spent implementing the interface. The time writing the interface itself (or extracting it using an IDE鈥檚 refactoring tools) is negligible.

My Conclusions

In almost every case, I see the 鈥渟implicity鈥?gained by not using mocks overshadowed by complex test setups to initialize large groups of dependent objects. The dark side of integration testing is that it鈥檚 often very slow for large numbers of tests. Some teams are using continuous integration tools like Cruise Control to run their 鈥渦nit tests鈥?(usually they are actually integration tests). This delays the feedback about broken builds but is often necessary because the tests run so slow. I realize there other reasons for using CC, but this is a common one from what I鈥檝e seen and heard.

I鈥檝e worked on teams where we had thousands of tests that ran in less than 15-20 seconds total on a developer workstation. This was a direct result of heavy use of mock-based testing. We also had a slower suite of integration tests that required 4-5 minutes to run. We didn鈥檛 need a continuous integration server because we were able to integrate and run our unit tests before every commit to the source control system. The team integrated 10-20 times/day and broken builds were practically nonexistent over the several years I worked with them. In the very rare cases when the build did break, it was typically fixed in a matter of minutes.

The other benefit of the isolation testing enabled by mocks is the ability to pinpoint problems much more quickly. It鈥檚 a form of the divide and conquer problem solving strategy, only the divide part is already done. The conquering is relatively easy compared to tracking down the cause of test failures when many classes are being exercised in a test.

My experience was that our mock based unit tests caught about 98% of the code problems before the code was ever committed to source control. The integration tests caught about another 1% beyond that (almost always because of a flaw in the mock-based testing) and manual testing caught the other 1%.



楦熶笉鐢熻泲铔嬬殑鍦版柟 2006-06-04 18:53 鍙戣〃璇勮
]]>
鐢╡ditplus+ant 寤虹珛綆鍗曞ソ鐢ㄧ殑宸ヤ綔鐜璇︾粏姝ラhttp://m.tkk7.com/zqc/archive/2005/09/13/EditplusAndAnt.html楦熶笉鐢熻泲铔嬬殑鍦版柟楦熶笉鐢熻泲铔嬬殑鍦版柟Tue, 13 Sep 2005 15:25:00 GMThttp://m.tkk7.com/zqc/archive/2005/09/13/EditplusAndAnt.htmlhttp://m.tkk7.com/zqc/comments/12945.htmlhttp://m.tkk7.com/zqc/archive/2005/09/13/EditplusAndAnt.html#Feedback0http://m.tkk7.com/zqc/comments/commentRss/12945.htmlhttp://m.tkk7.com/zqc/services/trackbacks/12945.html鐢?/FONT>浜?jiǎn)閭h澶氬己澶т笓涓氱殑IDE錛屼篃鎹㈡崲鑳冨彛錛岃嚜宸卞姩鎵嬮厤涓涓畝鍗曠偣鐨勭幆澧儈
editplus澶у閮藉緢鐔熷暒錛屽氨鐢ㄥ畠浜?UE涔熻錛岋紝涓嶈繃澶у浜?~

鍋囪閰嶇疆涓涓猈ebapp鐨勫紑鍙戠幆澧?

涓嬭澆editplus,瑙e帇緙┿佸畨瑁呭埌鏌愮洰褰曘?BR>寤虹珛Webapp鐨勯儴緗茬洰褰?濡備笅鍥撅細(xì)
Snap1.jpg
涓嬭澆ant,瑙e帇緙?璁劇疆鐜鍙橀噺ant_home鎸囧悜鍒氭墠瑙e帇緙╃殑鐩綍,
鏉ュ埌欏圭洰鐩綍/src涓?鏂板緩涓涓枃鏈枃浠?鍔犲叆浠ヤ笅緙栬瘧鍐呭

<project name="StrutsExample" default="complie" basedir=".">
  
<property name="src" location="."/>
  
<property name="dest" location=".."/>
  
  

  
<path id="compile.classpath">
        
<pathelement path ="${dest}/WEB-INF/lib/commons-beanutils.jar"/>
        
<pathelement path ="${dest}/WEB-INF/lib/commons-digester.jar"/>
    
<pathelement path ="D:/jakarta-tomcat-4.1.30/common/lib/servlet.jar"/>
        
<pathelement path ="${dest}/WEB-INF/lib/struts.jar"/>
    
<pathelement path ="${dest}/WEB-INF/lib/sovo-db.jar"/>
        
<pathelement path ="classes"/>
    
path>


  
<target name="init">
    
<mkdir dir="${dest}/WEB-INF/classes"/>
    
<mkdir dir="${dest}/WEB-INF/lib"/>
  
target>
  

   
<target name="complie" depends="init">
      
<javac srcdir="${src}" destdir="${dest}/WEB-INF/classes">
       
<classpath refid="compile.classpath"/>
      
javac>   
   
target>

project>


鍏蜂綋灝變笉瑙i噴浜?jiǎn)锛屼笉鏄庣櫧鐨劄鏌ヨ祫鏂欑湅鐪媬
鎶婃枃浠舵敼鍚嶄負(fù)build.xml

鍦ㄥ悓涓鐩綍涓?寤虹珛涓涓猰ake.bat鏂囦歡,鐢ㄨ浜嬫湰鎵撳紑錛屽姞鍏?BR>%ant_home%/bin/ant

浠ヤ笂緙栬瘧鐨勫噯澶囧伐浣滃凡緇忓畬鎴愶紝涓嬮潰灝辨妸瀹冧滑闆嗘垚鍒癳ditplus涓幓:

1銆佹坊鍔犳柊鐨勫閮ㄥ懡浠よ鎵ц紼嬪簭
鎵撳紑editplus(搴熻瘽),鐐?BR>'Tools' -> 'Configure User Tools'... ->Add Tool(鎸夐挳)->Program
濉笅闈㈢殑鍙傛暟:

Menu text:闅忎究浠涔堬紝姣斿 "緙栬瘧鏁翠釜宸ョ▼"
Command:鐐瑰悗闈㈢殑'...'鎸夐挳錛岄夋嫨鍒氭墠鐨刴ake.bat
Argument:鍙傛暟,鐣欑┖灝辮
Initial directory:璧峰鐩綍錛屼竴鑸槸褰撳墠鐩綍銆傜偣鍚庨潰鐨勬寜閽?閫?file directory'灝辮銆?/P>

涓嬮潰鎶奀apture output 鎵撲笂鍕撅紝浠ユ崟鎹塧nt緙栬瘧榪囩▼鐨勮緭鍑?
鐐規(guī)梺杈圭殑'Output Pattern',鍘繪帀'Use default output pattern'鐨勫嬀,鐐逛笅闈㈢殑涓嬩笁瑙掓寜閽?閫?java/gcc"
榪欐牱灝辮兘鍦ㄨ緭鍑烘姤閿欐椂錛屽弻鍑?yán)L湁琛屽彿鎻愮ず鐨勫湴鏂癸紝欏甸潰灝變細(xì)鐩存帴璺寵漿鍒板嚭閿欒銆?/P>

鎸変笅闈㈢殑甯︾豢鍕劇殑OK鎸夐挳灝卞畬鎴愪簡(jiǎn)錛屽垰鎵嶉厤緗殑宸ュ叿灝卞嚭鐜板湪Tools鑿滃崟鐨勬渶搴曢儴浜?jiǎn)銆?/P>

鐜板湪鐢╡ditplus鍦╯rc鐩綍涓嬮殢渚垮緩涓簮鏂囦歡錛岀劧鍚庤繍琛屽垰鎵嶈緗殑宸ュ叿,OK錛屽ぇ鍔熷憡鎴?
no more jb,no more Eclipse,no more netbeans,no more idea,hahaha......

鍙︼細(xì)鎶奣ools - > Preference - > General  -> Reload working file on startup 鎵撲笂鍕撅紝鍙互鐪佸幓寰堝鎵撳紑鍏抽棴鏂囦歡鐨勬椂闂淬?BR>
灝辮繖鏍蜂簡(jiǎn)錛岀澶у鐢ㄥ緱寮蹇?jī)锛屽Q岃繕鏈夛紝editplus鍙湁30d鐨勫叡浜増鍝︼紝鍢垮樋銆傘傘?/P>

]]>
綾諱技qq鐨勬眽瀛楁嫾闊抽瀛楁煡璇?/title><link>http://m.tkk7.com/zqc/archive/2005/08/08/hanzi.html</link><dc:creator>楦熶笉鐢熻泲铔嬬殑鍦版柟</dc:creator><author>楦熶笉鐢熻泲铔嬬殑鍦版柟</author><pubDate>Sun, 07 Aug 2005 16:59:00 GMT</pubDate><guid>http://m.tkk7.com/zqc/archive/2005/08/08/hanzi.html</guid><wfw:comment>http://m.tkk7.com/zqc/comments/9536.html</wfw:comment><comments>http://m.tkk7.com/zqc/archive/2005/08/08/hanzi.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/zqc/comments/commentRss/9536.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zqc/services/trackbacks/9536.html</trackback:ping><description><![CDATA[欏圭洰閲岃鐢ㄥ埌榪欎釜鍔熻兘錛岃嚜宸辮竟鐞㈢(杈規(guī)壘璧勬枡錛屽紕鍑轟竴涓猟emo錛屽ぇ姒傛濊礬鏄繖鏍鳳細(xì)鐢≒roperties鐨刲oad()鏉ュ姞杞戒竴涓浐<A href="http://m.tkk7.com/Files/zqc/pyutf.zip">瀹氭牸寮忕殑鏂囨湰鏂囦歡</A><SUP><A href="#ps1">娉?</A></SUP>錛岀劧鍚庣洿鎺ュ綋Hashtable鐢ㄣ?BR> <DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"> <DIV><IMG src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">package org.navyblue.tests;<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align=top>import java.util.</SPAN><SPAN style="COLOR: #000000">*</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align=top><BR><IMG id=Codehighlighter1_50_104_Open_Image onclick="this.style.display='none'; Codehighlighter1_50_104_Open_Text.style.display='none'; Codehighlighter1_50_104_Closed_Image.style.display='inline'; Codehighlighter1_50_104_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_50_104_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_50_104_Closed_Text.style.display='none'; Codehighlighter1_50_104_Open_Image.style.display='inline'; Codehighlighter1_50_104_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_50_104_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</SPAN><SPAN id=Codehighlighter1_50_104_Open_Text><SPAN style="COLOR: #008000">/*</SPAN><SPAN style="COLOR: #008000">*<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top> *<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top> * 綾諱技qq鐨勬眽瀛楁嫾闊抽瀛楁煡璇㈡柟娉?BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top> * by zqc 2005-08-04<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top> *<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top> **</SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000"> pyTest<BR><IMG id=Codehighlighter1_126_1067_Open_Image onclick="this.style.display='none'; Codehighlighter1_126_1067_Open_Text.style.display='none'; Codehighlighter1_126_1067_Closed_Image.style.display='inline'; Codehighlighter1_126_1067_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_126_1067_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_126_1067_Closed_Text.style.display='none'; Codehighlighter1_126_1067_Open_Image.style.display='inline'; Codehighlighter1_126_1067_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_126_1067_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_126_1067_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_144_145_Open_Image onclick="this.style.display='none'; Codehighlighter1_144_145_Open_Text.style.display='none'; Codehighlighter1_144_145_Closed_Image.style.display='inline'; Codehighlighter1_144_145_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_144_145_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_144_145_Closed_Text.style.display='none'; Codehighlighter1_144_145_Open_Image.style.display='inline'; Codehighlighter1_144_145_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> pyTest()</SPAN><SPAN id=Codehighlighter1_144_145_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_144_145_Open_Text><SPAN style="COLOR: #000000">{}</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>    <BR><IMG id=Codehighlighter1_204_1065_Open_Image onclick="this.style.display='none'; Codehighlighter1_204_1065_Open_Text.style.display='none'; Codehighlighter1_204_1065_Closed_Image.style.display='inline'; Codehighlighter1_204_1065_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_204_1065_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_204_1065_Closed_Text.style.display='none'; Codehighlighter1_204_1065_Open_Image.style.display='inline'; Codehighlighter1_204_1065_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000"> main(String[] args)throws Exception</SPAN><SPAN id=Codehighlighter1_204_1065_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_204_1065_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        Properties pyMap </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Properties();<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">鎷奸煶闅愬皠琛?/SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">        pyMap.load(</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> java.io.FileInputStream(</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">pyutf.txt</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">));<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">嫻嬭瘯瀛楃</SPAN><SPAN style="COLOR: #008000"><BR><IMG id=Codehighlighter1_341_372_Open_Image onclick="this.style.display='none'; Codehighlighter1_341_372_Open_Text.style.display='none'; Codehighlighter1_341_372_Closed_Image.style.display='inline'; Codehighlighter1_341_372_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_341_372_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_341_372_Closed_Text.style.display='none'; Codehighlighter1_341_372_Open_Image.style.display='inline'; Codehighlighter1_341_372_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">        String[] testStr </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN id=Codehighlighter1_341_372_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_341_372_Open_Text><SPAN style="COLOR: #000000">{</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">鎴戜滑</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">闃垮搱</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">鍢庡槑</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">騫蹭粈涔?/SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">閮戞櫞宸?/SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">,</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">璋?/SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">}</SPAN></SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">妯℃嫙杈撳叆</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">        String input </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">g</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">;<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        <BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        System.</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000">.println (</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">杈撳叆鏌ヨ瀛楃:g</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">);<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        Vector inis </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Vector();<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        Vector results </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Vector();<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        Vector results2 </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> Vector();<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        <BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">榪斿洖鎵鏈夋祴璇曞瓧絎︿覆鐨勯瀛楃殑鎵撳ご鎷奸煶</SPAN><SPAN style="COLOR: #008000"><BR><IMG id=Codehighlighter1_640_825_Open_Image onclick="this.style.display='none'; Codehighlighter1_640_825_Open_Text.style.display='none'; Codehighlighter1_640_825_Closed_Image.style.display='inline'; Codehighlighter1_640_825_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_640_825_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_640_825_Closed_Text.style.display='none'; Codehighlighter1_640_825_Open_Image.style.display='inline'; Codehighlighter1_640_825_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">        </SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">( </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> i </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"> ; i </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> testStr.length ; i</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000"> )</SPAN><SPAN id=Codehighlighter1_640_825_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_640_825_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG id=Codehighlighter1_686_708_Open_Image onclick="this.style.display='none'; Codehighlighter1_686_708_Open_Text.style.display='none'; Codehighlighter1_686_708_Closed_Image.style.display='inline'; Codehighlighter1_686_708_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_686_708_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_686_708_Closed_Text.style.display='none'; Codehighlighter1_686_708_Open_Image.style.display='inline'; Codehighlighter1_686_708_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>            String ini </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> String( </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">[] </SPAN><SPAN id=Codehighlighter1_686_708_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_686_708_Open_Text><SPAN style="COLOR: #000000">{ testStr[i].charAt(</SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000">)}</SPAN></SPAN><SPAN style="COLOR: #000000"> );<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>            String k </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> (String)pyMap.</SPAN><SPAN style="COLOR: #0000ff">get</SPAN><SPAN style="COLOR: #000000">(ini);<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>            results.add(k);<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>            results2.add(testStr[i]);<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        <BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000">杈撳嚭緇撴灉</SPAN><SPAN style="COLOR: #008000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000">        </SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> l </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> results.size();<BR><IMG id=Codehighlighter1_919_1062_Open_Image onclick="this.style.display='none'; Codehighlighter1_919_1062_Open_Text.style.display='none'; Codehighlighter1_919_1062_Closed_Image.style.display='inline'; Codehighlighter1_919_1062_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_919_1062_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_919_1062_Closed_Text.style.display='none'; Codehighlighter1_919_1062_Open_Image.style.display='inline'; Codehighlighter1_919_1062_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </SPAN><SPAN style="COLOR: #0000ff">for</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000"> i </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #000000">0</SPAN><SPAN style="COLOR: #000000"> ; i </SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000"> l ; i</SPAN><SPAN style="COLOR: #000000">++</SPAN><SPAN style="COLOR: #000000">)</SPAN><SPAN id=Codehighlighter1_919_1062_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_919_1062_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>            String c </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> (String)results.</SPAN><SPAN style="COLOR: #0000ff">get</SPAN><SPAN style="COLOR: #000000">(i);<BR><IMG id=Codehighlighter1_993_1052_Open_Image onclick="this.style.display='none'; Codehighlighter1_993_1052_Open_Text.style.display='none'; Codehighlighter1_993_1052_Closed_Image.style.display='inline'; Codehighlighter1_993_1052_Closed_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_993_1052_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_993_1052_Closed_Text.style.display='none'; Codehighlighter1_993_1052_Open_Image.style.display='inline'; Codehighlighter1_993_1052_Open_Text.style.display='inline';" src="http://m.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000">(c.equals(input))</SPAN><SPAN id=Codehighlighter1_993_1052_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://m.tkk7.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_993_1052_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/InBlock.gif" align=top>                System.</SPAN><SPAN style="COLOR: #0000ff">out</SPAN><SPAN style="COLOR: #000000">.println (results2.</SPAN><SPAN style="COLOR: #0000ff">get</SPAN><SPAN style="COLOR: #000000">(i));<BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://m.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV></DIV><BR><BR><A name=ps1>----</A><BR>娉?:榪欎釜鏄犲皠鏂囦歡緋葷綉涓婃壘鏉ョ殑錛屽ぇ綰︽湁14K鐨勬眽瀛楅噺錛屼竴鑸篃澶熺敤浜?jiǎn)~鐢ㄦ枃鏈伐鍏峰鍘熷厛鐨勬牸寮忓仛浜?jiǎn)浜涗慨鏀逛娇瀹兘W﹀悎Properties鐨勬牸寮忥紝鐒跺悗鍐嶇敤native2ascii杞垚utf-8緙栫爜銆?BR><BR><BR><BR>2005騫?鏈?鏃?0:48:54<BR><img src ="http://m.tkk7.com/zqc/aggbug/9536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zqc/" target="_blank">楦熶笉鐢熻泲铔嬬殑鍦版柟</a> 2005-08-08 00:59 <a href="http://m.tkk7.com/zqc/archive/2005/08/08/hanzi.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://cn-zggx.com" target="_blank">1000部啪啪未满十八勿入免费</a>| <a href="http://pchbgs.com" target="_blank">亚洲一区二区三区首页</a>| <a href="http://wwwseselu.com" target="_blank">国产精品免费精品自在线观看</a>| <a href="http://meyume.com" target="_blank">成人免费视频网站www</a>| <a href="http://anyliz.com" target="_blank">亚洲人成网www</a>| <a href="http://www-741.com" target="_blank">亚洲综合色丁香婷婷六月图片</a>| <a href="http://3hc88.com" target="_blank">亚洲Av永久无码精品一区二区</a>| <a href="http://sanyoumiaomu.com" target="_blank">污视频网站免费在线观看</a>| <a href="http://dingdingduo.com" target="_blank">中文字幕高清免费不卡视频</a>| <a href="http://mmm19.com" target="_blank">精品无码国产污污污免费网站</a>| <a href="http://hbtelong.com" target="_blank">夭天干天天做天天免费看</a>| <a href="http://sese3366.com" target="_blank">亚洲人成色77777在线观看大</a>| <a href="http://zhuanjiao521.com" target="_blank">国产亚洲精品看片在线观看 </a>| <a href="http://qmoread.com" target="_blank">中文字幕在线成人免费看</a>| <a href="http://shandonghj.com" target="_blank">免费一级做a爰片久久毛片潮喷</a>| <a href="http://caopropp.com" target="_blank">日韩亚洲欧洲在线com91tv</a>| <a href="http://bogygames.com" target="_blank">日本亚洲免费无线码 </a>| <a href="http://imfever.com" target="_blank">久久久久亚洲AV成人无码</a>| <a href="http://www961dd.com" target="_blank">亚洲丁香婷婷综合久久</a>| <a href="http://jybelt.com" target="_blank">色欲A∨无码蜜臀AV免费播 </a>| <a href="http://fangdazd.com" target="_blank">亚洲福利在线播放</a>| <a href="http://5gz0z.com" target="_blank">亚洲天堂电影在线观看</a>| <a href="http://av-fantasy.com" target="_blank">免费的黄色的网站</a>| <a href="http://cqshangshu.com" target="_blank">久久久久亚洲av毛片大</a>| <a href="http://www-5453.com" target="_blank">三上悠亚电影全集免费</a>| <a href="http://mmstom.com" target="_blank">亚洲AV成人片色在线观看</a>| <a href="http://www24ckck.com" target="_blank">国产a视频精品免费观看</a>| <a href="http://zgbeian.com" target="_blank">国产日韩亚洲大尺度高清</a>| <a href="http://78avai.com" target="_blank">亚洲精品国产av成拍色拍</a>| <a href="http://8884493.com" target="_blank">免费一级毛片在线播放不收费</a>| <a href="http://wwwayx2026.com" target="_blank">午夜在线免费视频 </a>| <a href="http://bj-tkld.com" target="_blank">在线不卡免费视频</a>| <a href="http://wwwbi757.com" target="_blank">九九九精品视频免费</a>| <a href="http://52ku6.com" target="_blank">无码一区二区三区免费视频 </a>| <a href="http://33dh2.com" target="_blank">阿v视频免费在线观看</a>| <a href="http://znboxcdn107.com" target="_blank">日韩吃奶摸下AA片免费观看</a>| <a href="http://www-282555.com" target="_blank">欧美激情综合亚洲一二区</a>| <a href="http://znboxcdn107.com" target="_blank">久久精品国产亚洲AV不卡</a>| <a href="http://qestest.com" target="_blank">无码精品人妻一区二区三区免费看 </a>| <a href="http://szzrjk.com" target="_blank">久久久久亚洲AV无码去区首</a>| <a href="http://www-959kj.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>