﻿<?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-季浩的Blog</title><link>http://www.blogjava.net/jht/</link><description>努力</description><language>zh-cn</language><lastBuildDate>Sun, 07 Sep 2008 18:39:38 GMT</lastBuildDate><pubDate>Sun, 07 Sep 2008 18:39:38 GMT</pubDate><ttl>60</ttl><item><title>支持运行时修改配置的系统Prototype</title><link>http://www.blogjava.net/jht/archive/2008/09/04/226950.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Thu, 04 Sep 2008 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/09/04/226950.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/226950.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/09/04/226950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/226950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/226950.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: log4j 支持运行时修改日志的相关配置，看了一下他的source code, 用FileWatchdog这个类来做的，代码也很简单，通过循环在一定时间间隔读取配置文件，如果文件变更，调用一个doOnChange()方法。如果自己要做一个支持运行时修改配置的系统可参考上面的做法。下面是一段支持运行时修改配置的系统Prototype代码，和log4j的做法稍有不同，使用Observer模式，使其更加...&nbsp;&nbsp;<a href='http://www.blogjava.net/jht/archive/2008/09/04/226950.html'>阅读全文</a><img src ="http://www.blogjava.net/jht/aggbug/226950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-09-04 14:49 <a href="http://www.blogjava.net/jht/archive/2008/09/04/226950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何使用log4j 运行时更改配置</title><link>http://www.blogjava.net/jht/archive/2008/09/03/226727.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Wed, 03 Sep 2008 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/09/03/226727.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/226727.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/09/03/226727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/226727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/226727.html</trackback:ping><description><![CDATA[<p>可以用下面这个方法来做到</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.log4j.Logger;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
				<span style="COLOR: #0000ff">import</span>
				<span style="COLOR: #000000"> org.apache.log4j.PropertyConfigurator;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_115_537_Open_Image" onclick="this.style.display='none'; Codehighlighter1_115_537_Open_Text.style.display='none'; Codehighlighter1_115_537_Closed_Image.style.display='inline'; Codehighlighter1_115_537_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_115_537_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_115_537_Closed_Text.style.display='none'; Codehighlighter1_115_537_Open_Image.style.display='inline'; Codehighlighter1_115_537_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span>
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> DemoRunTimeChangeLog4J </span>
				<span id="Codehighlighter1_115_537_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" />
				</span>
				<span id="Codehighlighter1_115_537_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">private</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">final</span>
						<span style="COLOR: #000000"> Logger logger </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> Logger.getLogger(DemoRunTimeChangeLog4J.</span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_245_535_Open_Image" onclick="this.style.display='none'; Codehighlighter1_245_535_Open_Text.style.display='none'; Codehighlighter1_245_535_Closed_Image.style.display='inline'; Codehighlighter1_245_535_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_245_535_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_245_535_Closed_Text.style.display='none'; Codehighlighter1_245_535_Open_Image.style.display='inline'; Codehighlighter1_245_535_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /> </span>
						<span style="COLOR: #0000ff">public</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">static</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">void</span>
						<span style="COLOR: #000000"> main(String[] args) </span>
						<span id="Codehighlighter1_245_535_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" />
						</span>
						<span id="Codehighlighter1_245_535_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  <strong><font color="#ff0000">PropertyConfigurator.configureAndWatch(</font></strong></span>
								<strong>
										<font color="#ff0000">
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">src/log4j.configureAndWatch</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">,</span>
												<span style="COLOR: #000000">60000</span>
										</font>
								</strong>
								<span style="COLOR: #000000">
										<strong>
												<font color="#9acd32">
														<font color="#ff0000">);</font>
														<br />
												</font>
										</strong>
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />  <br /><img id="Codehighlighter1_344_532_Open_Image" onclick="this.style.display='none'; Codehighlighter1_344_532_Open_Text.style.display='none'; Codehighlighter1_344_532_Closed_Image.style.display='inline'; Codehighlighter1_344_532_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_344_532_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_344_532_Closed_Text.style.display='none'; Codehighlighter1_344_532_Open_Image.style.display='inline'; Codehighlighter1_344_532_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span>
								<span style="COLOR: #0000ff">while</span>
								<span style="COLOR: #000000"> (</span>
								<span style="COLOR: #0000ff">true</span>
								<span style="COLOR: #000000">) </span>
								<span id="Codehighlighter1_344_532_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" />
								</span>
								<span id="Codehighlighter1_344_532_Open_Text">
										<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_378_418_Open_Image" onclick="this.style.display='none'; Codehighlighter1_378_418_Open_Text.style.display='none'; Codehighlighter1_378_418_Closed_Image.style.display='inline'; Codehighlighter1_378_418_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_378_418_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_378_418_Closed_Text.style.display='none'; Codehighlighter1_378_418_Open_Image.style.display='inline'; Codehighlighter1_378_418_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000"> (logger.isDebugEnabled()) </span>
										<span id="Codehighlighter1_378_418_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" />
										</span>
										<span id="Codehighlighter1_378_418_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    logger.debug(</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">DEBUG MESSAGE</span>
												<span style="COLOR: #000000">"</span>
												<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />   }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />   logger.info(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Info Message</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_461_490_Open_Image" onclick="this.style.display='none'; Codehighlighter1_461_490_Open_Text.style.display='none'; Codehighlighter1_461_490_Closed_Image.style.display='inline'; Codehighlighter1_461_490_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_461_490_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_461_490_Closed_Text.style.display='none'; Codehighlighter1_461_490_Open_Image.style.display='inline'; Codehighlighter1_461_490_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span>
										<span style="COLOR: #0000ff">try</span>
										<span style="COLOR: #000000"> </span>
										<span id="Codehighlighter1_461_490_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" />
										</span>
										<span id="Codehighlighter1_461_490_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Thread.sleep(</span>
												<span style="COLOR: #000000">5000</span>
												<span style="COLOR: #000000">);<br /><img id="Codehighlighter1_523_528_Open_Image" onclick="this.style.display='none'; Codehighlighter1_523_528_Open_Text.style.display='none'; Codehighlighter1_523_528_Closed_Image.style.display='inline'; Codehighlighter1_523_528_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_523_528_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_523_528_Closed_Text.style.display='none'; Codehighlighter1_523_528_Open_Image.style.display='inline'; Codehighlighter1_523_528_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   }</span>
										</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">catch</span>
										<span style="COLOR: #000000"> (InterruptedException e) </span>
										<span id="Codehighlighter1_523_528_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" />
										</span>
										<span id="Codehighlighter1_523_528_Open_Text">
												<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />   }</span>
										</span>
										<span style="COLOR: #000000">
												<br />
												<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span>
								</span>
								<span style="COLOR: #000000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /> }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
				<span style="COLOR: #000000">
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<br />
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
				</span>
		</div><img src ="http://www.blogjava.net/jht/aggbug/226727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-09-03 17:35 <a href="http://www.blogjava.net/jht/archive/2008/09/03/226727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[JSP] The function *** cannot be located with the specified prefix</title><link>http://www.blogjava.net/jht/archive/2008/08/19/223030.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Tue, 19 Aug 2008 07:53:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/08/19/223030.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/223030.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/08/19/223030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/223030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/223030.html</trackback:ping><description><![CDATA[自定义TagLib的时候碰到这个错误，原因是编辑tld文件的时候没有使用DTD或者Schema文件验证，拼写错误导致最终报这个错误消息<br /><br />如果遇到同样问题的同学，不妨检查一下自己的tld文件对不对。<br /><br />BTW: tld类的异常需要处理好<img src ="http://www.blogjava.net/jht/aggbug/223030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-08-19 15:53 <a href="http://www.blogjava.net/jht/archive/2008/08/19/223030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[DWR] --Erroring: batchId[1] message[org.directwebremoting.extend.MarshallException: Error marshalling ...</title><link>http://www.blogjava.net/jht/archive/2008/08/11/221245.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Mon, 11 Aug 2008 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/08/11/221245.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/221245.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/08/11/221245.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/221245.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/221245.html</trackback:ping><description><![CDATA[这个问题可能由两个地方导致<br /><br />1. 你的POJO类不是一个JavaBean，<font color="#ff0000">最可能的原因是</font><strong><font color="#ff0000">没有一个无参构造函数<br /></font></strong>2. 在dwr.xml里这个类的&lt;convert&gt;指定的不对，<strong><font color="#ff0000">或者是没有指定</font></strong><img src ="http://www.blogjava.net/jht/aggbug/221245.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-08-11 11:21 <a href="http://www.blogjava.net/jht/archive/2008/08/11/221245.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数独游戏小程序</title><link>http://www.blogjava.net/jht/archive/2008/08/02/219596.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Sat, 02 Aug 2008 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/08/02/219596.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/219596.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/08/02/219596.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/219596.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/219596.html</trackback:ping><description><![CDATA[<div id="qxd0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: center">
				<strong id="vjcd">
						<font id="g-jd" color="#0000ff">数独游戏小程序</font>
				</strong>
		</div>
		<p id="bpm9" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<strong id="g-jd0">
						<font id="g-jd1" color="#0000ff">数独的游戏规则很简单：在九个九宫格里，填入１到９的数字，让每个数字在每个行、列及九宫格里都 只出现一次就可以过关了！ 虽然游戏的规则十分简单，但很多人在没有计算机辅助时，常常会不小心造成违规状况。</font>
				</strong>
		</p>
		<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<font id="g-jd2" color="#0000ff">下面是我做的一个数独小程序 1.0 版本，目前功能如下：<br /><br /></font>
				<font id="kj34" color="#0000ff">
						<strong id="kj340">选择外观；<br /></strong>
				</font>
				<font id="kj341" color="#0000ff">
						<strong id="kj342">数独自动出题；<br /></strong>
				</font>
				<font id="kj343" color="#0000ff">
						<strong id="kj344">数独自动解题；</strong>
				</font>
				<font id="kj345" color="#0000ff">
						<strong id="kj346">
								<br />游戏计时功能；<br /></strong>
				</font>
				<font id="kj347" color="#0000ff">
						<strong id="kj348">开启解答辅助功能，出错提示；<br /></strong>
				</font>
				<font id="kj349" color="#0000ff">
						<strong id="kj3410">开启解答辅助功能，辅助线；</strong>
				</font>
		</p>
		<div id="uomx">
				<font id="uomx0" color="#0000ff">程序基于Java Swing，运行需要JRE1.6以上版本。</font>
		</div>
		<div> </div>
		<div id="sgxj">
				<font id="sgxj0" color="#0000ff">可双击执行的JAR包，<a href="/Files/jht/sudoku_v1.0.zip">点此下载</a>。（Napkin的LookAndFeel蛮好玩，我就一起弄在里面了）</font>
		</div>
		<div>
				<font id="sgxj2" color="#0000ff">程序的源码，<a href="/Files/jht/sudoku_src_v1.0.zip">点此下载</a>。（有兴趣修改源码的朋友可以DIY出自己喜欢的版本。）<br /><br />或者也可以从 <a href="http://groups.google.com/group/afun">http://groups.google.com/group/afun</a> 这个group的files里面找到上面的两个文件。<br /><br /></font>
		</div>
		<div>
				<font color="#0000ff">
				</font>
		</div>
		<div>
				<font color="#0000ff">对数独有兴趣的朋友可以玩一下这个小工具，欢迎留下宝贵意见，让这个小程序更完善。</font>
				<font id="g-jd7" color="#0000ff">可能我会另开一篇日志说一下Source Code相关的东西。</font>
		</div>
		<div id="w7.v">
				<font id="sgxj2" color="#0000ff">
				</font> </div>
		<div id="i9-27" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<a id="qxd02" href="http://docs.google.com/File?id=df29k9vs_181ggkb46c2_b" target="_blank">
						<font id="g-jd9" color="#0000ff">
								<img id="ecnk0" style="WIDTH: 777px; HEIGHT: 594px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_181ggkb46c2_b" />
						</font>
				</a>
		</div>
		<a id="o8ln" href="http://docs.google.com/File?id=df29k9vs_170jzjcrncc_b" target="_blank">
		</a>
		<div id="qxd03" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<a id="yt9i" href="http://docs.google.com/File?id=df29k9vs_170jzjcrncc_b" target="_blank">
						<font id="g-jd10" color="#0000ff">
								<img id="hnl:" style="WIDTH: 775px; HEIGHT: 596px" src="http://docs.google.com/File?id=df29k9vs_170jzjcrncc_b" />
						</font>
				</a>
		</div>
		<div id="kd9q" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<div id="eywt" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<a id="o8ln0" href="http://docs.google.com/File?id=df29k9vs_171dn28rxd4_b" target="_blank">
								<font id="g-jd11" color="#0000ff">
										<img id="o8ln1" style="WIDTH: 777px; HEIGHT: 596px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_171dn28rxd4_b" />
								</font>
						</a>
				</div>
		</div>
		<div id="lp_y" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<strong id="h1wl">
						<font id="g-jd12" color="#0000ff">Figure: 填值的出错提示</font>
				</strong>
		</div>
		<div id="h1wl0" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<a id="l3fr" href="http://docs.google.com/File?id=df29k9vs_172rzbpwntd_b" target="_blank">
						<font id="g-jd13" color="#0000ff">
								<img id="l3fr0" style="WIDTH: 779px; HEIGHT: 594px" src="http://docs.google.com/File?id=df29k9vs_172rzbpwntd_b" />
						</font>
				</a>
		</div>
		<div id="p80z" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<div id="h1wl1" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<strong id="h1wl2">
								<font id="g-jd14" color="#0000ff">Figure: 填值的出错提示2</font>
						</strong>
				</div>
				<a id="inxq" href="http://docs.google.com/File?id=df29k9vs_173dnxsggf2_b" target="_blank">
						<font id="g-jd15" color="#0000ff">
								<img id="inxq0" style="WIDTH: 777px; HEIGHT: 597px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_173dnxsggf2_b" />
						</font>
				</a>
		</div>
		<div id="hzom" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<font id="g-jd16" color="#0000ff" size="3">
						<strong id="hsel">演示如何使用辅助线功能：</strong>
				</font>
		</div>
		<div id="h1wl3" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<font id="moa4" color="#0000ff">
						<font id="g-jd17">首先选中Enable help system选项，</font>
						<font id="th:0">然后选择按钮 1 ，这时候关于 1 的辅助线开启，把不能填1的单元格都画了线，画线规则是，1所在的行画桃红色横线，1所在的列画橙色竖线，1所在的九宫格画粉色X线，如下图，这时候我们发现，在第五行只有第二列这一单元格格没有被画上线，那么这一个肯定只能填上1。</font>
				</font>
		</div>
		<div id="h1wl4" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<a id="inxq1" href="http://docs.google.com/File?id=df29k9vs_174gm47d6fv_b" target="_blank">
						<font id="g-jd18" color="#0000ff">
								<img id="inxq2" style="WIDTH: 776px; HEIGHT: 592px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_174gm47d6fv_b" />
						</font>
				</a>
		</div>
		<div id="b9.t" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<font id="g-jd19" color="#0000ff">这时候我们就可以把1填入到 第五行第二列，这时辅助线会自动更新。如下图，此时没有可以确定填入1的单元格了，我们可以换一个数看辅助线。</font>
		</div>
		<div id="ao3e" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
				<a id="obkd" href="http://docs.google.com/File?id=df29k9vs_175dw4h9ddw_b" target="_blank">
						<font id="g-jd20" color="#0000ff">
								<img id="obkd0" style="WIDTH: 777px; HEIGHT: 598px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_175dw4h9ddw_b" />
						</font>
				</a>
		</div>
		<div id="obkd1">
				<font id="g-jd21" color="#0000ff"> OK，我们选择3，这时候辅助线如下，我们发现第五行第四格可以确定填入3这个值。</font>
				<a id="b.m9" href="http://docs.google.com/File?id=df29k9vs_176htn8ggd2_b" target="_blank">
						<font id="g-jd22" color="#0000ff">
								<img id="b.m90" style="WIDTH: 775px; HEIGHT: 594px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_176htn8ggd2_b" />
						</font>
				</a>
		</div>
		<div id="obkd2">
				<div id="svk4" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<font id="g-jd23" color="#0000ff">填入3之后的图如下:</font>
				</div>
				<div id="svk40" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<a id="c3b9" href="http://docs.google.com/File?id=df29k9vs_177ct52vddz_b" target="_blank">
								<font id="g-jd24" color="#0000ff">
										<img id="c3b90" style="WIDTH: 777px; HEIGHT: 596px" src="http://docs.google.com/File?id=df29k9vs_177ct52vddz_b" />
								</font>
						</a>
				</div>
				<div id="lqgb" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<font id="g-jd25" color="#0000ff">解答成功之后，会弹出恭喜解答成功的对话框。</font>
						<a id="mk_p1" href="http://docs.google.com/File?id=df29k9vs_179fbfchk3q_b" target="_blank">
								<font id="g-jd26" color="#0000ff">
										<img id="mk_p2" style="WIDTH: 775px; HEIGHT: 596px" src="http://docs.google.com/File?id=df29k9vs_179fbfchk3q_b" />
								</font>
						</a>
				</div>
				<div id="lg9l0" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<font id="g-jd27" color="#0000ff" size="3">
								<strong id="pi4j">自动解答功能可能出现的异常情况</strong>
						</font>
				</div>
				<div id="lg9l1" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<font id="g-jd28" color="#0000ff">当题目比较复杂的时候，可能会弹出如下的提示异常的对话框，这是因为解答数独用了递归的解法，难度大时递归深度很深，导致栈溢出，可以通过运行JVM时指定线程栈大小的方法来解决这个问题。</font>
				</div>
				<div id="lg9l2" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<a id="f..." href="http://docs.google.com/File?id=df29k9vs_180zgq446d7_b" target="_blank">
								<font id="g-jd29" color="#0000ff">
										<img id="f...0" style="WIDTH: 775px; HEIGHT: 596px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_180zgq446d7_b" />
								</font>
						</a>
				</div>
				<div id="v1lf" style="PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; PADDING-TOP: 1em; TEXT-ALIGN: left">
						<a id="wvay" href="http://docs.google.com/File?id=df29k9vs_183hck9qfc9_b" target="_blank">
								<font id="g-jd30" color="#0000ff">
										<img id="wvay0" style="WIDTH: 479px; HEIGHT: 251px; cssFloat: " src="http://docs.google.com/File?id=df29k9vs_183hck9qfc9_b" />
								</font>
						</a>
				</div>
		</div><img src ="http://www.blogjava.net/jht/aggbug/219596.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-08-02 17:32 <a href="http://www.blogjava.net/jht/archive/2008/08/02/219596.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>new &amp; valueof &amp; 直接赋值的区别</title><link>http://www.blogjava.net/jht/archive/2008/07/28/218060.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Mon, 28 Jul 2008 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/07/28/218060.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/218060.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/07/28/218060.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/218060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/218060.html</trackback:ping><description><![CDATA[<div id="f894" style="TEXT-ALIGN: center">
				<strong id="imfo">new &amp; valueof &amp; 直接赋值的区别</strong>
		</div>
		<div id="f8940" style="TEXT-ALIGN: left">首先来看下面这段代码</div>
		<div id="u1oh" style="TEXT-ALIGN: left">public static void main(String[] args) {<br id="u1oh0" /><font id="thzr" style="BACKGROUND-COLOR: #ffd966">  String s1 = "s1";<br id="u1oh1" /></font><font id="thzr0" style="BACKGROUND-COLOR: #00ff00">  String s2 = new String("s2");<br id="u1oh2" /></font><font id="thzr1" style="BACKGROUND-COLOR: #00ffff"><font id="izcs" style="BACKGROUND-COLOR: #ff00ff">  String s3 = String.valueOf(12345);</font><br id="u1oh3" /></font>}</div>
		<div id="u1oh4" style="TEXT-ALIGN: left"> </div>
		<div id="kgq7" style="TEXT-ALIGN: left">编译成class文件之后，使用eclipse class file viewer查看</div>
		<div id="rr95" style="TEXT-ALIGN: left"> </div>
		<div id="xjex" style="TEXT-ALIGN: left">  // Method descriptor #15 ([Ljava/lang/String;)V<br id="xjex0" />  // Stack: 3, Locals: 4<br id="xjex1" />  public static void main(java.lang.String[] args);<br id="xjex2" /><font id="s5tx" style="BACKGROUND-COLOR: #ffd966">     0  ldc &lt;String "s1"&gt; [16]<br id="xjex3" />     2  astore_1 [s1]</font><br id="xjex4" /><font id="thzr2" style="BACKGROUND-COLOR: #00ff00">     3  new java.lang.String [18]<br id="xjex5" />     6  dup<br id="xjex6" />     7  ldc &lt;String "s2"&gt; [20]<br id="xjex7" />     9  invokespecial java.lang.String(java.lang.String) [22]<br id="xjex8" />    12  astore_2 [s2]<br id="xjex9" /></font><font id="r12c" style="BACKGROUND-COLOR: #00ffff"><font id="izcs0" style="BACKGROUND-COLOR: #ff00ff">    13  sipush 12345<br id="xjex10" />    16  invokestatic java.lang.String.valueOf(int) : java.lang.String [25]<br id="xjex11" />    19  astore_3 [s3]</font><br id="xjex12" /></font>    20  return<br id="xjex13" />      Line numbers:<br id="xjex14" />        [pc: 0, line: 12]<br id="xjex15" />        [pc: 3, line: 13]<br id="xjex16" />        [pc: 13, line: 14]<br id="xjex17" />        [pc: 20, line: 20]<br id="xjex18" />      Local variable table:<br id="xjex19" />        [pc: 0, pc: 21] local: args index: 0 type: java.lang.String[]<br id="xjex20" />        [pc: 3, pc: 21] local: s1 index: 1 type: java.lang.String<br id="xjex21" />        [pc: 13, pc: 21] local: s2 index: 2 type: java.lang.String<br id="xjex22" />        [pc: 20, pc: 21] local: s3 index: 3 type: java.lang.String<br id="xjex23" />}</div>
		<div id="c:d_" style="TEXT-ALIGN: left"> </div>
		<div id="c:d_0" style="TEXT-ALIGN: left">对于第一行代码 <font id="izyt" style="BACKGROUND-COLOR: #ffd966">String s1 = "s1";</font> 编译成字节码之后，对应两条指令，</div>
		<ol id="advv">
				<li id="advv0">
						<div id="advv1" style="TEXT-ALIGN: left">ldc指令从运行时常量池push一个值到Frame的操作数栈上面，这个值在这里就是"s1"字符串的引用，</div>
				</li>
				<li id="advv2">
						<div id="advv3" style="TEXT-ALIGN: left">astore指令将objectref存储到局部变量，这里也就是存储到局部变量s1。</div>
				</li>
		</ol>
		<div id="s64u" style="TEXT-ALIGN: left"> </div>
		<div id="i8_d" style="TEXT-ALIGN: left">对于第二行代码 <font id="pgqb" style="BACKGROUND-COLOR: #00ff00">  String s2 = new String("s2");<font id="rpma" style="BACKGROUND-COLOR: #ffffff"></font></font><font id="pgqb0" style="BACKGROUND-COLOR: #ffffff">编译成字节码之后，对于的指令也用高亮标注出来了，这里把操作数栈的情况画了出来，希望能帮助理解。橙色标注的为栈顶元素。</font></div>
		<ol id="advv4">
				<li id="advv5">
						<div id="advv6" style="TEXT-ALIGN: left">
								<font id="advv7" style="BACKGROUND-COLOR: #ffffff">new指令会在堆上创建对象，操作数栈里压入创建的objectref, 
<div id="rck6">  
<div id="atyh"><table id="r29i" bordercolor="#0000ff" cellspacing="0" cellpadding="3" bgcolor="#9fc5e8" border="1"><tbody id="atyh0"><tr id="atyh1"><td id="atyh2" width="100%"><font id="zsm2" style="BACKGROUND-COLOR: #ffffff"></font></td></tr><tr id="atyh3"><td id="atyh4" width="100%"><font id="zsm20" style="BACKGROUND-COLOR: #ffffff"></font></td></tr><tr id="atyh5"><td id="atyh6" width="100%"><font id="zsm21" style="BACKGROUND-COLOR: #ffffff"></font></td></tr><tr id="atyh7" bgcolor="#ff9900"><td id="atyh8" width="100%"><font id="wo73" style="BACKGROUND-COLOR: #ff9900">objectref</font></td></tr><tr id="atyh9"><td id="atyh10" width="100%">...</td></tr></tbody></table></div></div></font>
						</div>
				</li>
				<li id="advv8">
						<div id="advv9" style="TEXT-ALIGN: left">
								<font id="advv10" style="BACKGROUND-COLOR: #ffffff">dup指令复制操作数栈顶的元素，  
<div id="fuw1"><table id="fuw10" bordercolor="#0000ff" cellspacing="0" cellpadding="3" bgcolor="#9fc5e8" border="1"><tbody id="fuw11"><tr id="fuw12"><td id="fuw13" width="100%"></td></tr><tr id="fuw14"><td id="fuw15" width="100%"></td></tr><tr id="fuw16" bgcolor="#ff9900"><td id="fuw17" width="100%">objectref</td></tr><tr id="fuw18"><td id="fuw19" width="100%">objectref</td></tr><tr id="fuw110"><td id="fuw111" width="100%">...</td></tr></tbody></table></div></font>
						</div>
				</li>
				<li id="advv11">
						<div id="advv12" style="TEXT-ALIGN: left">
								<font id="advv13" style="BACKGROUND-COLOR: #ffffff">ldc指令依然是从常量池push一个值到Frame的操作数栈上，这个值是"s2"字符串的引用。  
<div id="c9d5"><table id="c9d50" bordercolor="#0000ff" cellspacing="0" cellpadding="3" bgcolor="#9fc5e8" border="1"><tbody id="c9d51"><tr id="c9d52"><td id="c9d53" width="100%"></td></tr><tr id="c9d54" bgcolor="#ff9900"><td id="c9d55" width="100%">"s2"_ref</td></tr><tr id="c9d56"><td id="c9d57" width="100%">objectref</td></tr><tr id="c9d58"><td id="c9d59" width="100%">objectref</td></tr><tr id="c9d510"><td id="c9d511" width="100%">...</td></tr></tbody></table></div></font>
						</div>
				</li>
				<li id="qzzo">
						<div id="qzzo0" style="TEXT-ALIGN: left">invokespecial 指令调用一个方法，这里就是调用String的构造函数，调用完成之后栈上还有一个objectref  
<div id="c9d512"><table id="c9d513" bordercolor="#0000ff" cellspacing="0" cellpadding="3" bgcolor="#9fc5e8" border="1"><tbody id="c9d514"><tr id="c9d515"><td id="c9d516" width="100%"></td></tr><tr id="c9d517"><td id="c9d518" width="100%"></td></tr><tr id="c9d519"><td id="c9d520" width="100%"></td></tr><tr id="c9d521" bgcolor="#ff9900"><td id="c9d522" width="100%">objectref</td></tr><tr id="c9d523"><td id="c9d524" width="100%">...</td></tr></tbody></table></div></div>
				</li>
				<li id="ub2u">
						<div id="ub2u0" style="TEXT-ALIGN: left">astore指令将objectref存储到局部变量，这里也就是存储到局部变量s2。  
<div id="c9d525"><table id="c9d526" bordercolor="#0000ff" cellspacing="0" cellpadding="3" bgcolor="#9fc5e8" border="1"><tbody id="c9d527"><tr id="c9d528"><td id="c9d529" width="100%"></td></tr><tr id="c9d530"><td id="c9d531" width="100%"></td></tr><tr id="c9d532"><td id="c9d533" width="100%"></td></tr><tr id="c9d534"><td id="c9d535" width="100%">             </td></tr><tr id="c9d536" bgcolor="#ff9900"><td id="c9d537" width="100%">...</td></tr></tbody></table></div></div>
				</li>
		</ol>
		<div id="s64u0" style="TEXT-ALIGN: left"> </div>
		<div id="mtac" style="TEXT-ALIGN: left">对于第三行代码<font id="mtac0" style="BACKGROUND-COLOR: #ff00ff">  String s3 = String.valueOf(12345); </font>编译成字节码之后对应的指令，</div>
		<ol id="b36n">
				<li id="b36n0">
						<div id="b36n1" style="TEXT-ALIGN: left">sipush 将 12345 压栈</div>
				</li>
				<li id="b36n2">
						<div id="b36n3" style="TEXT-ALIGN: left">invokestatic 调用 String.valueof(int) 方法</div>
				</li>
				<li id="tk_g">
						<div id="tk_g0" style="TEXT-ALIGN: left">astore 将栈顶的对象引用存储到本地变量s3 （这里不再深究这个栈顶元素是怎么来的了）</div>
				</li>
		</ol>
		<div id="zmvg" style="TEXT-ALIGN: left"> </div>
		<div id="wdqm" style="TEXT-ALIGN: left">PMD检查代码的时候，有这样的warning: <font id="qx9b0" style="BACKGROUND-COLOR: #ffff00"><em id="poft"><strong id="poft0">Avoid instantiating String objects.Call String.valueOf() instead. </strong></em><font id="poft1" style="BACKGROUND-COLOR: #ffffff">PMD给出的原因是<font id="wdqm0" style="BACKGROUND-COLOR: #ffffff"><strong id="wdqm1">In JDK 1.5, calling new String() causes memory allocation. String.valueOf() is more memory friendly.</strong></font></font></font></div>
		<div id="wdqm3" style="TEXT-ALIGN: left"> </div>
		<div id="wdqm4" style="TEXT-ALIGN: left">
				<strong>经过上面的分解，我们应该知道原因了，以后写代码的时候，初始化一个字符串，<font id="gzql0" style="BACKGROUND-COLOR: #ffd966">  String s1 = "s1"; </font>这样的代码肯定比<font id="al2m" style="BACKGROUND-COLOR: #00ff00">  String s2 = new String("s2");</font><font id="al2m0" style="BACKGROUND-COLOR: #ffffff">代码强，将其他类型的值转换成String的时候，valueof方法比new方法效率也高。</font></strong>
				<br id="al2m1" />
		</div>
		<div id="zmvg0" style="TEXT-ALIGN: left">
				<br /> </div>
		<div id="p3j:" style="TEXT-ALIGN: left">备注：</div>
		<div id="s64u1" style="TEXT-ALIGN: left">A <i id="aqjc">frame</i> is used to store data and partial results（局部变量，操作数栈）, as well as to perform dynamic linking , return values for methods, and dispatch exceptions.</div>
		<div id="aqjc0" style="TEXT-ALIGN: left"> </div>
		<div id="aqjc1" style="TEXT-ALIGN: left">ldc指令的操作数栈: ...-&gt;...,value (value是int,float 或者 string 类型的引用)</div>
		<div id="s64u2" style="TEXT-ALIGN: left">astore的操作数栈: ...,objectref-&gt;...</div>
		<div id="qppp" style="TEXT-ALIGN: left">new指令的操作数栈: ...-&gt;...,objectref</div>
		<div id="p3j:0" style="TEXT-ALIGN: left">dup指令的操作数栈: ...,value-&gt;...,value,value</div>
		<div id="wjte" style="TEXT-ALIGN: left">invokespecial的操作数栈: ...,objectref, <em id="fr0c">[agr1,[arg2...]]</em>-&gt;...</div>
		<div id="dl:h" style="TEXT-ALIGN: left">invloestatic的操作数栈:...<em id="dl:h0">, [</em><i id="dl:h1">arg1</i><em id="dl:h2">, [</em><i id="dl:h3">arg2</i><em id="dl:h4"></em>...<em id="dl:h5">]] -&gt;</em> ...</div>
		<div id="ng7f0" style="TEXT-ALIGN: left">
				<br /> </div>
		<div id="p3j:1" style="TEXT-ALIGN: left">如果要理解的更透彻建议阅读以下参考资料：</div>
		<div id="qzlj" style="TEXT-ALIGN: left">
				<a id="qzlj0" title="The Structure of the Java Virtual Machine" href="http://java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html#17257" target="_blank">The Structure of the Java Virtual Machine</a>
		</div>
		<div id="p3j:2" style="TEXT-ALIGN: left">
				<a id="qzlj1" title="JVM Instructions" href="http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc8.html" target="_blank">JVM Instructions</a>
		</div><img src ="http://www.blogjava.net/jht/aggbug/218060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-07-28 14:27 <a href="http://www.blogjava.net/jht/archive/2008/07/28/218060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>输入框如何获得输入焦点</title><link>http://www.blogjava.net/jht/archive/2008/07/22/216602.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Tue, 22 Jul 2008 06:34:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/07/22/216602.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/216602.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/07/22/216602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/216602.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/216602.html</trackback:ping><description><![CDATA[<p>
				<strong>java.awt.Component.requestFocusInWindow</strong>
		</p><img src ="http://www.blogjava.net/jht/aggbug/216602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-07-22 14:34 <a href="http://www.blogjava.net/jht/archive/2008/07/22/216602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>截图程序 MyScreenSnap Version 2.0</title><link>http://www.blogjava.net/jht/archive/2008/07/02/211974.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Wed, 02 Jul 2008 01:17:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/07/02/211974.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/211974.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/07/02/211974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/211974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/211974.html</trackback:ping><description><![CDATA[<a href="/Files/jht/MyScreenSnap_2.0.zip">http://www.blogjava.net/Files/jht/MyScreenSnap_2.0.zip</a>
		<br />
		<br />截图程序，设计目标：简单易用<br /><br />支持全屏截图和选择截图，运行需要JRE1.5以上版本<br /><br />在1.0版<a href="/Files/jht/MyScreenSnap.zip">http://www.blogjava.net/Files/jht/MyScreenSnap.zip</a>的基础上，<br /><br />   * 修改了一下主界面，增加图片保存为BMP，GIF，JPG，PNG格式的功能<br /><br />   * 参考了<a href="/hadeslee/archive/2007/08/30/141208.html">千里冰封的代码</a>，加上了调整选择区域的功能<br /><br />Source Code已经包含在压缩包里面了，有兴趣的可以down下来改改。<br /><br />下面是1.0版本和2.0版本的两个界面。<br /><br /><img height="403" alt="1.0vs2.0.png" src="http://www.blogjava.net/images/blogjava_net/jht/1.0vs2.0.png" width="254" border="0" /><br /><img src ="http://www.blogjava.net/jht/aggbug/211974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-07-02 09:17 <a href="http://www.blogjava.net/jht/archive/2008/07/02/211974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Data type mismatch in criteria expression. 条件表达式中数据类型不匹配 </title><link>http://www.blogjava.net/jht/archive/2008/05/19/191063.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Mon, 19 May 2008 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/05/19/191063.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/191063.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/05/19/191063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/191063.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/191063.html</trackback:ping><description><![CDATA[其实是个简单的小问题，仅在此做个记录。<br /><br />遇到这个问题的不妨读一下这篇文章先：Access查询和过滤条件 <a href="http://www.fontstuff.com/access/acctut06.htm">http://www.fontstuff.com/access/acctut06.htm</a><br /><br />我遇到的报错语句如下：<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; 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" /><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000"> monitor_table </span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000"> logoffTime </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">2008-04-06 16:58:54</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">, keyClickCount </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">17</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">where</span><span style="COLOR: #000000"> userName </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">abcd</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">and</span><span style="COLOR: #000000"> logonTime </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">2008-04-06 16:56:36</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span></div><br />读了上面的文章，知道 <font style="BACKGROUND-COLOR: #ff1493"><font style="BACKGROUND-COLOR: #ffff00">MS Access的时间分隔符号为 # ，而 MS SQL Server的时间分隔符为 ' </font><br /></font><br />所以正确的语句应该是：<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; 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" /><span style="COLOR: #0000ff">update</span><span style="COLOR: #000000"> monitor_table </span><span style="COLOR: #0000ff">set</span><span style="COLOR: #000000"> logoffTime </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">2008-04-06 16:58:54</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">, keyClickCount </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">17</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">where</span><span style="COLOR: #000000"> userName </span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">abcd</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">and</span><span style="COLOR: #000000"> logonTime </span><span style="COLOR: #808080">=</span><span style="COLOR: #000000">#</span><span style="FONT-WEIGHT: bold; COLOR: #800000">2008</span><span style="COLOR: #808080">-</span><span style="FONT-WEIGHT: bold; COLOR: #800000">04</span><span style="COLOR: #808080">-</span><span style="FONT-WEIGHT: bold; COLOR: #800000">06</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">16</span><span style="COLOR: #000000">:</span><span style="FONT-WEIGHT: bold; COLOR: #800000">56</span><span style="COLOR: #000000">:</span><span style="FONT-WEIGHT: bold; COLOR: #800000">36</span><span style="COLOR: #000000"># </span></div><br /><img src ="http://www.blogjava.net/jht/aggbug/191063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-05-19 15:39 <a href="http://www.blogjava.net/jht/archive/2008/05/19/191063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XMLType API for PL/SQL</title><link>http://www.blogjava.net/jht/archive/2008/05/19/201395.html</link><dc:creator>jht</dc:creator><author>jht</author><pubDate>Mon, 19 May 2008 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/jht/archive/2008/05/19/201395.html</guid><wfw:comment>http://www.blogjava.net/jht/comments/201395.html</wfw:comment><comments>http://www.blogjava.net/jht/archive/2008/05/19/201395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jht/comments/commentRss/201395.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jht/services/trackbacks/201395.html</trackback:ping><description><![CDATA[<a href="http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96616/arxml24.htm">http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96616/arxml24.htm</a><img src ="http://www.blogjava.net/jht/aggbug/201395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jht/" target="_blank">jht</a> 2008-05-19 15:38 <a href="http://www.blogjava.net/jht/archive/2008/05/19/201395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>