﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java宅男-随笔分类-java基础与算法</title><link>http://www.blogjava.net/chenglu/category/34142.html</link><description>IT fans,Java Programmer,Your partner......</description><language>zh-cn</language><lastBuildDate>Sun, 27 Jun 2010 05:21:14 GMT</lastBuildDate><pubDate>Sun, 27 Jun 2010 05:21:14 GMT</pubDate><ttl>60</ttl><item><title>键盘输入10个整数，冒泡排序并输出结果到文件</title><link>http://www.blogjava.net/chenglu/archive/2010/06/26/SortTest.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 26 Jun 2010 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2010/06/26/SortTest.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/324541.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2010/06/26/SortTest.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/324541.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/324541.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Scanner;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SortTest&nbsp;{<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException&nbsp;{<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">临时变量，用于冒泡交换&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[]&nbsp;num</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[</span><span style="color: #000000">10</span><span style="color: #000000">];&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">声明一个空的数组&nbsp;&nbsp;10个长度</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanner&nbsp;sc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Scanner(System.in);<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;out</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(</span><span style="color: #000000">"</span><span style="color: #000000">1.txt</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintStream&nbsp;p</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PrintStream(out);<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">开始循环赋值</span><span style="color: #008000"><br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">num.length;i</span><span style="color: #000000">++</span><span style="color: #000000">){<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num[i]</span><span style="color: #000000">=</span><span style="color: #000000">sc.nextInt();<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.append(</span><span style="color: #000000">"</span><span style="color: #000000">排序前为:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">num.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(num[i]);<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.append(num[i]</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用于排序</span><span style="color: #008000"><br />
</span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;num.length</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
</span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;num.length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
</span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(num[j]&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;num[j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">])&nbsp;{<br />
</span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;num[j];<br />
</span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num[j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;num[j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
</span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num[j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temp;<br />
</span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输出文件</span><span style="color: #008000"><br />
</span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.append(</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.append(</span><span style="color: #000000">"</span><span style="color: #000000">排序后为:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;循环输出</span><span style="color: #008000"><br />
</span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">排序后为:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">num.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />
</span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(num[i]);<br />
</span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p.append(num[i]</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">}</span></div>
最后应该把p给close了哈<img src ="http://www.blogjava.net/chenglu/aggbug/324541.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2010-06-26 09:02 <a href="http://www.blogjava.net/chenglu/archive/2010/06/26/SortTest.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse6.0注册机源代码</title><link>http://www.blogjava.net/chenglu/archive/2010/06/19/MyEclipse6_cracker.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 19 Jun 2010 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2010/06/19/MyEclipse6_cracker.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/323884.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2010/06/19/MyEclipse6_cracker.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/323884.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/323884.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;myeclipsegen;<br />
<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<br />
</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MyEclipseGen&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;LL&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Decompiling&nbsp;this&nbsp;copyrighted&nbsp;software&nbsp;is&nbsp;a&nbsp;violation&nbsp;of&nbsp;both&nbsp;your&nbsp;license&nbsp;agreement&nbsp;and&nbsp;the&nbsp;Digital&nbsp;Millenium&nbsp;Copyright&nbsp;Act&nbsp;of&nbsp;1998&nbsp;(http://www.loc.gov/copyright/legislation/dmca.pdf).&nbsp;Under&nbsp;section&nbsp;1204&nbsp;of&nbsp;the&nbsp;DMCA,&nbsp;penalties&nbsp;range&nbsp;up&nbsp;to&nbsp;a&nbsp;$500,000&nbsp;fine&nbsp;or&nbsp;up&nbsp;to&nbsp;five&nbsp;years&nbsp;imprisonment&nbsp;for&nbsp;a&nbsp;first&nbsp;offense.&nbsp;Think&nbsp;about&nbsp;it;&nbsp;pay&nbsp;for&nbsp;a&nbsp;license,&nbsp;avoid&nbsp;prosecution,&nbsp;and&nbsp;feel&nbsp;better&nbsp;about&nbsp;yourself.</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getSerial(String&nbsp;userId,&nbsp;String&nbsp;licenseNum)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.util.Calendar&nbsp;cal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;java.util.Calendar.getInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cal.add(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cal.add(</span><span style="color: #000000">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.text.NumberFormat&nbsp;nf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.text.DecimalFormat(</span><span style="color: #000000">"</span><span style="color: #000000">000</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;licenseNum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;nf.format(Integer.valueOf(licenseNum));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;verTime&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(</span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">).append(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.text.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyMMdd</span><span style="color: #000000">"</span><span style="color: #000000">).format(cal.getTime())).append(</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">YE3MP-</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;need&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(userId.substring(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">)).append(type).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;append(</span><span style="color: #000000">"</span><span style="color: #000000">300</span><span style="color: #000000">"</span><span style="color: #000000">).append(licenseNum).append(verTime).toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;dx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(need).append(LL).append(userId).toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;suf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.decode(dx);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;code&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuilder(need).append(String.valueOf(suf)).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.change(code);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;decode(String&nbsp;s)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;ac;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;k;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.toCharArray();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ac.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;k)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">31</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;i)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;ac[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;Math.abs(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;change(String&nbsp;s)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;abyte0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;ac;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;k;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abyte0&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.getBytes();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[s.length()];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;abyte0.length;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;k)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;abyte0[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((j&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">48</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">57</span><span style="color: #000000">))&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(((j&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">48</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">48</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((j&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">65</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">90</span><span style="color: #000000">))&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(((j&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">65</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">13</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">26</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">65</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((j&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">97</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(j&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">122</span><span style="color: #000000">))&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(((j&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">97</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">13</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">26</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">97</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">char</span><span style="color: #000000">)&nbsp;j;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;String.valueOf(ac);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;MyEclipseGen()&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">please&nbsp;input&nbsp;register&nbsp;name:</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;reader&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InputStreamReader(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.in));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;userId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;reader.readLine();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyEclipseGen&nbsp;myeclipsegen&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MyEclipseGen();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myeclipsegen.getSerial(userId,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">20</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Serial:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;res);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.readLine();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IOException&nbsp;ex)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
点此下载源文件和编译好的class文件吧<br />
<a href="/Files/chenglu/MyEclipse61Gen.zip">/Files/chenglu/MyEclipse61Gen.zip</a><br />
额，还有，MyEclipse6的下载地址是：请使用迅雷下载。。<a href="http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe">http://downloads.myeclipseide.com/downloads/products/eworkbench/6.0.1GA/MyEclipse_6.0.1GA_E3.3.1_FullStackInstaller.exe</a><img src ="http://www.blogjava.net/chenglu/aggbug/323884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2010-06-19 22:09 <a href="http://www.blogjava.net/chenglu/archive/2010/06/19/MyEclipse6_cracker.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>option select值获取小计</title><link>http://www.blogjava.net/chenglu/archive/2010/06/17/option_jsp.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Wed, 16 Jun 2010 23:12:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2010/06/17/option_jsp.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/323677.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2010/06/17/option_jsp.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/323677.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/323677.html</trackback:ping><description><![CDATA[先来看html代码<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">label</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">选择分类</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">label</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">select&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="classId"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">option&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">企业动态</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">option&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">最新活动</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">select</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span></div>
在纯struts2中获取用户选择值直接<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;classId;<br />
&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setTitle(String&nbsp;title)&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.title&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;title;<br />
&nbsp;}<br />
&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getClassId()&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;classId;<br />
&nbsp;}</span></div>
就可以，需要注意的是select一定要带name，option取到的是value<img src ="http://www.blogjava.net/chenglu/aggbug/323677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2010-06-17 07:12 <a href="http://www.blogjava.net/chenglu/archive/2010/06/17/option_jsp.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java md5 小计</title><link>http://www.blogjava.net/chenglu/archive/2010/06/16/java_md5.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Wed, 16 Jun 2010 01:09:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2010/06/16/java_md5.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/323647.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2010/06/16/java_md5.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/323647.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/323647.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.UnsupportedEncodingException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.MessageDigest;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.security.NoSuchAlgorithmException;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;sun.misc.BASE64Encoder;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_265_517_Open_Image" onclick="this.style.display='none'; Codehighlighter1_265_517_Open_Text.style.display='none'; Codehighlighter1_265_517_Closed_Image.style.display='inline'; Codehighlighter1_265_517_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_265_517_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_265_517_Closed_Text.style.display='none'; Codehighlighter1_265_517_Open_Image.style.display='inline'; Codehighlighter1_265_517_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;EncoderByMd5(String&nbsp;str)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;NoSuchAlgorithmException,&nbsp;UnsupportedEncodingException&nbsp;</span><span id="Codehighlighter1_265_517_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 alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_265_517_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">确定计算方法</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDigest&nbsp;md5</span><span style="color: #000000">=</span><span style="color: #000000">MessageDigest.getInstance(</span><span style="color: #000000">"</span><span style="color: #000000">MD5</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BASE64Encoder&nbsp;base64en&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BASE64Encoder();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">加密后的字符串</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;newstr</span><span style="color: #000000">=</span><span style="color: #000000">base64en.encode(md5.digest(str.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">utf-8</span><span style="color: #000000">"</span><span style="color: #000000">)));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;newstr;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
&nbsp;u错了，这不是md5的算法，是md5+base64加密，，<img src ="http://www.blogjava.net/chenglu/aggbug/323647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2010-06-16 09:09 <a href="http://www.blogjava.net/chenglu/archive/2010/06/16/java_md5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring的applicationContext.xml文件</title><link>http://www.blogjava.net/chenglu/archive/2010/01/02/Spring_applicationContext.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 02 Jan 2010 15:42:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2010/01/02/Spring_applicationContext.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/308055.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2010/01/02/Spring_applicationContext.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/308055.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/308055.html</trackback:ping><description><![CDATA[<div>
<p g_t_wrap="" g_t_center="" g_t_bold="" g_t_24="" g_c_pdin="" c07="" id="blogtitle_fks_085066093095088075092095081095086082080070087086080070">Spring的applicationContext.xml文件</p>
<div>
<div g_c_pdin="" g_p_center="" c07="" content="" id="blogtext_fks_085066093095088075092095081095086082080070087086080070" style="width: 760px;">
<div>
<div>想必用过Spring的程序员们都有这样的感觉，Spring把逻辑层封装的太完美了（个人感觉View层封装的不是很好）。以至于有的初学者
都不知道Spring配置文件的意思，就拿来用了。所以今天我给大家详细解释一下Spring的applicationContext.xml文件。
Ok，我还是通过代码加注释的方式为大家演示：
<table>
    以下是详解Spring的applicationContext.xml文件代码：<br />
    &lt;!-- 头文件，主要注意一下编码
    --&gt;<br />
    &lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
    &lt;!DOCTYPE beans
    PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd"&gt;<br />
    &lt;beans&gt;<br />
    &lt;!--
    建立数据源 --&gt;<br />
    &nbsp;&lt;bean &gt;<br />
    &lt;!-- 数据库驱动，我这里使用的是Mysql数据库
    --&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &lt;!--
    数据库地址，这里也要注意一下编码，不然乱码可是很郁闷的哦！ --&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;value&gt;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    jdbc:mysql://localhost:3306/tie?useUnicode=true&amp;characterEncoding=utf-8<br />
    &nbsp;&nbsp;
    &lt;/value&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &lt;!-- 数据库的用户名
    --&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;value&gt;root&lt;/value&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &lt;!--
    数据库的密码 --&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;value&gt;123&lt;/value&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;!--
    把数据源注入给Session工厂 --&gt;<br />
    &nbsp;&lt;bean
    <br />
    &nbsp;&nbsp;class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;ref bean="dataSource" /&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &lt;!--
    配置映射文件 --&gt;<br />
    &nbsp;&nbsp;&lt;property
    &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;list&gt;<br />
    &nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;com/alonely/vo/User.hbm.xml&lt;/value&gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;/list&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;!--
    把Session工厂注入给hibernateTemplate --&gt;<br />
    &nbsp;&lt;!--
    解释一下hibernateTemplate：hibernateTemplate提供了很多方便的方法，在执行时自动建立 HibernateCallback
    对象，例如：load()、get()、save、delete()等方法。 --&gt;<br />
    &nbsp;&lt;bean
    <br />
    &nbsp;&nbsp;class="org.springframework.orm.hibernate3.HibernateTemplate"&gt;<br />
    &nbsp;&nbsp;&lt;constructor-arg&gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;ref
    local="sessionFactory"
    /&gt;<br />
    &nbsp;&nbsp;&lt;/constructor-arg&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;!--
    把DAO注入给Session工厂 --&gt;<br />
    &nbsp;&lt;bean &gt;<br />
    &nbsp;&nbsp;&lt;property &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;ref
    bean="sessionFactory" /&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;!--
    把Service注入给DAO --&gt;<br />
    &nbsp;&lt;bean &gt;<br />
    &nbsp;&nbsp;&lt;property &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;ref
    local="userDAO" /&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;!--
    把Action注入给Service --&gt;<br />
    &nbsp;&lt;bean &gt;<br />
    &nbsp;&nbsp;&lt;property &gt;<br />
    &nbsp;&nbsp;&nbsp;&lt;ref
    bean="userService"
    /&gt;<br />
    &nbsp;&nbsp;&lt;/property&gt;<br />
    &nbsp;&lt;/bean&gt;<br />
    &lt;/beans&gt;
</table>
以上Spring的applicationContext.xml文件我是用的SSH架构，如果您用Spring的MVC架构，其原理也是一样的。
</div>
</div>
</div>
</div>
</div><img src ="http://www.blogjava.net/chenglu/aggbug/308055.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2010-01-02 23:42 <a href="http://www.blogjava.net/chenglu/archive/2010/01/02/Spring_applicationContext.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate中identity和increment区别</title><link>http://www.blogjava.net/chenglu/archive/2009/11/13/hibernate_identity_increment.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 13 Nov 2009 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/11/13/hibernate_identity_increment.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/302266.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/11/13/hibernate_identity_increment.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/302266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/302266.html</trackback:ping><description><![CDATA[<p>identity:由底层数据库生成标识符。identity是由数据库自己生成的，但这个主键必须设置为自增长，前提条件是低层数据库支持自动增长字段类型.<br />
increment:由hibernate管理主键，自动以递增的方式生成标识符，每次增量为1。其在每次插入前取得一个当前最大的id+１作为主键，该主键必须为Integer类型</p><img src ="http://www.blogjava.net/chenglu/aggbug/302266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-11-13 17:31 <a href="http://www.blogjava.net/chenglu/archive/2009/11/13/hibernate_identity_increment.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求证下，程序员是这样阅读简历的，是这样吗？</title><link>http://www.blogjava.net/chenglu/archive/2009/11/13/jianli.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 13 Nov 2009 07:58:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/11/13/jianli.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/302238.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/11/13/jianli.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/302238.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/302238.html</trackback:ping><description><![CDATA[<ul>
    <li>（+15分）曾经因为好玩而写过操作系统或编译器。
    <li>（+12分）简历被Latex编译过。
    <li>（+11分）为开源软件贡献过代码。
    <li>（+9分）上学的时候曾经写过操作系统或编译器。
    <li>（+8分）有一个BLOG分享技术知识。
    <li>（+8分）编程/机器人/工程俱乐部主席。
    <li>（+7分）编程/机器人/工程竞赛参与者。
    <li>（+7分）在Google和Microsoft实习过。
    <li>（+6分）使用动态语言（Python/Perl/Ruby）写过非试验性的程序。
    <li>（+5分）知道3种或多于3种的编程语言。
    <li>（+5分）之前的工作和目前的职位有很相似的经验。
    <li>（+4分）有过实习经验。
    <li>（+4分）自己创过业开过公司。
    <li>（+4分）有一个通过Rail, PHP或ASP.NET的个人主页。
    <li>（+3分）有一个自己域名的邮件地址。
    <li>（+3分）改过一些由动态语言（Python/Perl/Ruby）写的程序。
    <li>（+2分）有一个个人主页。
    <li>（+1分）高学历，学习成绩优秀，等。
    <li>（+0分）有奖学金。
    <li>（+0分）在快餐店工作过。
    <li>（-0.5分）Fackbook上有一张看上去喝醉了的照片。
    <li>（-1分）有博士头衔。
    <li>（-2分）有一个一般的求职信。
    <li style="color: rgb(255,0,0)">（-2分）在简历中说自己懂Word/Excel。
    <li>（-2分）在简历中有拼写和语法错误。
    <li>（-3分）简历的字体太小。
    <li>（-4分）所有的编程经验只是在学校中。
    <li>（-4分）只知道一门编程语言。
    <li>（-6分）简历有三页以上。
    <li>（-6分）简历中有一些无关的东西。
    <li>（-7分）得到过一些课程的认证。
    <li>（-8分）相关专业课程很低的成绩。
    <li>（-10分）在技能中，把Visual Basic列在第一的位置。
    <li>（-12分）在Facebook中，有过光膀子的照片。
    <li style="color: rgb(255,0,0)">（-15分）简历中的缩进同时使用了空格和Tab键。 </li>
</ul>
<p>p.s.人事部门是这样阅读简历的 <br />
<br />
* （+15分）如果简历中说到了和工作职位相符的技能超过5次以上。 <br />
* （+8分）如果简历中说到了和工作职位相符的技能3次到5次。 <br />
* （+4分）如果简历中说到了和工作职位相符的技能1次到2次。 <br />
* （+4分）Cover Letter（&#8220;求职信&#8221;或&#8220;自荐信&#8221;）提到了招聘人员。 <br />
* （+2分）简历中有Cover Letter（求职信）。 <br />
* （-10分）没有提到和职位描述相关的技能。 <br />
* （-15分）没有受过大专教育。 <br />
</p><img src ="http://www.blogjava.net/chenglu/aggbug/302238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-11-13 15:58 <a href="http://www.blogjava.net/chenglu/archive/2009/11/13/jianli.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ITAT5预赛尸体</title><link>http://www.blogjava.net/chenglu/archive/2009/10/17/itat5.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 17 Oct 2009 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/10/17/itat5.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/298662.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/10/17/itat5.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/298662.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/298662.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &#8220;正保教育杯&#8221;第五届全国ITAT教育工程就业技能大赛            －－　预赛考试　－－                                                                                                              ...&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/10/17/itat5.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/298662.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-10-17 10:27 <a href="http://www.blogjava.net/chenglu/archive/2009/10/17/itat5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>送Google Wave邀请4枚</title><link>http://www.blogjava.net/chenglu/archive/2009/10/15/Google_Wave.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Thu, 15 Oct 2009 02:38:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/10/15/Google_Wave.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/298331.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/10/15/Google_Wave.html#Feedback</comments><slash:comments>119</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/298331.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/298331.html</trackback:ping><description><![CDATA[<span  style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2;"><span  style="font-size: small; line-height: 17px; font-family: arial, sans-serif; text-align: left">4枚Google Wave提名，大家申请吧~<img alt="" src="http://www.blogjava.net/images/blogjava_net/chenglu/11.jpg" border="0" /></span></span><img src ="http://www.blogjava.net/chenglu/aggbug/298331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-10-15 10:38 <a href="http://www.blogjava.net/chenglu/archive/2009/10/15/Google_Wave.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>记一次堕落</title><link>http://www.blogjava.net/chenglu/archive/2009/09/28/duoluo.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 28 Sep 2009 07:29:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/09/28/duoluo.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/296797.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/09/28/duoluo.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/296797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/296797.html</trackback:ping><description><![CDATA[今天天气不错，挺风和日丽的&#8230;&#8230;<br />
被Ajax老师鄙视了一次，我要交作业，她却不回头的走了，原因是上节课作业没做完，老师批评说我上课不好好听讲。<br />
在做项目的时候，一个action调用数据库操作类的时候，先是把用户名密码填错，又忘写端口号&#8230;&#8230;<br />
然后还是老报错，最后一看，竟然连数据库的jdbc jar包都没导入&#8230;&#8230;<br />
万事开头难，堕落真简单，数据库连接都成问题了，哎～
<img src ="http://www.blogjava.net/chenglu/aggbug/296797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-09-28 15:29 <a href="http://www.blogjava.net/chenglu/archive/2009/09/28/duoluo.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2文件上传以及空指针异常解决</title><link>http://www.blogjava.net/chenglu/archive/2009/09/27/struts2_upload.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sun, 27 Sep 2009 00:54:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/09/27/struts2_upload.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/296583.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/09/27/struts2_upload.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/296583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/296583.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: uploadFile.java&nbsp;1package&nbsp;action;&nbsp;2&nbsp;3import&nbsp;java.io.File;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4import&nbsp;java.text.DateFormat;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5import&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/09/27/struts2_upload.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/296583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-09-27 08:54 <a href="http://www.blogjava.net/chenglu/archive/2009/09/27/struts2_upload.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts标签</title><link>http://www.blogjava.net/chenglu/archive/2009/09/16/struts_tags_lib.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Tue, 15 Sep 2009 23:58:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/09/16/struts_tags_lib.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/295241.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/09/16/struts_tags_lib.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/295241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/295241.html</trackback:ping><description><![CDATA[<span style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">&nbsp;&nbsp;A：<br />
&lt;s:a xhref=""&gt;&lt;/s:a&gt;-----超链接，类似于html里的&lt;a&gt;&lt;/a&gt;<br />
&lt;s:act<wbr>ion name=""&gt;&lt;/s:act<wbr>ion&gt;-----执行一个view里面的一个act<wbr>ion<br />
&lt;s:actionerror/&gt;-----如果act<wbr>ion的errors有值那么显示出来<br />
&lt;s:actionmessage/&gt;-----如果act<wbr>ion的message有值那么显示出来<br />
&lt;s:append&gt;&lt;/s:append&gt;-----添加一个值到list，类似于list.add();<br />
&lt;s:autocompleter&gt;&lt;/s:autocompleter&gt;-----自动完成&lt;s:combobox&gt;标签的内容，这个是ajax<br />
<br />
B：<br />
&lt;s:bean name=""&gt;&lt;/s:bean&gt;-----类似于struts1.x中的，JavaBean的值<br />
<br />
C：<br />
&lt;s:checkbox&gt;&lt;/s:checkbox&gt;-----复选框<br />
&lt;s:checkboxlist list=""&gt;&lt;/s:checkboxlist&gt;-----多选框<br />
&lt;s:combobox list=""&gt;&lt;/s:combobox&gt;-----下拉框<br />
&lt;s:component&gt;&lt;/s:component&gt;-----图像符号<br />
<br />
D：<br />
&lt;s:date/&gt;-----获取日期格式<br />
&lt;s:datetimepicker&gt;&lt;/s:datetimepicker&gt;-----日期输入框<br />
&lt;s:debug&gt;&lt;/s:debug&gt;-----显示错误信息<br />
&lt;s:div&gt;&lt;/s:div&gt;-----表示一个块，类似于html的&lt;div&gt;&lt;/div&gt;<br />
&lt;s:doubleselect list="" doubleName="" doubleList=""&gt;&lt;/s:doubleselect&gt;-----双下拉框<br />
<br />
E：<br />
&lt;s:if test=""&gt;&lt;/s:if&gt;<br />
&lt;s:elseif test=""&gt;&lt;/s:elseif&gt;<br />
&lt;s:else&gt;&lt;/s:else&gt;-----这3个标签一起使用，表示条件判断<br />
<br />
F：<br />
&lt;s:fielderror&gt;&lt;/s:fielderror&gt;-----显示文件错误信息<br />
&lt;s:file&gt;&lt;/s:file&gt;-----文件上传<br />
&lt;s:form act<wbr>ion=""&gt;&lt;/s:form&gt;-----获取相应form的值<br />
<br />
G：<br />
&lt;s:generator separator="" val=""&gt;&lt;/s:generator&gt;----和&lt;s:iterator&gt;标签一起使用<br />
<br />
H：<br />
&lt;s:head/&gt;-----在&lt;head&gt;&lt;/head&gt;里使用，表示头文件结束<br />
&lt;s:hidden&gt;&lt;/s:hidden&gt;-----隐藏值<br />
<br />
I：<br />
&lt;s:i18n name=""&gt;&lt;/s:i18n&gt;-----加载资源包到值堆栈<br />
&lt;s:include value=""&gt;&lt;/s:include&gt;-----包含一个输出，servlet或jsp页面<br />
&lt;s:inputtransferselect list=""&gt;&lt;/s:inputtransferselect&gt;-----获取form的一个输入<br />
&lt;s:iterator&gt;&lt;/s:iterator&gt;-----用于遍历集合<br />
<br />
L：<br />
&lt;s:label&gt;&lt;/s:label&gt;-----只读的标签<br />
<br />
M：<br />
&lt;s:merge&gt;&lt;/s:merge&gt;-----合并遍历集合出来的值<br />
<br />
O：<br />
&lt;s:optgroup&gt;&lt;/s:optgroup&gt;-----获取标签组<br />
&lt;s:optiontransferselect doubleList="" list="" doubleName=""&gt;&lt;/s:optiontransferselect&gt;-----左右选择框<br />
<br />
P：<br />
&lt;s:param&gt;&lt;/s:param&gt;-----为其他标签提供参数<br />
&lt;s:password&gt;&lt;/s:password&gt;-----密码输入框<br />
&lt;s:property/&gt;-----得到'value'的属性<br />
&lt;s:push value=""&gt;&lt;/s:push&gt;-----value的值push到栈中,从而使property标签的能够获取value的属性<br />
<br />
R：<br />
&lt;s:radio list=""&gt;&lt;/s:radio&gt;-----单选按钮<br />
&lt;s:reset&gt;&lt;/s:reset&gt;-----重置按钮<br />
<br />
S：<br />
&lt;s:select list=""&gt;&lt;/s:select&gt;-----单选框<br />
&lt;s:set name=""&gt;&lt;/s:set&gt;-----赋予变量一个特定范围内的值<br />
&lt;s:sort comparator=""&gt;&lt;/s:sort&gt;-----通过属性给list分类<br />
&lt;s:submit&gt;&lt;/s:submit&gt;-----提交按钮<br />
&lt;s:subset&gt;&lt;/s:subset&gt;-----为遍历集合输出子集<br />
<br />
T：<br />
&lt;s:tabbedPanel id=""&gt;&lt;/s:tabbedPanel&gt;-----表格框<br />
&lt;s:table&gt;&lt;/s:table&gt;-----表格<br />
&lt;s:text name=""&gt;&lt;/s:text&gt;-----I18n文本信息<br />
&lt;s:textarea&gt;&lt;/s:textarea&gt;-----文本域输入框<br />
&lt;s:textfield&gt;&lt;/s:textfield&gt;-----文本输入框<br />
&lt;s:token&gt;&lt;/s:token&gt;-----拦截器<br />
&lt;s:tree&gt;&lt;/s:tree&gt;-----树<br />
&lt;s:treenode label=""&gt;&lt;/s:treenode&gt;-----树的结构<br />
<br />
U：<br />
&lt;s:updownselect list=""&gt;&lt;/s:updownselect&gt;-----多选择框<br />
&lt;s:url&gt;&lt;/s:url&gt;-----创建url</span>
<img src ="http://www.blogjava.net/chenglu/aggbug/295241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-09-16 07:58 <a href="http://www.blogjava.net/chenglu/archive/2009/09/16/struts_tags_lib.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>计算机二级</title><link>http://www.blogjava.net/chenglu/archive/2009/09/12/nrce_jsj_2.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 12 Sep 2009 13:34:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/09/12/nrce_jsj_2.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/294892.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/09/12/nrce_jsj_2.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/294892.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/294892.html</trackback:ping><description><![CDATA[1）栈和队列的共同特点是 C<br />
A）都是先进先出<br />
B）都是先进后出<br />
C）只允许在端点处插入和删除元素<br />
D）没有共同点<br />
<br />
2）已知二叉树<strong>后序遍历</strong>序列是dabec，<strong>中序遍历</strong>序列是debac，它的<strong>前序遍历</strong>序列是<br />
A）acbed<br />
B）decab<br />
C）deabc<br />
D）cedba<br />
<br />
3）链表不具有的特点是 B<br />
A）不必事先估计存储空间<br />
B）可随机访问任一元素<br />
C）插入删除不需要移动元素<br />
D）所需空间与线性表长度成正比<br />
<br />
5）为了提高测试的效率，应该&nbsp; D<br />
A）随机选取测试数据<br />
B）取一切可能的输入数据作为测试数据<br />
C）在完成编码以后制定软件的测试计划<br />
D）集中对付那些错误群集的程序<br />
<br />
<h3>算法的时间复杂度是指算法执行过程中所需要的基本运算次数</h3>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/chenglu/aggbug/294892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-09-12 21:34 <a href="http://www.blogjava.net/chenglu/archive/2009/09/12/nrce_jsj_2.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BlogGTK linux&amp;#31471;blog&amp;#36828;&amp;#31243;&amp;#21457;&amp;#24067;</title><link>http://www.blogjava.net/chenglu/archive/2009/09/11/bloggtk.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 11 Sep 2009 00:51:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/09/11/bloggtk.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/294671.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/09/11/bloggtk.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/294671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/294671.html</trackback:ping><description><![CDATA[虽然没有win live writter好用，但是也可以满足blogjava的慢速。 
<img src ="http://www.blogjava.net/chenglu/aggbug/294671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-09-11 08:51 <a href="http://www.blogjava.net/chenglu/archive/2009/09/11/bloggtk.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>栈</title><link>http://www.blogjava.net/chenglu/archive/2009/08/03/stack.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 03 Aug 2009 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/08/03/stack.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/289645.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/08/03/stack.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/289645.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/289645.html</trackback:ping><description><![CDATA[栈（stack）在计算机科学中是限定仅在表尾进行插入或删除操作的线形表。<br />
&nbsp;&nbsp;&nbsp; 栈是一种数据结构，它按照先进后出的原则存储数据，先进入的数据被压入栈底，最后的数据在栈顶，需要读数据的时候从栈顶开始弹出数据（最后一个数据被第一个读出来）。<br />
&nbsp; &nbsp; 栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品，先堆进来的压在底下，随后一件一件往堆。取走时，只能从上面一件一件取。堆和取都在顶部进行，底部一般是不动的。<br />
　　栈就是一种类似桶堆积物品的数据结构，进行删除和插入的一端称栈顶，另一堆称栈底。插入一般称为进栈（PUSH），删除则称为退栈（POP）。 栈也称为后进先出表（LIFO表）。<br />
&nbsp; &nbsp; 1、进栈（PUSH）算法<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;①若TOP&#8805;ｎ时，则给出溢出信息，作出错处理（进栈前首先检查栈是否已满，满则溢出；不满则作②）；<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;②置TOP=TOP+1（栈指针加１，指向进栈地址）；<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;③S(TOP)=X，结束（X为新进栈的元素）；<br />
&nbsp; &nbsp; 2、退栈（POP）算法<br />
　　&nbsp; &nbsp; ①若TOP&#8804;0，则给出下溢信息，作出错处理(退栈前先检查是否已为空栈， 空则下溢；不空则作②)；<br />
　　&nbsp; &nbsp; ②X=S(SOP)，（退栈后的元素赋给X）；<br />
　　&nbsp; &nbsp; ③TOP=TOP-1，结束（栈指针减１，指向栈顶）。<br />
栈可以用来在函数调用的时候存储断点，做递归时要用到栈！
<img src ="http://www.blogjava.net/chenglu/aggbug/289645.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-08-03 18:19 <a href="http://www.blogjava.net/chenglu/archive/2009/08/03/stack.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些刚发现的网址</title><link>http://www.blogjava.net/chenglu/archive/2009/07/20/some_webs.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 20 Jul 2009 05:52:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/07/20/some_webs.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/287461.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/07/20/some_webs.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/287461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/287461.html</trackback:ping><description><![CDATA[http://www.oracle.com/technology/global/cn/pub/articles/maps1.html<br />
<br />
http://www.oracle.com/technology/global/cn/tech/java/ajax.html<br />
<br />
IBM有这些教程 oracle也有咯~呵呵
<img src ="http://www.blogjava.net/chenglu/aggbug/287461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-07-20 13:52 <a href="http://www.blogjava.net/chenglu/archive/2009/07/20/some_webs.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA认证经典面试题目整理</title><link>http://www.blogjava.net/chenglu/archive/2009/07/13/java_mst.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 13 Jul 2009 12:14:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/07/13/java_mst.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/286615.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/07/13/java_mst.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/286615.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/286615.html</trackback:ping><description><![CDATA[　1. Java中的异常处理机制的简单和应用。
<p>　　当Java程序违反了Java的语义规则时，Java虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是Java类库内置的语义。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是Java允许程序员扩展这种语义检查，程序员可以创建自己的异常，并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。</p>
<!--advertisement code begin--><!--advertisement code end-->
<p>　　2. Java的接口和C++的虚类的相同和不同处。</p>
<p>　　由于Java不支持多继承，而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性，现有的单继承机制就不能满足要求。与继承相比，接口有更高的灵活性，因为接口中没有任何实现代码。当一个类实现了接口以后，该类要实现接口里面所有的方法和属性，接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口。</p>
<p>　　3. 垃圾回收的优点和原理。并考虑2种回收机制。</p>
<p>　　Java语言中一个显著的特点就是引入了垃圾回收机制，使c++程序员最头疼的内存的问题迎刃而解，它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制，Java中的对象不再有&#8220;作用域&#8221;的概念，只有对象的引用才有&#8220;作用域&#8221;。垃圾回收可以有效的防止内存泄露，有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行，不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收，程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收，增量垃圾回收。</p>
<p>　　4.线程同步的方法。</p>
<p>　　wait():使一个线程处于等待状态，并且释放所持有的对象的lock。</p>
<p>　　sleep():使一个正在运行的线程处于睡眠状态，是一个静态方法，调用此方法要捕捉InterruptedException异常。</p>
<p>　　notify():唤醒一个处于等待状态的线程，注意的是在调用此方法的时候，并不能确切地唤醒某一个等待状态的线程，而是由JVM确定唤醒哪个线程，而且不是按优先级。</p>
<p>　　Allnotity():唤醒所有处入等待状态的线程，注意并不是给所有唤醒线程一个对象的锁，而是让它们竞争。</p>
<p>　　5. Error与Exception有什么区别？</p>
<p>　　Error表示系统级的错误和程序不必处理的异常，</p>
<p>　　Exception表示需要捕捉或者需要程序进行处理的异常。</p>
<p>　　6. 在java中一个类被声明为final类型，表示了什么意思？</p>
<p>　　表示该类不能被继承，是顶级类。</p>
<p>　　7. heap和stack有什么区别。</p>
<p>　　栈是一种线形集合，其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素。</p>
<p>　　8. 谈谈final, finally, finalize的区别。</p>
<p>　　final—修饰符(关键字)如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为 abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为final的方法也同样只能使用，不能重载。 </p>
<p>　　finally—异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch 子句就会执行，然后控制就会进入 finally 块(如果有的话)。<br />
&nbsp;<br />
　　finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object类中定义的，因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。</p>
<p>　　9. Anonymous Inner Class (匿名内部类) </p>
<p>　　是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)? </p>
<p>　　匿名的内部类是没有名字的内部类。不能extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现。</p>
<p>　　10. Static Nested Class 和 Inner Class的不同 </p>
<p>　　Nested Class (一般是C++的说法)，Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。</p>
<p>　　注： 静态内部类(Inner Class)意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象。<br />
<br />
</p>
<!--function: content() parse end  0ms cost! -->转载：<a href="http://edu.hsw.cn/system/2009/07/13/050238819.shtml">http://edu.hsw.cn/system/2009/07/13/050238819.shtml</a><br />
<img src ="http://www.blogjava.net/chenglu/aggbug/286615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-07-13 20:14 <a href="http://www.blogjava.net/chenglu/archive/2009/07/13/java_mst.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学生管理系统 源代码</title><link>http://www.blogjava.net/chenglu/archive/2009/06/08/StudentMS_src.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 08 Jun 2009 01:13:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/06/08/StudentMS_src.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/280543.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/06/08/StudentMS_src.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/280543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/280543.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 源代码以及下载&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/06/08/StudentMS_src.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/280543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-06-08 09:13 <a href="http://www.blogjava.net/chenglu/archive/2009/06/08/StudentMS_src.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>课程设计——学生管理系统</title><link>http://www.blogjava.net/chenglu/archive/2009/06/08/Student_Manager.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 08 Jun 2009 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/06/08/Student_Manager.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/278202.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/06/08/Student_Manager.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/278202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/278202.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 小省小市小学校 大一小菜鸟的一个小小的课程设计&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/06/08/Student_Manager.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/278202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-06-08 08:58 <a href="http://www.blogjava.net/chenglu/archive/2009/06/08/Student_Manager.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLException: No suitable driver for XXX解决方案（NetBeans）</title><link>http://www.blogjava.net/chenglu/archive/2009/05/26/SQLException.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Tue, 26 May 2009 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/05/26/SQLException.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/277987.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/05/26/SQLException.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/277987.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/277987.html</trackback:ping><description><![CDATA[<p>今日研究NetBeans欲完成课程设计学生管理系统，</p>
<p>突然发现不会连接数据库了&#8230;&#8230;</p>
<p>思索中，用jsp的方法去test了一下，感觉&#8230;&#8230;对啊，老师曾经讲过这个跟jsp链接数据库是一样的，巨汗&#8230;&#8230; =_=！</p>
<p>Class.forName&#8230;&#8230;&#8230;</p>
<p>con&#8230;&#8230;&#8230;..</p>
<p>stm&#8230;&#8230;&#8230;..</p>
<p>——运行——报错（ClassNotFoundException）——添加库MySQL-JDBC</p>
<p>应该没错了吧，但是&#8230;&#8230;</p>
<p>SQLException: No suitable driver for mysql://localhost:3306/stu</p>
<p>而后发现了一个很耻辱的问题：</p>
<p>con = DriverManager.getConnection<strong>("mysql://localhost:3306/stu","&#215;","&#215;");</strong></p>
<p><strong>天啊，mysql://localhost:3306/stu，我竟然忘记写 jdbc在mysql前面！～～</strong></p>
<p><strong></strong>&nbsp;<strong>--------------------------------------------------------</strong></p>
<p>中国移动老总上公厕，守门大爷说：进去3毛，出来2毛。<br />
&nbsp;&nbsp; 老总一愣说：出来还收费？大爷说：学习移动，双向收费。<br />
&nbsp;&nbsp; 老总从厕所出来又被拦住：你蹲的是8号坑，交1元钱的选号费，放了一个屁，交1元的漫游费，超过3分钟，再交1元的超时费。<br />
&nbsp;&nbsp; 厕所有背景音乐，收彩铃费2毛。<br />
&nbsp;&nbsp; 大爷劝老总，如果你经常光顾，还是办个厕所套餐比较合算。<br />
&nbsp;&nbsp; 老总大怒：这是那家的王法！大爷一摆手：动感地带，我的地盘我做主!<br />
&nbsp;&nbsp; 祝大家端午节开心</p>
<img src ="http://www.blogjava.net/chenglu/aggbug/277987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-05-26 13:37 <a href="http://www.blogjava.net/chenglu/archive/2009/05/26/SQLException.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>腾讯年度创新大赛试题！</title><link>http://www.blogjava.net/chenglu/archive/2009/05/09/tencent.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 09 May 2009 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/05/09/tencent.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/269753.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/05/09/tencent.html#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/269753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/269753.html</trackback:ping><description><![CDATA[<p>Problem A: University</p> <p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K</p> <p><b>Total Submissions:</b> 726<br><strong>Accepted:</strong> 422 <p>Description <p>企鹅大学有很多很多名学生，课程也很多。譬如企鹅语，北极熊语，企鹅初级数学，企鹅高级数学等等等等&#8230;&#8230; 现在，企鹅大学的校长想请你为他们写一个程序：计算总分的程序。请你由他们输入课程的数量以及一个学生每门课程的分数，输出该学生的总分。  <p>Input <p>第一行：一个整数<i>n</i>(1 &#8804; <i>n</i> &#8804; 5000)，代表企鹅大学的课程数目。<br>第2至第<i>n</i>+1行：每行有一个1整数，第<i>i</i>+1行代表某一位学生在第<i>i</i>门课上取得的分数。分数为0到100的整数。 <p>Output <p>一个整数。代表该学生在n门课中所得的总分。 <p>Sample Input<pre>3
100
99
100
</pre>
<p>Sample Output<pre>299</pre><pre>&nbsp;</pre>
<p>Problem B: Doudou
<p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K
<p><b>Total Submissions:</b> 323<br><strong>Accepted:</strong> 75
<p>Description
<p>有只企鹅叫豆豆，总是被别的企鹅欺负。豆豆在长期的隐忍之后，掌握了所有企鹅的高度和攻击力强度，还得到了一把黄金剑。在拥有了黄金剑以后，豆豆终于可以展开绝地大反击。但这把黄金剑的用法却很奇怪。
<p>首先，豆豆第一次可以选择任何一只企鹅开始挑战。豆豆这一次必胜。
<p>再次，当豆豆已经挑战过某一只企鹅后，再下一次的挑战对象只能是比上一名对手高，且比上一名对手攻击力强的企鹅。这样豆豆必胜。否则黄金剑会觉得打的没意思而故意发脾气输掉。豆豆还会被大家集体暴打。
<p>面对着这把脾气很大的黄金剑，豆豆想请你帮助他计算一下，他最多可以连续击败多少只企鹅？
<p>Input
<p>第一行：一个数据<i>n</i>，代表企鹅群里除了豆豆一共有<i>n</i>(1 &#8804; <i>n</i> &#8804; 1000)只企鹅。<br>第2至第<i>n</i>+1行：每行2个数字。第<i>i</i>+1行的第一个数字为企鹅<i>i</i>的高度。第<i>i</i>+1行的第二个数字为企鹅<i>i</i>的攻击力。0 &#8804; 高度,攻击力 &#8804; 1,000,000。
<p>Output
<p>一个数。代表豆豆最多可以连续击败的企鹅数。 
<p>Sample Input<pre><p><br><b>Sample Input #1</b><br><b>Sample Input #2</b><p><br>3<br>1 3<br>3 2<br>2 4<br>5<br>10 1<br>9 2<br>7 3<br>6 4<br>5 5<br></p></pre>
<p>Sample Output<pre><p><br><b>Sample Output #1</b><br><b>Sample Output #2</b><p><br>2<br>1</p></pre>
<p>&nbsp;</p>
<p>Problem C: Ball
<p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K
<p><b>Total Submissions:</b> 6<br><strong>Accepted:</strong> 0
<p>Description
<p>给出空间上两个运动的小球，球心坐标在分别是<i><b>A</b></i>(xa , ya , 0)，<b><i>B</i></b>(xb , yb , 0)，半径分别为<i>Ra</i> , <i>Rb</i>，速度分别为<i>Va</i>( vax, vay , 0), <i>Vb</i>( vbx , vby, 0)。判断两个小球是否会碰撞，若会碰撞， 输出首次碰撞时的时刻和两个小球的坐标；若不会碰撞，输出&#8220;Impossible&#8221;（球心和速度的z坐标恒为0，可将本题视为只是平面上的运动。初始时刻为0，若初始时刻小球贴在一起，视为首次碰撞）。 
<p>Input
<p>第一行：一个整数T，（<i>T</i> &#8804; 30），表示下面有<i>T</i>组数据。<br>接下来，每两行组成一组数据，首行包含5个实数，用空格隔开，依次是xa , ya , vax, vay , Ra，下面一行也包含5个实数，依次是xa , ya , vbx , vby, Rb。每组数据之间有一个空行。
<p>Output
<p>对于每组数据，如果两个小球会碰撞，输出首次碰撞时的时刻<i>t</i>，和两个小球的坐标xap , yap , xbp , ybp ，用空格隔开，保留三位小数。如果不能，输出&#8220;Impossible&#8221;。
<p>Sample Input<pre>3
100 200 0 0 55
100 100 0 0 45

131 123 45 2 43
454 230 0 -5 35

100 100 1 1 31
200 200 2 2 23
</pre>
<p>Sample Output<pre>0.000 100.000 200.000 100.000 100.000
6.179 409.053 135.358 454.000 199.105
Impossible
</pre>
<p>&nbsp;</p>
<p>Problem D: String
<p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K
<p><b>Total Submissions:</b> 14<br><strong>Accepted:</strong> 0
<p>Description
<p>给定一个字符串S[1..n]和一个整数T，现在需要在字符串S中找出长度不小于T的一个子串，使得其在原串中不重叠出现的次数最多，求这个次数。 
<p>Input
<p>第一行：一个整数T(T &gt; 1)<br>第二行：一个字符串S，且仅包含小写字母，字符串长度不超过10000
<p>Output
<p>一个整数。代表出现最多的次数 
<p>Sample Input<pre>2
ababab
</pre>
<p>Sample Output<pre>3</pre>
<p>&nbsp;</p>
<p>Problem E: Papercut
<p><strong>Time Limit:</strong> 1000MS<br><strong>Memory Limit:</strong> 65536K
<p><b>Total Submissions:</b> 3<br><strong>Accepted:</strong> 0
<p>Description
<p>现在桌面上有一张矩形纸，上边有<i>n</i>&#215;<i>m</i>个格子，每个格子有一个数字。 每张矩形纸可以算出一个数值F，<i>F</i>是由纸张里任意两个不同的格子里的数字相乘之和。如果该纸只有一个格子，那么<i>F</i>=0。 
<p>剪纸规则是：<br>1、沿格子边缘一直剪成两个矩形纸，每张纸里必须有数字。<br>2、每次剪纸在桌面上任意选一张矩形纸，进行1操作，再把剪出来的两张纸放到桌面。
<p>现在你可以对桌面上的纸最多剪k次，问最后桌面上所有矩形纸的F值之和最小是多少？ 
<p>1 &#8804; <i>n</i> &#8804; 10<br>1 &#8804; <i>m</i> &#8804; 10<br>1 &#8804; <i>k</i> &#8804; 50
<p>Input
<p>第一行：3个整数<i>n</i>, <i>m</i>, <i>k</i><br>接下来<i>n</i>行：每行<i>m</i>个正整数，范围在[1,10]，第<i>i</i>行第<i>j</i>个数表示当前桌面那张矩形纸里边第<i>i</i>行第<i>j</i>个格子里的数字。
<p>Output
<p>一个整数。代表最小<i>F</i>值和。 
<p>Sample Input<pre><p><br><b>Sample Input #1</b><br><b>Sample Input #2</b><p><br>4 4 4<br>1 1 1 1<br>1 1 1 1<br>1 1 1 1<br>1 1 1 1<br>　<br>10 10 5<br>4 2 3 5 6 10 1 6 5 8 <br>3 6 9 1 7 10 7 10 8 1 <br>7 8 3 3 2 5 9 9 8 2 <br>5 5 9 9 3 10 2 9 10 2 <br>1 1 6 7 6 8 3 9 6 8 <br>7 1 2 5 3 2 3 7 8 10 <br>10 9 8 9 7 8 10 7 3 9 <br>6 3 6 2 1 7 10 6 7 2 <br>2 4 8 4 5 9 10 5 9 10 <br>7 4 3 2 4 9 9 9 8 1<br></p></pre>
<p>Sample Output<pre><p><br><b>Sample Output #1</b><br><b>Sample Output #2</b><p><br>18<br>26612
</p></pre>
<p>Hint
<p>Sample 1说明： 按照下面方式剪纸4次<br>1&nbsp;&nbsp; 1&nbsp;&nbsp; 1&nbsp;&nbsp; 1<br>-------------<br>1 | 1 | 1 | 1<br>&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; | <br>1 | 1 | 1 | 1<br>&nbsp;&nbsp; |&nbsp;&nbsp; |&nbsp;&nbsp; | <br>1 | 1 | 1 | 1<br>得到6+3+3+3+3=18</p> <img src ="http://www.blogjava.net/chenglu/aggbug/269753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-05-09 14:31 <a href="http://www.blogjava.net/chenglu/archive/2009/05/09/tencent.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>“快”在细节 J2EE程序的性能优化技巧</title><link>http://www.blogjava.net/chenglu/archive/2009/04/04/let-the-java-good.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sat, 04 Apr 2009 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/04/04/let-the-java-good.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/263861.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/04/04/let-the-java-good.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/263861.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/263861.html</trackback:ping><description><![CDATA[　　应用J2EE平台开发的系统的性能是系统使用者和开发者都关注的问题，本文从服务器端编程时应注意的几个方面讨论代码对性能的影响，并总结一些解决的建议。关键词：性能，Java，J2EE，EJB，Servlet，JDBC
<h3>一、概要</h3>
<p> Java 2 Platform, Enterprise Edition (J2EE)是当前很多商业应用系统使用的开发平台，该技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型，可以更快地开发和发布的新的应用解决方案。&#160;</p>
<p>J2EE是一种技术规范，定义了整个标准的应用开发体系结构和一个部署环境，应用开发者开发时只要专注于具体商业逻辑和商业业务规则的实现上，而其他的诸如事务、持久化、安全等系统开发问题可以由应用程序容器或者服务器处理，开发完成后，就可以方便地部署到实现规范的应用服务器中。&#160;</p>
<p>作为网络上的商业应用系统，同时访问的人数是很多的，在大量访问的情况下，过多的资源请求和有限的服务器资源（内存、CPU时间、网络带宽等）之间就会出现矛盾，应用系统的性能就显得很重要了，有时正确的代码并不能保证项目的成功，性能往往是最后决定一个项目是否成功关键。</p>
<p>本文主要从性能的角度出发，讨论J2EE服务器端的代码性能优化和提升。　</p>
<p>二、常见的Java 编程 J2EE语言基础是Java，常用的Java代码问题对应用系统的性能影响，</p>
<p>下面讨论了一些应该注意方面。&#160;</p>
<p>使用StringBuffer代替String 当处理字符串的相加时，常见的写法是：</p>
<h1 id="artibodyTitle" style="text-align: left;font-size: 20px; font-weight: bold; font-family: 宋体; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="color: #000000; font-family: Arial; font-size: 14px; font-weight: normal; line-height: 24px; "><strong><span style="font-weight: normal; "><strong><span style="font-weight: normal; ">
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>String str1 = "Hello";<br />
            String str2 = "welcome to world";<br />
            String str3 = str1 + ", " + str2 +"!";<br />
            System.out.println(str3);</td>
        </tr>
    </tbody>
</table>
</span></strong></span></strong></span></h1>
<span class="Apple-tab-span" style="white-space:pre"> </span>很多人都知道，这样的代码效率是很低的，因为String是用来存储字符串常量的，如果要执行&#8220;＋&#8221;的操作，系统会生成一些临时的对象，并对这些对象进行管理，造成不必要的开销。<br />
<br />
　　如果字符串有连接的操作，替代的做法是用StringBuffer类的append方法，它的缺省构造函数和append的实现是：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>public StringBuffer() { // 构造函数<br />
            this(16); // 缺省容量16} <br />
            <br />
            public synchronized StringBuffer append(String str) { <br />
            　if (str == null) { <br />
            　　str = String.valueOf(str); <br />
            　} <br />
            <br />
            　int len =str.length(); <br />
            　int newcount = count + len; <br />
            　if(newcount > value.length) <br />
            <br />
            　expandCapacity(newcount); <br />
            <br />
            　// 扩充容量<br />
            　str.getChars(0, len, value, count); <br />
            　count = newcount; <br />
            　return this; <br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　当字符串的大小超过缺省16时，代码实现了容量的扩充，为了避免对象的重新扩展其容量，更好的写法为：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>StringBuffer buffer = new StringBuffer(30); <br />
            // 分配指定的大小。<br />
            buffer.append("hello"); <br />
            buffer.append(","); <br />
            buffer.append("welcometo world!"); <br />
            String str = buffer.toString();</td>
        </tr>
    </tbody>
</table>
<br />
　　&#183;生成对象时，分配合理的空间和大小<br />
<br />
　　Java中的很多类都有它的默认的空间分配大小，对于一些有大小的对象的初始化，应该预计对象的大小，然后使用进行初始化，上面的例子也说明了这个问题，StringBuffer创建时，我们指定了它的大小。<br />
<br />
　　另外的一个例子是Vector，当声明Vector vect＝new Vector()时，系统调用：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>public Vector() {// 缺省构造函数<br />
            　this(10); // 容量是 10;<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　缺省分配10个对象大小容量。当执行add方法时，可以看到具体实现为：.. <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>public synchronized boolean add(Object o) {<br />
            　modCount++;<br />
            　ensureCapacityHelper(elementCount+1);<br />
            　elementData[elementCount++] =o;<br />
            <br />
            　return true;<br />
            }<br />
            <br />
            private void ensureCapacityHelper(int minCapacity) { <br />
            　int oldCapacity = elementData.length; <br />
            　if (minCapacity > oldCapacity) { <br />
            　　Object oldData[] = elementData; <br />
            　　int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : <br />
            (oldCapacity * 2); <br />
            　　if (newCapacity &lt; minCapacity) { <br />
            　　　newCapacity = minCapacity; <br />
            　　} <br />
            　　elementData = new Object[newCapacity]; <br />
            　　System.arraycopy(oldData, 0, elementData, 0, elementCount); <br />
            　} <br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　我们可以看到，当Vector大小超过原来的大小时，一些代码的目的就是为了做容量的扩充，在预先知道该Vector大小的话，可以指定其大小，避免容量扩充的开销，如知道Vector大小为100时，初始化是就可以象这样。<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>Vector vect ＝.. new Vector(100);</td>
        </tr>
    </tbody>
</table>
<br />
　　&#183;优化循环体<br />
<br />
　　循环是比较重复运行的地方，如果循环次数很大，循环体内不好的代码对效率的影响就会被放大而变的突出。考虑下面的代码片：.. <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>Vector vect = new Vector(1000);<br />
            ...<br />
            for( inti=0; i&lt;vect.size(); i++){<br />
            　...<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　for循环部分改写成：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int size = vect.size();<br />
            for( int i=0; i>size; i++){<br />
            　...<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　如果size=1000，就可以减少1000次size()的系统调用开销，避免了循环体重复调用。<br />
<br />
　　再看如下的代码片：.. <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>for (int i = 0;i &lt;100000;i++)<br />
            if (i%10 == 9) {<br />
            　... // 每十次执行一次<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　改写成也可以提高效率：.. <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>for(inti =0,j =10; i&lt;100000; i++,j--){<br />
            　if(j == 0){<br />
            　　... // 每十次执行一次<br />
            　　j = 10;<br />
            　}<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　所以，当有较大的循环时，应该检查循环内是否有效率不高的地方，寻找更优的方案加以改进。<br />
<br />
　　&#183;对象的创建<br />
<br />
　　尽量少用new来初始化一个类的实例，当一个对象是用new进行初始化时，其构造函数链的所有构造函数都被调用到，所以new操作符是很消耗系统资源的，new一个对象耗时往往是局部变量赋值耗时的上千倍。同时，当生成对象后，系统还要花时间进行垃圾回收和处理。<br />
<br />
　　当new创建对象不可避免时，注意避免多次的使用new初始化一个对象。<br />
<br />
　　尽量在使用时再创建该对象。如：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>NewObject object = new NewObject();<br />
            int value;<br />
            if(i>0 )<br />
            {<br />
            　value =object.getValue();<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　可以修改为：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int value;<br />
            if(i>0 )<br />
            {<br />
            　NewObject object = new NewObject(); <br />
            　Value =object.getValue(); <br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　另外，应该尽量重复使用一个对象，而不是声明新的同类对象。一个重用对象的方法是改变对象的值，如可以通过setValue之类的方法改变对象的变量达到重用的目的。<br />
<br />
　　&#183;变量的注意事项<br />
<br />
　　尽量使用局部变量，调用方法时传递的参数以及在调用中创建的临时变量都保存在栈（Stack） 中，速度较快。其他变量，如静态变量、实例变量等，都在堆（Heap）中创建，速度较慢。<br />
<br />
　　尽量使用静态变量，即加修饰符static，如果类中的变量不会随他的实例而变化，就可以定义为静态变量，从而使他所有的实例都共享这个变量。<br />
<br />
　　&#183;方法（Method）调用<br />
<br />
　　在Java中，一切都是对象，如果有方法（Method）调用，处理器先要检查该方法是属于哪个对象，该对象是否有效，对象属于什么类型，然后选择合适的方法并调用。<br />
<br />
　　可以减少方法的调用，同样一个方法： <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>public void CallMethod(int i ){<br />
            　if( i ==0 ){<br />
            　　return;<br />
            　}<br />
            　... // 其他处理<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　如果直接调用，<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int i = 0; <br />
            ... <br />
            CallMethod(i);</td>
        </tr>
    </tbody>
</table>
<br />
　　就不如写成：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int i = 0; <br />
            ... <br />
            <br />
            if( i ==0 ){ <br />
            　CallMethod(i); <br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　不影响可读性等情况下，可以把几个小的方法合成一个大的方法。<br />
<br />
　　另外，在方法前加上final，private关键字有利于编译器的优化。<br />
<br />
　　&#183;慎用异常处理 <br />
<br />
　　异常是Java的一种错误处理机制，对程序来说是非常有用的，但是异常对性能不利。抛出异常首先要创建一个新的对象，并进行相关的处理，造成系统的开销，所以异常应该用在错误处理的情况，不应该用来控制程序流程，流程尽量用while，if等处理。<br />
<br />
　　在不是很影响代码健壮性的前提下，可以把几个try/catch块合成一个。<br />
<br />
　　&#183;同步<br />
<br />
　　同步主要出现在多线程的情况，为多线程同时运行时提供对象数据安全的机制，多线程是比较复杂话题，应用多线程也是为了获得性能的提升，应该尽可能减少同步。<br />
<br />
　　另外，如果需要同步的地方，可以减少同步的代码段，如只同步某个方法或函数，而不是整个代码。<br />
<br />
　　&#183;使用Java系统API<br />
<br />
　　Java的API一般都做了性能的考虑，如果完成相同的功能，优先使用API而不是自己写的代码，如数组复制通常的代码如下： <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int size = 1000;<br />
            String[] strArray1 = new String[size];<br />
            String[] strArray2 = new String[size];<br />
            for(inti=0;i&lt;size;i++){ // 赋值<br />
            　strArray1[i] = (new String("Array: " + i));<br />
            }<br />
            <br />
            for(inti=0;i&lt;size;i++){ // 复制<br />
            　strArray2[i]=(new String((String)a[i]));<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　如果使用Java提供的API，就可以提高性能：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>int size = 1000;<br />
            String[] strArray1 = new String[size];<br />
            String[] strArray2 = new String[size];<br />
            for(inti=0;i&lt;size;i++){ // 赋值<br />
            strArray1[i] = (new String("Array: " + i));<br />
            }<br />
            <br />
            System.arraycopy(strArray1,0,strArray2,0,size); // 复制</td>
        </tr>
    </tbody>
</table>
<br />
　　同样的一个规则是，当有大量数据的复制时，应该使用System.arraycopy()。
<div id="artibody" style="border-style: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">　　<strong>三、I/O 性能</strong><br />
<br />
　　输入/输出（I/O）包括很多方面，我们知道，进行I/O操作是很费系统资源的。程序中应该尽量少用I/O操作。使用时可以注意： . 合理控制输出函数System.out.println()对于大多时候是有用的，特别是系统调试的时候，但也会产生大量的信息出现在控制台和日志上，同时输出时，有序列化和同步的过程，造成了开销。<br />
<br />
　　特别是在发行版中，要合理的控制输出，可以在项目开发时，设计好一个Debug的工具类，在该类中可以实现输出开关，输出的级别，根据不同的情况进行不同的输出的控制。<br />
<br />
　　&#183;使用缓存<br />
<br />
　　读写内存要比读写文件要快很多，应尽可能使用缓冲。<br />
<br />
　　尽可能使用带有Buffer的类代替没有Buffer的类，如可以用BufferedReader 代替Reader，用BufferedWriter代替Writer来进行处理I/O操作。<br />
<br />
　　同样可以用BufferedInputStream代替InputStream都可以获得性能的提高。<br />
<br />
　　<strong>四、Servlet</strong><br />
<br />
　　Servlet采用请求——响应模式提供Web服务，通过ServletResponse以及ServletRequest这两个对象来输出和接收用户传递的参数，在服务器端处理用户的请求，根据请求访问数据库、访问别的Servlet方法、调用EJB等等，然后将处理结果返回给客户端。<br />
<br />
　　&#183;尽量不使用同步<br />
<br />
　　Servlet是多线程的，以处理不同的请求，基于前面同步的分析，如果有太多的同步就失去了多线程的优势了。 <br />
<br />
　　&#183;不用保存太多的信息在HttpSession中<br />
<br />
　　很多时候，存储一些对象在HttpSession中是有必要的，可以加快系统的开发，如网上商店系统会把购物车信息保存在该用户的Session中，但当存储大量的信息或是大的对象在会话中是有害的，特别是当系统中用户的访问量很大，对内存的需求就会很高。<br />
<br />
　　具体开发时，在这两者之间应作好权衡。<br />
<br />
　　&#183;清除Session<br />
<br />
　　通常情况，当达到设定的超时时间时，同时有些Session没有了活动，服务器会释放这些没有活动的Session，.. 不过这种情况下，特别是多用户并访时，系统内存要维护多个的无效Session。<br />
<br />
　　当用户退出时，应该手动释放，回收资源，实现如下：.. <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>HttpSession theSession = request.getSession(); <br />
            // 获取当前Session<br />
            if(theSession != null){ <br />
            　theSession.invalidate(); // 使该Session失效<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　<strong>五、EJB 问题</strong><br />
<br />
　　EJB是Java服务器端服务框架的规范，软件厂商根据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑，而不用担心周围框架的实现问题。EJB规范详细地解释了一些最小但是必须的服务，如事务，安全和名字等。<br />
<br />
　　&#183;缓存Home接口<br />
<br />
　　EJB库使用Enterprise Bean 的客户端通过它的Home接口创建它的实例。客户端能通过JNDI访问它。服务器通过Lookup方法来获取。<br />
<br />
　　JNDI是个远程对象，通过RMI方式调用，对它的访问往往是比较费时的。所以，在设计时可以设计一个类专门用来缓存Home接口，在系统初始化时就获得需要的Home接口并缓存，以后的引用只要引用缓存即可。<br />
<br />
　　&#183;封装Entity Bean<br />
<br />
　　直接访问Entity Bean是个不好的习惯，用会话Bean封装对实体Bean的访问能够改进事务管理，因为每一个对get方法的直接调用将产生一个事务，容器将在每一个实体Bean的事务之后执行一个&#8220;Load-Store&#8221;.. 操作。<br />
<br />
　　最好在Session Bean中完成Entity Bean的封装，减少容器的事务处理，并在Session Bean中实现一些具体的业务方法。<br />
<br />
　　&#183;释放有状态的Session Bean<br />
<br />
　　相当于HttpSession，当把一个Session Bean设为Stateful，即有状态的Session Bean 后，应用容器（Container）就可能有&#8220;钝化&#8221;（Passivate）和活化（Activate）过程，即在主存和二级缓存之间对SessionBean进行存储位置的转移，在这个过程中，存在序列化过程。<br />
<br />
　　通常有状态Session Bean的释放是在超时时发生，容器自动的清除该对象，但是如果交给容器管理，一方面可能产生对象钝化，另一方面未超时期间，系统还要 维护一份该对象，所以如果我们确认使用完该StatefulSession Bean后不再需要时，可以显式的将其释放掉，方法是调用：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>theSesionBean.remove();</td>
        </tr>
    </tbody>
</table>
<br />
　　<strong>六、数据库访问</strong><br />
<br />
　　在J2EE开发的应用系统中，数据库访问一般是个必备的环节。数据库用来存储业务数据，供应用程序访问。<br />
<br />
　　在Java技术的应用体系中，应用程序是通过JDBC（Java Database Connectivity）实现的接口来访问数据库的，JDBC支持&#8220;建立连接、SQL语句查询、处理结果&#8221;等基本功能。在应用JDBC接口访问数据库的过程中，只要根据规范来实现，就可以达到要求的功能。<br />
<br />
　　但是，有些时候进行数据查询的效率着实让开发人员不如所愿，明明根据规范编写的程序，运行效果却很差，造成整个系统的执行效率不高。<br />
<br />
　　&#183;使用速度快的JDBC驱动<br />
<br />
　　JDBC API包括两种实现接口形式，一种是纯Java实现的驱动，一种利用ODBC驱动和数据库客户端实现，具体有四种驱动模式并各有不同的应用范围，针对不同的应用开发要选择合适的JDBC驱动，在同一个应用系统中，如果选择不同的JDBC驱动，在效率上会有差别。<br />
<br />
　　例如，有一个企业应用系统，不要求支持不同厂商的数据库，这时就可以选择模式4的JDBC驱动，该驱动一般由数据库厂商实现的基于本地协议的驱动，直接调用数据库管理系统使用的协议，减少了模式3中的中间层。<br />
<br />
　　&#183;使用JDBC连接池<br />
<br />
　　为了提高访问数据库的性能，我们还可以使用JDBC 2.0的一些规范和特性，JDBC是占用资源的，在使用数据库连接时可以使用连接池Connection Pooling，避免频繁打开、关闭Connection。而我们知道，获取Connection是比较消耗系统资源的。<br />
<br />
　　Connection缓冲池是这样工作的：当一个应用程序关闭一个数据库连接时，这个连接并不真正释放而是被循环利用，建立连接是消耗较大的操作，循环利用连接可以显著的提高性能，因为可以减少新连接的建立。<br />
<br />
　　一个通过DataSource获取缓冲池获得连接，并连接到一个CustomerDB数据源的代码演示如下：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>Context ctx = new InitialContext();<br />
            DataSource dataSource = (DataSource) ctx.lookup("jdbc/CustomerDB");<br />
            Connection conn = dataSource.getConnection("password","username");</td>
        </tr>
    </tbody>
</table>
<br />
　　&#183;缓存DataSource<br />
<br />
　　一个DataSource对象代表一个实际的数据源。这个数据源可以是从关系数据库到表格形式的文件，完全依赖于它是怎样实现的，一个数据源对象注册到JNDI名字服务后，应用程序就可以从JNDI服务器上取得该对象，并使用之和数据源建立连接。<br />
<br />
　　通过上面的例子，我们知道DataSource是从连接池获得连接的一种方式，通过JNDI方式获得，是占用资源的。<br />
<br />
　　为了避免再次的JNDI调用，可以系统中缓存要使用的DataSource。<br />
<br />
　　&#183;关闭所有使用的资源<br />
<br />
　　系统一般是并发的系统，在每次申请和使用完资源后，应该释放供别人使用，数据库资源每个模式的含义可以参考SUN JDBC的文档，不同是比较宝贵的，使用完成后应该保证彻底的释放。 <br />
<br />
　　请看下面的代码段： <br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>Connection conn = null; <br />
            Statement stmt = null; <br />
            ResultSet rs = null; <br />
            try { <br />
            　DataSource dataSource = getDataSource(); <br />
            　// 取的DataSource的方法，实现略。<br />
            　conn = datasource.getConnection(); <br />
            　stmt = conn.createStatement(); <br />
            　rs = stmt.executeQuery("SELECT * FROM ..."); <br />
            　... // 其他处理<br />
            　rs.close();<br />
            　stmt.close();<br />
            　conn.close();<br />
            }catch (SQLException ex) {<br />
            　... // 错误处理<br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　粗看似乎没有什么问题，也有关闭相关如Connection等系统资源的代码，但当出现异常后，关闭资源的代码可能并不被执行，为保证资源的确实已被关闭，应该把资源关闭的代码放到finally块：<br />
<br />
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e3e3e3" border="1" style="text-align: left; ">
    <tbody>
        <tr>
            <td>Connection conn = null; <br />
            Statement stmt = null; <br />
            ResultSet rs = null; <br />
            try { <br />
            　DataSource dataSource = getDataSource(); <br />
            　// 取的DataSource的方法，实现略。<br />
            　conn = datasource.getConnection(); <br />
            　stmt = conn.createStatement(); <br />
            　rs = stmt.executeQuery("SELECT * FROM ..."); <br />
            <br />
            　... // 其他处理<br />
            }catch (SQLException ex) { <br />
            　... // 错误处理<br />
            <br />
            }finally{ <br />
            　if (rs!=null) { <br />
            　　try { <br />
            　　　rs.close(); // 关闭ResultSet} <br />
            　　catch (SQLException ex) { <br />
            　　　... // 错误处理<br />
            　　} <br />
            　} <br />
            <br />
            　if (stmt!=null){ <br />
            　　try { <br />
            　　　stmt.close(); // 关闭Statement} <br />
            　　catch (SQLException ex) { <br />
            　　　... // 错误处理<br />
            　　} <br />
            　} <br />
            　if (conn!=null){ <br />
            　　try { <br />
            　　　conn.close(); // 关闭Connection} <br />
            　　catch (SQLException ex) { <br />
            　　　... // 错误处理<br />
            　　} <br />
            　} <br />
            }</td>
        </tr>
    </tbody>
</table>
<br />
　　&#183;大型数据量处理<br />
<br />
　　当我们在读取诸如数据列表、报表等大量数据时，可以发现使用EJB的方法是非常慢的，这时可以使用直接访问数据库的方法，用SQL直接存取数据，从而消除EJB的经常开支（例如远程方法调用、事务管理和数据序列化，对象的构造等）。<br />
<br />
　　&#183;缓存经常使用的数据<br />
<br />
　　对于构建的业务系统，如果有些数据要经常要从数据库中读取，同时，这些数据又不经常变化，这些数据就可以在系统中缓存起来，使用时直接读取缓存，而不用频繁的访问数据库读取数据。<br />
<br />
　　缓存工作可以在系统初始化时一次性读取数据，特别是一些只读的数据，当数据更新时更新数据库内容，同时更新缓存的数据值。<br />
<br />
　　一个例子是，在一套企业应用系统中，企业的信息数据（如企业的名称）在多个业务应用模块中使用，这时就可以把这些数据缓存起来，需要时直接读取缓存的企业信息数据。<br />
<br />
　　<strong>七、总结</strong><br />
<br />
　　一般意义上说，参与系统运行的代码都会对性能产生影响，实际应用中应该养成良好的编程规范、编写高质量的代码，当系统性能出现问题时，要找到主要影响性能的瓶颈所在，然后集中精力优化这些代码，能达到事半功倍的效果。<br />
<br />
　　J2EE性能的优化包括很多方面的，要达到一个性能优良的系统，除了关注代码之外，还应该根据系统实际的运行情况，从服务器软硬件环境、集群技术、系统构架设计、系统部署环境、数据结构、算法设计等方面综合考虑。
</div>
<img src ="http://www.blogjava.net/chenglu/aggbug/263861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-04-04 09:16 <a href="http://www.blogjava.net/chenglu/archive/2009/04/04/let-the-java-good.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java资料</title><link>http://www.blogjava.net/chenglu/archive/2009/04/03/Java.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 03 Apr 2009 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/04/03/Java.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/263788.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/04/03/Java.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/263788.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/263788.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 第二种，JavaBean的形式。package conn;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //导入包...&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/04/03/Java.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/263788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-04-03 17:07 <a href="http://www.blogjava.net/chenglu/archive/2009/04/03/Java.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>scrim帮助你隐藏Email地址</title><link>http://www.blogjava.net/chenglu/archive/2009/04/01/scime.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Wed, 01 Apr 2009 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/04/01/scime.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/263419.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/04/01/scime.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/263419.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/263419.html</trackback:ping><description><![CDATA[<p>Convert your email address into a short, cute and safe link you can share on the web, in Twitter, forums, raigslist, anywhere</p> <p>为什么要隐藏Email地址呢？ </p> <p>各种Email嗅探软件可以很方便地将你个人的Email地址取过去，随之发送一些代理发票等等一些无聊的邮件。</p> <p>访问地址：<a href="http://scr.im">http://scr.im</a></p> <p>My Email：<a href="http://scr.im/cheng">http://scr.im/cheng</a></p> <img src ="http://www.blogjava.net/chenglu/aggbug/263419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-04-01 17:55 <a href="http://www.blogjava.net/chenglu/archive/2009/04/01/scime.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java File创建文件夹</title><link>http://www.blogjava.net/chenglu/archive/2009/03/30/java-create-Floder.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 30 Mar 2009 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/30/java-create-Floder.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/262816.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/30/java-create-Floder.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/262816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/262816.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_40_518_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_518_Open_Text.style.display='none'; Codehighlighter1_40_518_Closed_Image.style.display='inline'; Codehighlighter1_40_518_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_40_518_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_40_518_Closed_Text.style.display='none'; Codehighlighter1_40_518_Open_Image.style.display='inline'; Codehighlighter1_40_518_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;FileClass</span><span id="Codehighlighter1_40_518_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://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_40_518_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sPath;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sFilePath;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sContent;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_131_307_Open_Image" onclick="this.style.display='none'; Codehighlighter1_131_307_Open_Text.style.display='none'; Codehighlighter1_131_307_Closed_Image.style.display='inline'; Codehighlighter1_131_307_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_131_307_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_131_307_Closed_Text.style.display='none'; Codehighlighter1_131_307_Open_Image.style.display='inline'; Codehighlighter1_131_307_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;newFloder(String&nbsp;s)</span><span id="Codehighlighter1_131_307_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://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_131_307_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sPath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sPath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sPath.toString();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;myFilePath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;File(sPath);<br />
<img id="Codehighlighter1_237_283_Open_Image" onclick="this.style.display='none'; Codehighlighter1_237_283_Open_Text.style.display='none'; Codehighlighter1_237_283_Closed_Image.style.display='inline'; Codehighlighter1_237_283_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_237_283_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_237_283_Closed_Text.style.display='none'; Codehighlighter1_237_283_Open_Image.style.display='inline'; Codehighlighter1_237_283_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">!</span><span style="color: #000000">myFilePath.exists())</span><span id="Codehighlighter1_237_283_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://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_237_283_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myFilePath.mkdirs();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_349_515_Open_Image" onclick="this.style.display='none'; Codehighlighter1_349_515_Open_Text.style.display='none'; Codehighlighter1_349_515_Closed_Image.style.display='inline'; Codehighlighter1_349_515_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_349_515_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_349_515_Closed_Text.style.display='none'; Codehighlighter1_349_515_Open_Image.style.display='inline'; Codehighlighter1_349_515_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String&nbsp;[]&nbsp;args)</span><span id="Codehighlighter1_349_515_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://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_349_515_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileClass&nbsp;file1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileClass();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">F:/TEST</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_436_475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_436_475_Open_Text.style.display='none'; Codehighlighter1_436_475_Closed_Image.style.display='inline'; Codehighlighter1_436_475_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_436_475_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_436_475_Closed_Text.style.display='none'; Codehighlighter1_436_475_Open_Image.style.display='inline'; Codehighlighter1_436_475_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(file1.newFloder(s))</span><span id="Codehighlighter1_436_475_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://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_436_475_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">文件夹创建成功！</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">文件创建失败</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<img src ="http://www.blogjava.net/chenglu/aggbug/262816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-30 09:37 <a href="http://www.blogjava.net/chenglu/archive/2009/03/30/java-create-Floder.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>经典随机数算法</title><link>http://www.blogjava.net/chenglu/archive/2009/03/26/radom.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Thu, 26 Mar 2009 09:49:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/26/radom.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/262181.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/26/radom.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/262181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/262181.html</trackback:ping><description><![CDATA[
		<font color="#999933">
				<font color="#000000">
						<span style="COLOR: #000000">java.util.Date randseed </span>
				</font>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> java.util.Date();<br /></span>
				<span style="COLOR: #000000">java.util.Random r </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">new</span>
				<span style="COLOR: #000000"> java.util.Random(randseed.getTime());</span>
				<br />唯一一直变化就是时间</font>
<img src ="http://www.blogjava.net/chenglu/aggbug/262181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-26 17:49 <a href="http://www.blogjava.net/chenglu/archive/2009/03/26/radom.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP-SmartUpload</title><link>http://www.blogjava.net/chenglu/archive/2009/03/23/jsp-smartupload.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 23 Mar 2009 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/23/jsp-smartupload.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/261467.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/23/jsp-smartupload.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/261467.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/261467.html</trackback:ping><description><![CDATA[
		<font size="2">下载地址：<br />http://www.blogjava.net/Files/chenglu/jspSmartUpload.rar<br /></font>
<img src ="http://www.blogjava.net/chenglu/aggbug/261467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-23 11:00 <a href="http://www.blogjava.net/chenglu/archive/2009/03/23/jsp-smartupload.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>优秀程序员的十个习惯(摘) </title><link>http://www.blogjava.net/chenglu/archive/2009/03/23/goodprogrammer.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Mon, 23 Mar 2009 02:33:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/23/goodprogrammer.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/261462.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/23/goodprogrammer.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/261462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/261462.html</trackback:ping><description><![CDATA[
		<div class="postTitle">
				<font size="2">在这个世界上，有数百万的人热衷于软件开发，他们有很多名字，如：软件工程师（Software Engineer），程序员（Programmer），编码人（Coder），开发人员（Developer）。经过一段时间后，这些人能够成为一个优秀的编码人员，他们非常熟悉如何用计算机语言来完成自己的工作。但是，如果你要成为一个优秀的程序员，你还可以需要有几件事你需要注意，如果你能让下面十个条目成为你的习惯，那么你才能真正算得上是优秀程序员。</font>
		</div>
		<p>
				<font size="2">1. <strong>学无止境</strong>。就算是你有了10年以上的程序员经历，你也得要使劲地学习，因为你在计算机这个充满一创造力的领域，每天都会有很多很多的新事物出现。你需要跟上时代的步伐。你需要去了解新的程序语言，以及了解正在发展中的程序语言，以及一些编程框架。还需要去阅读一些业内的新闻，并到一些热门的社区去参与在线的讨论，这样你才能明白和了解整个软件开发的趋势。在国内，一些著名的社区例如：CSDN，ITPUB，CHINAUINX等等，在国外，建议你经常上一上digg.com去看看各种BLOG的聚合。</font>
		</p>
		<p>
				<font size="2">2. <strong>掌握多种语言</strong>。程序语言总是有其最适合的领域。当你面对需要解决的问题时，你需要找到一个最适合的语言来解决这些问题。比如，如果你需要性能，可能C/C++是首选，如果你需要跨平台，可能Java是首选，如果你要写一个Web上的开发程序，那么 PHP，ASP，Ajax，JSP可能会是你的选择，如果你要处理一些文本并和别的应用交互，可能Perl, Python会是最好的。所以，花一些时间去探索一下其它你并熟悉的程序语言，能让你的眼界变宽，因为你被武装得更好，你思考问题也就更为全面，这对于自己和项目都会有好的帮助。</font>
		</p>
		<p>
				<font size="2">3. <strong>理性面对不同的操作系统或技术</strong>。程序员们总是有自己心目中无可比拟的技术和操作系统，有的人喜欢Ubuntu，有的人喜欢Debian，还有的人喜欢Windows，以及FreeBSD，MacOSX或Solaris等等。看看我的BLOG(</font>
				<a href="http://blog.csdn.net/haoel">
						<font size="2">http://blog.csdn.net/haoel</font>
				</a>
				<font size="2">)中的那篇《</font>
				<a href="http://blog.csdn.net/haoel/archive/2007/03/19/1533720.aspx" target="_blank">
						<font size="2">其实Unix很简单</font>
				</a>
				<font size="2">》后的回复你就知道程序员们在维护起自己的忠爱时的那份执着了。只有一部分优秀的程序员明白不同操作系统的优势和长处和短处，这样，在系统选型的时候，才能做到真正的客观和公正，而不会让情绪影响到自己。同样，语言也是一样，有太多的程序员总是喜欢纠缠于语言的对比，如：Java和Perl。哪个刚刚出道的程序员没有争论去类似的话题呢？比如VC++和Delphi等等。争论这些东西只能表明自己的肤浅和浮燥。优秀的程序并不会执着于这些，而是能够理性的分析和理心地面对，从而才能客观地做出正确的选择。</font>
		</p>
		<p>
				<font size="2">4. <strong>别把自己框在单一的开发环境中。</strong> 再一次，正如上面所述，每个程序员都有自己忠爱的工具和技术，有的喜欢老的（比如我就喜欢Vi编辑程序），而有的喜欢新的比如gedit或是Emacs 等。有的喜欢使用像VC++一样的调试器，而我更喜欢GDB命令行方面的调式器。等等等等。程序员在使用什么样的工具上的争论还少吗？到处都是啊。使用什么样的工具本来无所谓，只要你能更好更快地达到你的目的。但是有一点是优秀程序员都应该了解的——那就是应该去尝试一下别的工作环境。没有比较，你永远不知道谁好谁不好，你也永远不知道你所不知道的。</font>
		</p>
		<p>
				<font size="2">5. <strong>使用版本管理工具管理你的代码。</strong>千万不要告诉我你不知道源码的版本管理，如果你的团队开发的源代码并没有版本管理系统，那么我要告诉你，你的软件开发还处于石器时代。赶快使用一个版式本管理工具吧。CVS 是一个看上去平淡无奇的版本工具，但它是被使用最广的版本管理系统，Subversion 是CVS的一个升级版，其正在开始接管CVS的领地。Git 又是一个不同的版本管理工具。还有Visual SourceSafe等。使用什么样的版本管理工具依赖于你的团队的大小和地理分布，你也许正在使用最有效率或最没有效率的工具来管理你的源代码。但一个优秀的程序员总是会使用一款源码版本管理工具来管理自己的代码。如果你要我推荐一个，我推荐你使用开源的Subversion。</font>
		</p>
		<p>
				<font size="2">6. <strong>是一个优秀的团队成员。</strong> 除非你喜欢独奏，除非你是孤胆英雄。但我想告诉你，今天，可能没有一个成熟的软件是你一个人能做的到的，你可能是你团队中最牛的大拿，但这并不意味着你就是好的团队成员。你的能力只有放到一个团队中才能施展开来。你在和你的团队成员交流中有礼貌吗？你是否经常和他们沟通，并且大家都喜欢和你在一起讨论问题？想一想一个足球队吧，你是这个队中好的成员吗？当别人看到你在场上的跑动，当别人看到你的传球和接球和抢断，能受到鼓舞吗？</font>
		</p>
		<p>
				<font size="2">7. <strong>把你的工作变成文档。</strong> 这一条目当然包括了在代码中写注释，但那还仅仅不够，你还需要做得更多。有良好的注释风格的代码是一个文档的基础，他能够让你和你的团队容易的明白你的意图和想法。写下文档，并不仅仅是怕我们忘了当时的想法，而且还是一种团队的离线交流的方法，更是一种知识传递的方法。记录下你所知道的一切会是一个好的习惯。因为，我相信你不希望别人总是在你最忙的时候来打断你问问题，或是你在休假的时候接到公司的电话来询问你问题。而你自己如果老是守着自己的东西，其结果只可能是让你自己长时间地深陷在这块东西内，而你就更本不可以去做更多的事情。包括向上的晋升。你可能以为“教会徒弟能饿死师父”，但我告诉你，你的保守会让你失去更多更好的东西，请你相信我，我绝不是在这里耸人听闻。</font>
		</p>
		<p>
				<font size="2">8. <strong>注意备份和安全。</strong> 可能你觉得这是一个“废话”，你已明白了备份的重要性。但是，我还是要在这里提出，丢失东西是我们人生中的一部份，你总是会丢东西，这点你永远无法避免。比如：你的笔记本电脑被人偷了，你的硬盘损坏了，你的电脑中病毒了，你的系统被人入侵了，甚至整个大楼被烧了，等等，等等。所以，做好备份工作是非常非常重要的事情，硬盘是不可信的，所以定期的刻录光盘或是磁带可能会是一个好的方法，网络也是不可信的，所以小心病毒和黑客，不但使用软件方面的安全策略，你更需要一个健全的管理制度。此外，尽量的让你的数据放在不同的地方，并做好定期（每日，每周，每月）的备份策略。</font>
		</p>
		<p>
				<font size="2">9. <strong>设计要足够灵活。</strong> 可能你的需求只会要求你实现一个死的东西，但是，你作为一个优秀的程序，你应该随时在思考这个死的东西是否可以有灵活的一面，比如把一些参数变成可以配置的，把一些公用的东西形成你的函数库以便以后重用，是否提供插件方面的功能？你的模块是否要以像积木一样随意组合？如果要有修改的话，你的设计是否能够马上应付？当然，灵活的设计可能并不是要你去重新发明轮子，你应该尽可能是使用标准化的东西。所谓灵话的设计就是要让让考虑更多需求之外的东西，把需求中这一类的问题都考虑到，而不是只处理需求中所说的那一特定的东西。比如说，需要需要的屏幕分辨率是800×600，那么你的设计能否灵活于其他的分辨率？程序设计总是需要我们去处理不同的环境，以及未来的趋势。我们需要用动态的眼光去思考问题，而不是刻舟求剑。也许有一天，你今天写的程序就要移植到别的环境中去，那个时候你就能真正明白什么是灵活的设计了。</font>
		</p>
		<p>
				<font size="2">10. <strong>不要搬起石头砸自己的脚。</strong>程序员总是有一种不好的习惯，那就是总是想赶快地完成自己手上的工作。但情况却往往事已愿违。越是想做得快，就越是容易出问题，越是想做得快，就越是容易遗漏问题，最终，程序改过来改过去，按下葫芦起了瓢，最后花费的时间和精力反而更多。欲速而不达。优秀程序员的习惯是前面多花一些时间多作一些调查，试验一下不网的解决方案，如果时间允许，一个好的习惯是，每4个小时的编程，需要一个小时的休息，然后又是4个小时的编码。当然，这因人而异，但其目的就是让你时常回头看看，让你想一想这样三个问题：1）是否这么做是对的？2）是否这么做考虑到了所有的情况？3）是否有更好的方法？想好了再说，时常回头看看走过的路，时常总结一下过去事，会对你有很大的帮助。</font>
		</p>
		<p>
				<font size="2">以上是十条优秀程序员的习惯或行为规范，希望其可以对你有所帮助。</font>
		</p>
		<p>
				<font size="2">本文来源于网上phil的BLOG，但我在写作过程中使用了自己的语言和方法重新描述了一下这十条，所以，我希望你在转载的时候能够注明作者和出处以表示对我的尊重。谢谢！</font>
		</p>
<img src ="http://www.blogjava.net/chenglu/aggbug/261462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-23 10:33 <a href="http://www.blogjava.net/chenglu/archive/2009/03/23/goodprogrammer.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mouse Can't Click——鼠标点不住代码</title><link>http://www.blogjava.net/chenglu/archive/2009/03/22/mousecantclick.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Sun, 22 Mar 2009 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/22/mousecantclick.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/261326.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/22/mousecantclick.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/261326.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/261326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: /**/										/*																						 * mainf.java * * Created on 2009-3-22, 10:16:38 						*/																																														/** */										/**				...&nbsp;&nbsp;<a href='http://www.blogjava.net/chenglu/archive/2009/03/22/mousecantclick.html'>阅读全文</a><img src ="http://www.blogjava.net/chenglu/aggbug/261326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-22 17:30 <a href="http://www.blogjava.net/chenglu/archive/2009/03/22/mousecantclick.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>南阳理工学院软件学院Java开发团队</title><link>http://www.blogjava.net/chenglu/archive/2009/03/20/joinus.html</link><dc:creator>Java宅男</dc:creator><author>Java宅男</author><pubDate>Fri, 20 Mar 2009 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/chenglu/archive/2009/03/20/joinus.html</guid><wfw:comment>http://www.blogjava.net/chenglu/comments/261040.html</wfw:comment><comments>http://www.blogjava.net/chenglu/archive/2009/03/20/joinus.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.blogjava.net/chenglu/comments/commentRss/261040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenglu/services/trackbacks/261040.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">
						<strong>
								<font color="#ff0000">必须首先是BlogJava的注册用户<br /><font style="BACKGROUND-COLOR: #7fffd4">登陆之后</font></font>回复本贴：<br />1、是否是南阳理工学院软件学院学生<br />2、if （1=true）注明自己的班级及姓名 如：08届Java2班XXX<br />3、自己在blogjava的账号<br />4、联系方式<br />5、擅长方向<br />6、兴趣方向</strong>
				</font>
		</p>
<img src ="http://www.blogjava.net/chenglu/aggbug/261040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenglu/" target="_blank">Java宅男</a> 2009-03-20 14:49 <a href="http://www.blogjava.net/chenglu/archive/2009/03/20/joinus.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>