﻿<?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-Colorful Day</title><link>http://www.blogjava.net/blueoxygen/</link><description>Blue keywords,Green comment,Red breakpoint,my life is also colorful</description><language>zh-cn</language><lastBuildDate>Thu, 08 Jan 2009 04:52:25 GMT</lastBuildDate><pubDate>Thu, 08 Jan 2009 04:52:25 GMT</pubDate><ttl>60</ttl><item><title>拉拉</title><link>http://www.blogjava.net/blueoxygen/archive/2006/07/31/61090.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Mon, 31 Jul 2006 14:47:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/07/31/61090.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/61090.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/07/31/61090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/61090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/61090.html</trackback:ping><description><![CDATA[
		<div>
				<div>整理P大点儿的硬盘空间居然整理出来俺曾经做过的几个东东，哎呀，想当年啊……成长历程啊。</div>
				<div>
						<strong>第一个正把经的个人网站的首页</strong>
						<br />
						<img height="375" alt="" src="http://static.flickr.com/61/202748474_4e6b86bdc9.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/74/202747182_e5b2a927f2.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div> <strong>进步了一些的第二版个人主页<br /><img height="375" alt="" src="http://static.flickr.com/57/202773273_62ec7e9ba6.jpg?v=0" width="500" onload="show_notes_initially();" /></strong></div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/78/202773274_650bd53bcc.jpg?v=0" width="500" onload="show_notes_initially();" />
						<br />
						<strong>又做了一些小东东而且跟着DFLYING大虾学会PHP以后，开始接校内的小活做……一个团委旗下网站</strong>
				</div>
				<div>
						<div style="DISPLAY: none; Z-INDEX: 1002">
								<table style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 200px; PADDING-TOP: 0px" cellspacing="0" cellpadding="0" border="0">
										<tbody>
												<tr>
														<td width="3">
																<img height="3" src="http://www.flickr.com/images/tc_white_tl.gif" width="3" />
														</td>
														<td>
														</td>
														<td>
														</td>
														<td width="3">
																<img height="3" src="http://www.flickr.com/images/tc_white_tr.gif" width="3" />
														</td>
												</tr>
												<tr>
														<td>
														</td>
														<td style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 3px" valign="top" width="1">
																<img height="15" src="http://www.flickr.com/images/pulser2.gif" width="32" border="0" />
														</td>
														<td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 12px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px; FONT-FAMILY: arial">
																<div>
																</div>
																<div style="DISPLAY: none">
																</div>
																<div style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN-TOP: 10px; DISPLAY: none; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid">
																		<div style="WIDTH: 300px; HEIGHT: 15px">
																				<div style="WIDTH: 0%; HEIGHT: 100%; BACKGROUND-COLOR: #ff0084">
																				</div>
																		</div>
																</div>
														</td>
														<td>
														</td>
												</tr>
												<tr>
														<td>
														</td>
														<td>
														</td>
														<td style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; PADDING-TOP: 3px">
																<nobr>
																</nobr>
														</td>
														<td>
														</td>
												</tr>
												<tr>
														<td>
																<img height="3" src="http://www.flickr.com/images/tc_white_bl.gif" width="3" />
														</td>
														<td>
														</td>
														<td>
														</td>
														<td>
																<img height="3" src="http://www.flickr.com/images/tc_white_br.gif" width="3" />
														</td>
												</tr>
										</tbody>
								</table>
						</div>
						<div style="DISPLAY: none; Z-INDEX: 1003">
								<table style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 218px; PADDING-TOP: 0px" cellspacing="0" cellpadding="0" border="0">
										<tbody>
												<tr>
														<td width="3">
																<img height="3" src="http://www.flickr.com/images/tc_white_tl.gif" width="3" />
														</td>
														<td>
														</td>
														<td width="3">
																<img height="3" src="http://www.flickr.com/images/tc_white_tr.gif" width="3" />
														</td>
												</tr>
												<tr>
														<td>
														</td>
														<td style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; HEIGHT: 155px">
																<span style="FONT-SIZE: 12px; FONT-FAMILY: arial">
																</span>
														</td>
														<td>
														</td>
												</tr>
												<tr>
														<td>
																<img height="3" src="http://www.flickr.com/images/tc_white_bl.gif" width="3" />
														</td>
														<td>
														</td>
														<td>
																<img height="3" src="http://www.flickr.com/images/tc_white_br.gif" width="3" />
														</td>
												</tr>
										</tbody>
								</table>
						</div>
						<div style="DISPLAY: none; Z-INDEX: 999">
								<table style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px" cellspacing="0" cellpadding="0" border="0">
										<tbody>
												<tr>
														<td width="11">
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
														<td>
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="100%" />
														</td>
														<td width="11">
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
												</tr>
												<tr>
														<td height="30">
																<img height="100%" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
														<td>
														</td>
														<td>
																<img height="100%" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
												</tr>
												<tr>
														<td>
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
														<td>
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="100%" />
														</td>
														<td>
																<img height="11" src="http://blueoxygencn.spaces.msn.com/images/spaceball.gif" width="11" />
														</td>
												</tr>
										</tbody>
								</table>
						</div>
						<div style="WIDTH: 502px">
								<img height="375" alt="" src="http://static.flickr.com/64/202779910_3df8908bc2.jpg?v=0" width="500" onload="show_notes_initially();" />
						</div>
				</div>
				<div>
						<strong>加入Enwell.net开始栏目制作。其中一个，Enwell商城。</strong>
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/65/202779911_d661afbc81.jpg?v=0" width="500" onload="show_notes_initially();" />
						<br />
						<strong>成立Enwell Studio</strong>
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/71/202795927_94caf5cf71.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<strong>做的第一个商业网站，反而不知道咋做了</strong>
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/57/202795928_4f2644f4c0.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<strong>又陆续写了一些PHP以后，进入Hywave多媒体开始写Delphi和ASP.NET，为hywave改版提出两套方案</strong>
						<br />
						<img height="375" alt="" src="http://static.flickr.com/76/202795929_de6e30f149.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/78/202795930_97bb10dd30.jpg?v=0" width="500" onload="show_notes_initially();" />
						<img height="375" alt="" src="http://static.flickr.com/59/202795931_8ae6cf68f2.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<img height="357" alt="" src="http://static.flickr.com/77/202795932_6fcac3aa67.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<strong>ASP.NET写了一些，包括一个巨恶心的OA以后开始和差沙，范例华写J2ME，要不是因为期末没时间了，俺们相信疯狂坦克对打网络版肯定能产出，差沙小伙儿一个星期就把是男人就下一百层从无到有写出来了(以前从来不做JAVA何况J2ME)</strong>
						<br />
						<img height="375" alt="" src="http://static.flickr.com/67/202804016_6655aba9c0.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<img height="375" alt="" src="http://static.flickr.com/76/202804019_76f3787021.jpg?v=0" width="500" onload="show_notes_initially();" />
				</div>
				<div>
						<strong>开始写DELPHI以后俺就成了一个职业的程序员了，和页面没关系了……就走进了JAVA的世界。也不知道现在开始写SAP ABAP是不是对得起自己。sigh，好多东西翻不到了，都是大学逃课的心血啊……</strong>
				</div>
		</div>
<img src ="http://www.blogjava.net/blueoxygen/aggbug/61090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-07-31 22:47 <a href="http://www.blogjava.net/blueoxygen/archive/2006/07/31/61090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RSS订阅服务扩展</title><link>http://www.blogjava.net/blueoxygen/archive/2006/07/27/60293.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 27 Jul 2006 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/07/27/60293.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/60293.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/07/27/60293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/60293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/60293.html</trackback:ping><description><![CDATA[
		<div>我很早以前便开始使用<a href="http://www.bloglines.com/"><u><font color="#800080">bloglines</font></u></a>的订阅服务。<a href="http://http//www.bloglines.com/public/blueoxygen"><u><font color="#0000ff">在那里</font></u></a>我订阅了很多常去的技术站点和一些朋友们的blog，使用总发现了一些不便之处也产生了自己的一些想法，今天偶然看keso的一篇blog发现了<a href="http://www.zhuaxia.com/"><u><font color="#0000ff">抓虾网</font></u></a>以及<a href="http://www.rojo.com/"><u><font color="#0000ff">rojo</font></u></a>，眼前为之一亮，很多想法，这两个网站已经替我实现了。<br /><span style="FONT-WEIGHT: bold">rss订阅服务衍生的门户<br /></span>在bloglines这样的纯粹订阅服务来说，用户群的大小，用户群订阅的内容的相似度，用户的阅读频率对网站产生不了任何贡献。这实在是大大的浪费。我当时就想，如果在每个种子旁边有个方便的"顶"也就是digg it功能，那么，将用户顶的最多的story聚合起来，分门别类，这就是一个<a href="http://dzone.com/"><u><font color="#0000ff">dzone.com</font></u></a>这样的网站啊。现在类似dzone以及更加出名的<a href="http://www.digg.com/"><u><font color="#0000ff">digg</font></u></a>我都认为是rss订阅服务网站的失败之处，他们完全有优势快速聚合出来一个这样的小型门户。现在<a href="http://www.zhuaxia.com/"><u><font color="#0000ff">抓虾网</font></u></a>以及<a href="http://www.rojo.com/"><u><font color="#0000ff">rojo</font></u></a>都有这样的服务了，也都由此衍生出了一个热文排行样式的东西，但是我感觉做得还不够，这样太杂。泛泛的讲内容一列。应该根绝用户订阅时此feed的tag做分析，整理出来分类，做类似daqi.com或者qihoo.com一样的布局。<br /><span style="FONT-WEIGHT: bold">rss订阅衍生出来的朋友圈<br /></span>web20有一点很重要，就是社会网络。就拿<a href="http://www.douban.com/"><u><font color="#0000ff">豆瓣网</font></u></a>来说，我通过豆瓣提供的以书会友的功能认识了几个志趣相投的朋友。豆瓣会根据你喜欢读的书，看的电影，听得音乐，推荐给你和你兴趣相投的人，rss订阅也应该这样。比如Bloglines可以查看都有谁订阅了这个feed，可是为什么不更近一步，将两个人的订阅内容作比较，做匹配呢？通过在你的网站提供的 rss订阅服务我可以认识朋友，这也是网站粘性之一。否则像我现在可以毫无顾忌的从bloglines搬家到rojo和抓虾网。而更多自取相同的人可以组成圈子。甚至衍生更广一点，大家通过查看你的profile，浏览你的Blog，决定跟你做朋友的时候，你会得到一个vote的分数，在朋友圈的聚合门户上排名考前，这个不就是<a href="http://www.linkst.com/"><u><font color="#0000ff">联络家</font></u></a>么？<br /><span style="FONT-WEIGHT: bold">推荐给我其他读物</span><br />当我用豆瓣的时候，还有一个功能特别贴心，就是它会推荐给我相类似的图书。比如我读兄弟，它会在旁边给我推荐活着，许三关卖血等等……rss的小门户，可以根据每个人的兴趣不同，推荐在此类别中背digg次数最多的blog给我，省得我总是感慨:哎呀，怎么没早点看到这个网站呢？<br /><span style="FONT-WEIGHT: bold">信息筛选</span><br />订阅了好多rss feed的人都有此种经历，那就是有的时候忙，你好久没看了，突然以上来，成百上千的新条目，当即晕倒。贴心的筛选是很必要的，rss订阅服务网站完全可以根据其他用户的digg rank来按照重要程度给我排序，大家认为重要的先看，大家认为不重要的后看……我想，群众的眼睛还是雪亮的。<br /><span style="FONT-WEIGHT: bold">冗余的剔除</span><br />订阅了大量rss的人来说，有一些种子可能已经坏掉了，或者作者更新频率很低，或者过了一段时间以后，你已经不太认为那个对你有价值了(这个可以从你digg it和收藏的频率来判断)，但是因为我们进行了大量的订阅，要把它剔除需要花费时间的。RSS订阅服务只需要替订阅者看着点坏掉的种子，统计下订阅者对其的关注度，然后建议剔除哪些没有价值的feed，这将给我带来巨大的方便。<br /><span style="FONT-WEIGHT: bold">抓虾与rojo相比bloglines的改进</span><br />rojo有一点很好，当你大开一个feed的时候，他们显示的是title，只有当点击小十字查看具体内容，它才认为你读过了，下次你再打开这个种子，这个条目便不会显示出来。之前用bloglines有的条目很多，一天可能看不完，下一次再打开就看不到了，因为你之前的打开被bloglines认为是阅读过的表现。而有些条目我们认为是很有价值的，rojo和抓虾都提供了收藏的功能。此外rojo对bloglines对feed死板的分类功能进行了改善，替代的是tag，就是说一个feed可以属于多个tag，你甚至可以对条目进行tag，这样更加有利于小门户分门别类的聚合。<br /><span style="FONT-WEIGHT: bold">更进一步<br /></span>我一直感觉blog的互动性还不够，这个不动不是指comment。而是无法像BBS一样，对一个讨论形成一个有主线的跟进。大家对一些东西都有自己的看法，可是都是零敲碎打，自己说自己的，对别人的想法可能不了解。仅仅靠track back是无法串联起来的。如果你的rss订阅服务能够有足够的粘性，那么用户基本都从你这里获得信息，当他要发表对某个条目的看法，让用户登陆他自己的 Blog，快捷的引用到自己的blog里面，而订阅服务网站将通过某种方式将用户的评论内容得到。这样，将众多的用户的内容整理出来，类似BBS讨论的形式，聚合在门户里。这样，Blog之间才形成了有效的互动。可惜，这个想法，似乎还不知道怎么实现。<br /><span style="FONT-WEIGHT: bold">我的页面&amp;&amp;个人门户<br /></span>几乎这种rss订阅服务网站都提供我收藏的feed的展示，我感觉这个是不够的。而还应该展示的则是跟我上面所说的有联系的，最近digg的条目，最近收藏的条目，以及我最近评论的条目，以及我的朋友圈等等。这才形成了真正的“我的页面”。<br />用keso的话说，rss阅读器的技术门槛很高啊。</div>
<img src ="http://www.blogjava.net/blueoxygen/aggbug/60293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-07-27 10:26 <a href="http://www.blogjava.net/blueoxygen/archive/2006/07/27/60293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从codes学java tiger之varargs</title><link>http://www.blogjava.net/blueoxygen/archive/2006/06/26/55211.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Mon, 26 Jun 2006 12:25:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/06/26/55211.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/55211.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/06/26/55211.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/55211.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/55211.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 id="Codehighlighter1_20_555_Open_Image" onclick="this.style.display='none'; Codehighlighter1_20_555_Open_Text.style.display='none'; Codehighlighter1_20_555_Closed_Image.style.display='inline'; Codehighlighter1_20_555_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_20_555_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_20_555_Closed_Text.style.display='none'; Codehighlighter1_20_555_Open_Image.style.display='inline'; Codehighlighter1_20_555_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> Artist </span>
				<span id="Codehighlighter1_20_555_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_20_555_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" />    String[] others;<br /><img id="Codehighlighter1_52_90_Open_Image" onclick="this.style.display='none'; Codehighlighter1_52_90_Open_Text.style.display='none'; Codehighlighter1_52_90_Closed_Image.style.display='inline'; Codehighlighter1_52_90_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_52_90_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_52_90_Closed_Text.style.display='none'; Codehighlighter1_52_90_Open_Image.style.display='inline'; Codehighlighter1_52_90_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_52_90_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_52_90_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> Creates a new instance of Artist </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_112_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_118_Open_Text.style.display='none'; Codehighlighter1_112_118_Closed_Image.style.display='inline'; Codehighlighter1_112_118_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_112_118_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_112_118_Closed_Text.style.display='none'; Codehighlighter1_112_118_Open_Image.style.display='inline'; Codehighlighter1_112_118_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"> Artist() </span>
						<span id="Codehighlighter1_112_118_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_112_118_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 id="Codehighlighter1_168_289_Open_Image" onclick="this.style.display='none'; Codehighlighter1_168_289_Open_Text.style.display='none'; Codehighlighter1_168_289_Closed_Image.style.display='inline'; Codehighlighter1_168_289_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_168_289_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_168_289_Closed_Text.style.display='none'; Codehighlighter1_168_289_Open_Image.style.display='inline'; Codehighlighter1_168_289_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"> Artist(String name,String <img src="http://www.blogjava.net/images/dot.gif" /> others)</span>
						<span id="Codehighlighter1_168_289_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_168_289_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_204_253_Open_Image" onclick="this.style.display='none'; Codehighlighter1_204_253_Open_Text.style.display='none'; Codehighlighter1_204_253_Closed_Image.style.display='inline'; Codehighlighter1_204_253_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_204_253_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_204_253_Closed_Text.style.display='none'; Codehighlighter1_204_253_Open_Image.style.display='inline'; Codehighlighter1_204_253_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000">(String other : others)</span>
								<span id="Codehighlighter1_204_253_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_204_253_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(other);<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" />        </span>
								<span style="COLOR: #0000ff">this</span>
								<span style="COLOR: #000000">.others </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> others;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_337_387_Open_Image" onclick="this.style.display='none'; Codehighlighter1_337_387_Open_Text.style.display='none'; Codehighlighter1_337_387_Closed_Image.style.display='inline'; Codehighlighter1_337_387_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_337_387_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_337_387_Closed_Text.style.display='none'; Codehighlighter1_337_387_Open_Image.style.display='inline'; Codehighlighter1_337_387_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">void</span>
						<span style="COLOR: #000000"> wildestMethod(Object <img src="http://www.blogjava.net/images/dot.gif" /> objs)</span>
						<span id="Codehighlighter1_337_387_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_337_387_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">this method will accept any arguments</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />
								</span>
								<span style="COLOR: #000000">    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_431_548_Open_Image" onclick="this.style.display='none'; Codehighlighter1_431_548_Open_Text.style.display='none'; Codehighlighter1_431_548_Closed_Image.style.display='inline'; Codehighlighter1_431_548_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_431_548_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_431_548_Closed_Text.style.display='none'; Codehighlighter1_431_548_Open_Image.style.display='inline'; Codehighlighter1_431_548_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_431_548_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_431_548_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Artist artist </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> Artist(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">You</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        artist.wildestMethod(</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #000000">3.5</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">AA</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">, </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> Artist());<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/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/blueoxygen/aggbug/55211.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-06-26 20:25 <a href="http://www.blogjava.net/blueoxygen/archive/2006/06/26/55211.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从code学习java tiger之自动装箱 拆箱</title><link>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54554.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 22 Jun 2006 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54554.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/54554.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/54554.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/54554.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 id="Codehighlighter1_24_2037_Open_Image" onclick="this.style.display='none'; Codehighlighter1_24_2037_Open_Text.style.display='none'; Codehighlighter1_24_2037_Closed_Image.style.display='inline'; Codehighlighter1_24_2037_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_24_2037_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_2037_Closed_Text.style.display='none'; Codehighlighter1_24_2037_Open_Image.style.display='inline'; Codehighlighter1_24_2037_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> AutoBoxing </span>
				<span id="Codehighlighter1_24_2037_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_24_2037_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    <br /><img id="Codehighlighter1_35_77_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_77_Open_Text.style.display='none'; Codehighlighter1_35_77_Closed_Image.style.display='inline'; Codehighlighter1_35_77_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_35_77_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_77_Closed_Text.style.display='none'; Codehighlighter1_35_77_Open_Image.style.display='inline'; Codehighlighter1_35_77_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_35_77_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_35_77_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> Creates a new instance of AutoBoxing </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_103_109_Open_Image" onclick="this.style.display='none'; Codehighlighter1_103_109_Open_Text.style.display='none'; Codehighlighter1_103_109_Closed_Image.style.display='inline'; Codehighlighter1_103_109_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_103_109_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_103_109_Closed_Text.style.display='none'; Codehighlighter1_103_109_Open_Image.style.display='inline'; Codehighlighter1_103_109_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"> AutoBoxing() </span>
						<span id="Codehighlighter1_103_109_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_103_109_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 id="Codehighlighter1_139_425_Open_Image" onclick="this.style.display='none'; Codehighlighter1_139_425_Open_Text.style.display='none'; Codehighlighter1_139_425_Closed_Image.style.display='inline'; Codehighlighter1_139_425_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_139_425_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_139_425_Closed_Text.style.display='none'; Codehighlighter1_139_425_Open_Image.style.display='inline'; Codehighlighter1_139_425_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">void</span>
						<span style="COLOR: #000000"> boxingDemo()</span>
						<span id="Codehighlighter1_139_425_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_139_425_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">auto boxing</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        Integer i </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">float</span>
								<span style="COLOR: #000000"> f </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1.66f</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Float F </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> f;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">auto unboxing</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        Integer I </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> Integer(</span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> i2 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> I;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">null value test, it will case NullPointerException</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        Integer I2 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">null</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> i3 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> I2;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_457_607_Open_Image" onclick="this.style.display='none'; Codehighlighter1_457_607_Open_Text.style.display='none'; Codehighlighter1_457_607_Closed_Image.style.display='inline'; Codehighlighter1_457_607_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_457_607_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_457_607_Closed_Text.style.display='none'; Codehighlighter1_457_607_Open_Image.style.display='inline'; Codehighlighter1_457_607_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">void</span>
						<span style="COLOR: #000000"> testOperator()</span>
						<span id="Codehighlighter1_457_607_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_457_607_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Integer i </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_501_601_Open_Image" onclick="this.style.display='none'; Codehighlighter1_501_601_Open_Text.style.display='none'; Codehighlighter1_501_601_Closed_Image.style.display='inline'; Codehighlighter1_501_601_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_501_601_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_501_601_Closed_Text.style.display='none'; Codehighlighter1_501_601_Open_Image.style.display='inline'; Codehighlighter1_501_601_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_501_601_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_501_601_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            i</span>
										<span style="COLOR: #000000">++</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Counter:</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">+</span>
										<span style="COLOR: #000000">i);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">if</span>
										<span style="COLOR: #000000">(i</span>
										<span style="COLOR: #000000">&gt;</span>
										<span style="COLOR: #000000">5</span>
										<span style="COLOR: #000000">) </span>
										<span style="COLOR: #0000ff">break</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 id="Codehighlighter1_638_1067_Open_Image" onclick="this.style.display='none'; Codehighlighter1_638_1067_Open_Text.style.display='none'; Codehighlighter1_638_1067_Closed_Image.style.display='inline'; Codehighlighter1_638_1067_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_638_1067_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_638_1067_Closed_Text.style.display='none'; Codehighlighter1_638_1067_Open_Image.style.display='inline'; Codehighlighter1_638_1067_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">void</span>
						<span style="COLOR: #000000"> testCompare()</span>
						<span id="Codehighlighter1_638_1067_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_638_1067_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">it's equal because -127~127 are immutable objects</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        Integer i </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Integer i2 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(i </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> i2) System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">1:Equal</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">1:Not Equal</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">it's not equal because j and j2 are different objects</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        Integer j </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">200</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Integer j2 </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">200</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(j </span>
								<span style="COLOR: #000000">==</span>
								<span style="COLOR: #000000"> j2) System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">200:Equal</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">200:Not Equal</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 id="Codehighlighter1_1098_1327_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1098_1327_Open_Text.style.display='none'; Codehighlighter1_1098_1327_Closed_Image.style.display='inline'; Codehighlighter1_1098_1327_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1098_1327_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1098_1327_Closed_Text.style.display='none'; Codehighlighter1_1098_1327_Open_Image.style.display='inline'; Codehighlighter1_1098_1327_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">void</span>
						<span style="COLOR: #000000"> testControl()</span>
						<span id="Codehighlighter1_1098_1327_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_1098_1327_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Boolean flag </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">true</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Integer i </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">20</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Integer j </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">30</span>
								<span style="COLOR: #000000">;<br /><img id="Codehighlighter1_1193_1254_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1193_1254_Open_Text.style.display='none'; Codehighlighter1_1193_1254_Closed_Image.style.display='inline'; Codehighlighter1_1193_1254_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1193_1254_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1193_1254_Closed_Text.style.display='none'; Codehighlighter1_1193_1254_Open_Image.style.display='inline'; Codehighlighter1_1193_1254_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">(flag)</span>
								<span id="Codehighlighter1_1193_1254_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_1193_1254_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Boolean affects</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" />        </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000">(i</span>
								<span style="COLOR: #000000">&lt;</span>
								<span style="COLOR: #000000">j)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">Integer affects</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 id="Codehighlighter1_1367_1450_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1367_1450_Open_Text.style.display='none'; Codehighlighter1_1367_1450_Closed_Image.style.display='inline'; Codehighlighter1_1367_1450_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1367_1450_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1367_1450_Closed_Text.style.display='none'; Codehighlighter1_1367_1450_Open_Image.style.display='inline'; Codehighlighter1_1367_1450_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">void</span>
						<span style="COLOR: #000000"> testMethod(</span>
						<span style="COLOR: #0000ff">double</span>
						<span style="COLOR: #000000"> arg)</span>
						<span id="Codehighlighter1_1367_1450_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_1367_1450_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">public void testMethod(double arg) is invoked</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 id="Codehighlighter1_1491_1576_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1491_1576_Open_Text.style.display='none'; Codehighlighter1_1491_1576_Closed_Image.style.display='inline'; Codehighlighter1_1491_1576_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1491_1576_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1491_1576_Closed_Text.style.display='none'; Codehighlighter1_1491_1576_Open_Image.style.display='inline'; Codehighlighter1_1491_1576_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">void</span>
						<span style="COLOR: #000000"> testMethod(Integer arg)</span>
						<span id="Codehighlighter1_1491_1576_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_1491_1576_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">public void testMethod2(Integer arg) is invoked</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 id="Codehighlighter1_1620_2030_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1620_2030_Open_Text.style.display='none'; Codehighlighter1_1620_2030_Closed_Image.style.display='inline'; Codehighlighter1_1620_2030_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1620_2030_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1620_2030_Closed_Text.style.display='none'; Codehighlighter1_1620_2030_Open_Image.style.display='inline'; Codehighlighter1_1620_2030_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_1620_2030_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_1620_2030_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        AutoBoxing auto </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> AutoBoxing();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        auto.testCompare();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        auto.testOperator();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        auto.testControl();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> i </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> public void testMethod(Integer arg) wouldn't be invoked<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">because  public void testMethod(double arg) will be invoked in JDK1.4<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">Java tiger consider the backward capability</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">        auto.testMethod(i);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        auto.boxingDemo();<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/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/blueoxygen/aggbug/54554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-06-22 18:34 <a href="http://www.blogjava.net/blueoxygen/archive/2006/06/22/54554.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从code学习java tiger 之 枚举</title><link>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54550.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 22 Jun 2006 10:22:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54550.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/54550.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/06/22/54550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/54550.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/54550.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 id="Codehighlighter1_17_51_Open_Image" onclick="this.style.display='none'; Codehighlighter1_17_51_Open_Text.style.display='none'; Codehighlighter1_17_51_Closed_Image.style.display='inline'; Codehighlighter1_17_51_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_17_51_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_17_51_Closed_Text.style.display='none'; Codehighlighter1_17_51_Open_Image.style.display='inline'; Codehighlighter1_17_51_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">enum</span>
				<span style="COLOR: #000000"> User </span>
				<span id="Codehighlighter1_17_51_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_17_51_Open_Text">
						<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Admin,User,Guest,Unknown   <br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
		<br />
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Codehighlighter1_19_1262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_19_1262_Open_Text.style.display='none'; Codehighlighter1_19_1262_Closed_Image.style.display='inline'; Codehighlighter1_19_1262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" />
				<img id="Codehighlighter1_19_1262_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_19_1262_Closed_Text.style.display='none'; Codehighlighter1_19_1262_Open_Image.style.display='inline'; Codehighlighter1_19_1262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />
				<span style="COLOR: #0000ff">public</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">class</span>
				<span style="COLOR: #000000"> Login </span>
				<span id="Codehighlighter1_19_1262_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_19_1262_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"> User user;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    EnumMap</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">User,String</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000"> userName </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #0000ff">new</span>
						<span style="COLOR: #000000"> EnumMap</span>
						<span style="COLOR: #000000">&lt;</span>
						<span style="COLOR: #000000">User, String</span>
						<span style="COLOR: #000000">&gt;</span>
						<span style="COLOR: #000000">(User.</span>
						<span style="COLOR: #0000ff">class</span>
						<span style="COLOR: #000000">);<br /><img id="Codehighlighter1_128_165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_165_Open_Text.style.display='none'; Codehighlighter1_128_165_Closed_Image.style.display='inline'; Codehighlighter1_128_165_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_128_165_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_128_165_Closed_Text.style.display='none'; Codehighlighter1_128_165_Open_Image.style.display='inline'; Codehighlighter1_128_165_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span>
						<span id="Codehighlighter1_128_165_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</span>
						<span id="Codehighlighter1_128_165_Open_Text">
								<span style="COLOR: #008000">/**</span>
								<span style="COLOR: #008000"> Creates a new instance of Login </span>
								<span style="COLOR: #008000">*/</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_186_328_Open_Image" onclick="this.style.display='none'; Codehighlighter1_186_328_Open_Text.style.display='none'; Codehighlighter1_186_328_Closed_Image.style.display='inline'; Codehighlighter1_186_328_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_186_328_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_186_328_Closed_Text.style.display='none'; Codehighlighter1_186_328_Open_Image.style.display='inline'; Codehighlighter1_186_328_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"> Login() </span>
						<span id="Codehighlighter1_186_328_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_186_328_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        userName.put(User.Admin, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">Administrator</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        userName.put(User.User, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">David</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        userName.put(User.Guest, </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">Steve</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 id="Codehighlighter1_367_467_Open_Image" onclick="this.style.display='none'; Codehighlighter1_367_467_Open_Text.style.display='none'; Codehighlighter1_367_467_Closed_Image.style.display='inline'; Codehighlighter1_367_467_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_367_467_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_367_467_Closed_Text.style.display='none'; Codehighlighter1_367_467_Open_Image.style.display='inline'; Codehighlighter1_367_467_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">boolean</span>
						<span style="COLOR: #000000"> isAdmin(User user)</span>
						<span id="Codehighlighter1_367_467_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_367_467_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_404_439_Open_Image" onclick="this.style.display='none'; Codehighlighter1_404_439_Open_Text.style.display='none'; Codehighlighter1_404_439_Closed_Image.style.display='inline'; Codehighlighter1_404_439_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_404_439_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_404_439_Closed_Text.style.display='none'; Codehighlighter1_404_439_Open_Image.style.display='inline'; Codehighlighter1_404_439_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">(user.equals(User.Admin))</span>
								<span id="Codehighlighter1_404_439_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_404_439_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">return</span>
										<span style="COLOR: #000000"> </span>
										<span style="COLOR: #0000ff">true</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" />        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">false</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 id="Codehighlighter1_500_637_Open_Image" onclick="this.style.display='none'; Codehighlighter1_500_637_Open_Text.style.display='none'; Codehighlighter1_500_637_Closed_Image.style.display='inline'; Codehighlighter1_500_637_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_500_637_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_500_637_Closed_Text.style.display='none'; Codehighlighter1_500_637_Open_Image.style.display='inline'; Codehighlighter1_500_637_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">void</span>
						<span style="COLOR: #000000"> printUserRole()</span>
						<span id="Codehighlighter1_500_637_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_500_637_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        User[] users </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> user.values();<br /><img id="Codehighlighter1_575_631_Open_Image" onclick="this.style.display='none'; Codehighlighter1_575_631_Open_Text.style.display='none'; Codehighlighter1_575_631_Closed_Image.style.display='inline'; Codehighlighter1_575_631_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_575_631_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_575_631_Closed_Text.style.display='none'; Codehighlighter1_575_631_Open_Image.style.display='inline'; Codehighlighter1_575_631_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000">(User u : user.values())</span>
								<span id="Codehighlighter1_575_631_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_575_631_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(u.toString());<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 id="Codehighlighter1_672_1051_Open_Image" onclick="this.style.display='none'; Codehighlighter1_672_1051_Open_Text.style.display='none'; Codehighlighter1_672_1051_Closed_Image.style.display='inline'; Codehighlighter1_672_1051_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_672_1051_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_672_1051_Closed_Text.style.display='none'; Codehighlighter1_672_1051_Open_Image.style.display='inline'; Codehighlighter1_672_1051_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">void</span>
						<span style="COLOR: #000000"> isRole(User user)</span>
						<span id="Codehighlighter1_672_1051_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_672_1051_Open_Text">
								<span style="COLOR: #000000">{<br /><img id="Codehighlighter1_694_1045_Open_Image" onclick="this.style.display='none'; Codehighlighter1_694_1045_Open_Text.style.display='none'; Codehighlighter1_694_1045_Closed_Image.style.display='inline'; Codehighlighter1_694_1045_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_694_1045_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_694_1045_Closed_Text.style.display='none'; Codehighlighter1_694_1045_Open_Image.style.display='inline'; Codehighlighter1_694_1045_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span>
								<span style="COLOR: #0000ff">switch</span>
								<span style="COLOR: #000000">(user)</span>
								<span id="Codehighlighter1_694_1045_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_694_1045_Open_Text">
										<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">case</span>
										<span style="COLOR: #000000"> Admin:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">admin</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">break</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">case</span>
										<span style="COLOR: #000000"> User:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">User</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">break</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">case</span>
										<span style="COLOR: #000000"> Guest:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">Guest</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                </span>
										<span style="COLOR: #0000ff">break</span>
										<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            </span>
										<span style="COLOR: #0000ff">default</span>
										<span style="COLOR: #000000">:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                System.out.println(</span>
										<span style="COLOR: #000000">"</span>
										<span style="COLOR: #000000">unknow</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/ExpandedSubBlockEnd.gif" align="top" />    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img id="Codehighlighter1_1095_1255_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1095_1255_Open_Text.style.display='none'; Codehighlighter1_1095_1255_Closed_Image.style.display='inline'; Codehighlighter1_1095_1255_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" />
								<img id="Codehighlighter1_1095_1255_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1095_1255_Closed_Text.style.display='none'; Codehighlighter1_1095_1255_Open_Image.style.display='inline'; Codehighlighter1_1095_1255_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_1095_1255_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_1095_1255_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        Login login </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> Login();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(login.isAdmin(User.Admin));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        login.printUserRole();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        login.isRole(User.User);<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/ExpandedBlockEnd.gif" align="top" />}</span>
				</span>
		</div>
<img src ="http://www.blogjava.net/blueoxygen/aggbug/54550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-06-22 18:22 <a href="http://www.blogjava.net/blueoxygen/archive/2006/06/22/54550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从codes学java tiger之范型</title><link>http://www.blogjava.net/blueoxygen/archive/2006/06/20/54045.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Tue, 20 Jun 2006 10:18:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/06/20/54045.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/54045.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/06/20/54045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/54045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/54045.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: public				 				class				 Generic 																								{        						/** */														/**								 Creates a new instance of Generic 								*/																				...&nbsp;&nbsp;<a href='http://www.blogjava.net/blueoxygen/archive/2006/06/20/54045.html'>阅读全文</a><img src ="http://www.blogjava.net/blueoxygen/aggbug/54045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-06-20 18:18 <a href="http://www.blogjava.net/blueoxygen/archive/2006/06/20/54045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Hibernate Performance Tuning</title><link>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35579.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 16 Mar 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35579.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/35579.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/35579.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/35579.html</trackback:ping><description><![CDATA[    <p><strong><font size="2">Hibernate and Lazy Initialization</font></strong> </p><p><font size="2">Hibernate object relational mapping offers both lazy and non-lazy modes of object initialization. Non-lazy initialization retrieves an object and all of its related objects at load time. This can result in hundreds if not thousands of select statements when retrieving one entity. The problem is compounded when bi-directional relationships are used, often causing entire databases to be loaded during the initial request. Of course one could tediously examine each object relationship and manually remove those most costly, but in the end, we may be losing the ease of use benefit sought in using the ORM tool. </font></p><p><font size="2">The obvious solution is to employ the lazy loading mechanism provided by hibernate. This initialization strategy only loads an object's one-to-many and many-to-many relationships when these fields are accessed. The scenario is practically transparent to the developer and a minimum amount of database requests are made, resulting in major performance gains. One drawback to this technique is that lazy loading requires the Hibernate session to remain open while the data object is in use. This causes a major problem when trying to abstract the persistence layer via the Data Access Object pattern. In order to fully abstract the persistence mechanism, all database logic, including opening and closing sessions, must not be performed in the application layer. Most often, this logic is concealed behind the DAO implementation classes which implement interface stubs. The quick and dirty solution is to forget the DAO pattern and include database connection logic in the application layer. This works for small applications but in large systems this can prove to be a major design flaw, hindering application extensibility.</font> </p><br/><link rel="stylesheet" type="text/css" href="http://blueoxygen.dflying.net/plugins/plogeshi/styles/plogeshi.css" /><p><strong><font size="2">Being Lazy in the Web Layer</font></strong> </p>
<p><font size="2">Fortunately for us, the Spring Framework has developed an out of box web solution for using the DAO pattern in combination with Hibernate lazy loading. For anyone not familiar with using the <a href="http://www.springframework.org/"><font color="#4a664d">Spring Framework</font></a> in combination with <a href="http://www.hibernate.org/"><font color="#4a664d">Hibernate</font></a>, I will not go into the details here, but I encourage you to read <a href="http://www.hibernate.org/110.html"><font color="#4a664d">Hibernate Data Access with the Spring Framework</font></a>. In the case of a web application, Spring comes with both the <a href="http://www.springframework.org/docs/api/org/springframework/orm/hibernate/support/OpenSessionInViewFilter.html"><font color="#4a664d">OpenSessionInViewFilter</font></a> and the <a href="http://www.springframework.org/docs/api/org/springframework/orm/hibernate/support/OpenSessionInViewInterceptor.html"><font color="#4a664d">OpenSessionInViewInterceptor</font></a>. One can use either one interchangeably as both serve the same function. The only difference between the two is the interceptor runs within the Spring container and is configured within the web application context while the Filter runs in front of Spring and is configured within the web.xml. Regardless of which one is used, they both open the hibernate session during the request binding this session to the current thread. Once bound to the thread, the open hibernate session can transparently be used within the DAO implementation classes. The session will remain open for the view allowing lazy access the database value objects. Once the view logic is complete, the hibernate session is closed either in the Filter doFilter method or the Interceptor postHandle method. Below is an example of the configuration of each component: </font></p>
<p><strong><font size="1">Interceptor Configuration</font></strong> </p>
</p>
<pre class="code"><span class="sc3"><span class="re1">&lt;beans<span class="re2">&gt;</span></span></span> 
  <span class="sc3"><span class="re1">&lt;bean</span> <span class="re0">id</span>=<span class="st0">"urlMapping"</span>     
     <span class="re0">class</span>=<span class="st0">"org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"</span><span class="re2">&gt;</span></span>    
       <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"interceptors"</span><span class="re2">&gt;</span></span>
         <span class="sc3"><span class="re1">&lt;list<span class="re2">&gt;</span></span></span>
              <span class="sc3"><span class="re1">&lt;ref</span> <span class="re0">bean</span>=<span class="st0">"openSessionInViewInterceptor"</span><span class="re2">/&gt;</span></span>
         <span class="sc3"><span class="re1">&lt;/list<span class="re2">&gt;</span></span></span>
       <span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
       <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"mappings"</span><span class="re2">&gt;</span></span>
  ...
  <span class="sc3"><span class="re1">&lt;/bean<span class="re2">&gt;</span></span></span>
  ...
  <span class="sc3"><span class="re1">&lt;bean</span> <span class="re0">name</span>=<span class="st0">"openSessionInViewInterceptor"</span>  
    <span class="re0">class</span>=<span class="st0">"org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor"</span><span class="re2">&gt;</span></span>
       <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"sessionFactory"</span><span class="re2">&gt;</span></span><span class="sc3"><span class="re1">&lt;ref</span> <span class="re0">bean</span>=<span class="st0">"sessionFactory"</span><span class="re2">/&gt;</span></span><span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/bean<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/beans<span class="re2">&gt;</span></span></span>
&nbsp;</pre>
<p>
<p><strong><font size="1">Filter Configuration</font></strong></p>
</p>
<pre class="code"><span class="sc3"><span class="re1">&lt;web</span>-app<span class="re2">&gt;</span></span>
 ...      
  <span class="sc3"><span class="re1">&lt;filter<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;filter</span>-name<span class="re2">&gt;</span></span>hibernateFilter<span class="sc3"><span class="re1">&lt;/filter</span>-name<span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;filter</span>-class<span class="re2">&gt;</span></span>
      org.springframework.orm.hibernate.support.OpenSessionInViewFilter
    <span class="sc3"><span class="re1">&lt;/filter</span>-class<span class="re2">&gt;</span></span>
   <span class="sc3"><span class="re1">&lt;/filter<span class="re2">&gt;</span></span></span>
  ...      
  <span class="sc3"><span class="re1">&lt;filter</span>-mapping<span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;filter</span>-name<span class="re2">&gt;</span></span>hibernateFilter<span class="sc3"><span class="re1">&lt;/filter</span>-name<span class="re2">&gt;</span></span>
     <span class="sc3"><span class="re1">&lt;url</span>-pattern<span class="re2">&gt;</span></span>*.spring<span class="sc3"><span class="re1">&lt;/url</span>-pattern<span class="re2">&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;/filter</span>-mapping<span class="re2">&gt;</span></span>
  ...
<span class="sc3"><span class="re1">&lt;/web</span>-app<span class="re2">&gt;</span></span></pre>
<p>
<p><font size="2">Implementing the Hibernate DAO's to use the open session is simple. In fact, if you are already using the Spring Framework to implement your Hibernate DAO's, most likely you will not have to change a thing. The DAO's must access Hibernate through the convenient HibernateTemplate utility, which makes database access a piece of cake. Below is an example DAO.</font></p>
<p><strong><font size="1">Example DAO</font></font /></strong></p>
</p>
<pre class="code"><span class="kw2">public</span> <span class="kw2">class</span> HibernateProductDAO <span class="kw2">extends</span> HibernateDaoSupport <span class="kw2">implements</span> ProductDAO  <span class="br0">&#123;</span>      
&nbsp;
       <span class="kw2">public</span> Product getProduct<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AInteger+java.sun.com&bntl=1"><span class="kw3">Integer</span></a> productId<span class="br0">&#41;</span> <span class="br0">&#123;</span>
              <span class="kw2">return</span> <span class="br0">&#40;</span>Product<span class="br0">&#41;</span>getHibernateTemplate<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">load</span><span class="br0">&#40;</span>Product.<span class="me1">class</span>, productId<span class="br0">&#41;</span>;
       <span class="br0">&#125;</span>
&nbsp;
       <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AInteger+java.sun.com&bntl=1"><span class="kw3">Integer</span></a> saveProduct<span class="br0">&#40;</span>Product product<span class="br0">&#41;</span> <span class="br0">&#123;</span>
              <span class="kw2">return</span> <span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AInteger+java.sun.com&bntl=1"><span class="kw3">Integer</span></a><span class="br0">&#41;</span> getHibernateTemplate<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">save</span><span class="br0">&#40;</span>product<span class="br0">&#41;</span>;
       <span class="br0">&#125;</span>       
&nbsp;
       <span class="kw2">public</span> <span class="kw4">void</span> updateProduct<span class="br0">&#40;</span>Product product<span class="br0">&#41;</span> <span class="br0">&#123;</span>
              getHibernateTemplate<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">update</span><span class="br0">&#40;</span>product<span class="br0">&#41;</span>;
       <span class="br0">&#125;</span>
 <span class="br0">&#125;</span></pre>
<p><p><font size="2"><strong>Being Lazy in the Business Layer</strong> </font></p>
<p><font size="2">Even outside the view, the Spring Framework makes it easy to use lazy load initialization, through the AOP interceptor HibernateInterceptor. The hibernate interceptor transparently intercepts calls to any business object configured in the Spring application context, opening a hibernate session before the call, and closing the session afterward. Let's run through a quick example. Suppose we have an interface BusinessObject:</font> </p>
</p>
<pre class="code"><span class="kw2">public</span> <span class="kw2">interface</span> BusinessObject <span class="br0">&#123;</span> 
     <span class="kw2">public</span> <span class="kw4">void</span> doSomethingThatInvolvesDaos<span class="br0">&#40;</span><span class="br0">&#41;</span>; 
<span class="br0">&#125;</span>&lt;/pre&gt;&lt;p&gt;&lt;font size=<span class="st0">"2"</span>&gt;The <span class="kw2">class</span> BusinessObjectImpl <span class="kw2">implements</span> BusinessObject:&lt;/font&gt;&lt;/p&gt;
&lt;p /&gt;
&lt;pre&gt;public <span class="kw2">class</span> BusinessObjectImpl <span class="kw2">implements</span> BusinessObject <span class="br0">&#123;</span>
    <span class="kw2">public</span> <span class="kw4">void</span> doSomethingThatInvolvesDaos<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="co1">// lots of logic that calls</span>
        <span class="co1">// DAO classes Which access </span>
        <span class="co1">// data objects lazily</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
<p><p><font size="2">Through some configurations in the Spring application context, we can instruct the HibernateInterceptor to intercept calls to the BusinessObjectImpl allowing it's methods to lazily access data objects. Take a look at the fragment below: </font></p>
</p>
<pre class="code"><span class="sc3"><span class="re1">&lt;beans<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;bean</span> <span class="re0">id</span>=<span class="st0">"hibernateInterceptor"</span> <span class="re0">class</span>=<span class="st0">"org.springframework.orm.hibernate.HibernateInterceptor"</span><span class="re2">&gt;</span></span>
         <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"sessionFactory"</span><span class="re2">&gt;</span></span>
           <span class="sc3"><span class="re1">&lt;ref</span> <span class="re0">bean</span>=<span class="st0">"sessionFactory"</span><span class="re2">/&gt;</span></span>
         <span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/bean<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;bean</span> <span class="re0">id</span>=<span class="st0">"businessObjectTarget"</span> <span class="re0">class</span>=<span class="st0">"com.acompany.BusinessObjectImpl"</span><span class="re2">&gt;</span></span>
       <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"someDAO"</span><span class="re2">&gt;</span></span><span class="sc3"><span class="re1">&lt;ref</span> <span class="re0">bean</span>=<span class="st0">"someDAO"</span><span class="re2">/&gt;</span></span><span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;/bean<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;bean</span> <span class="re0">id</span>=<span class="st0">"businessObject"</span> <span class="re0">class</span>=<span class="st0">"org.springframework.aop.framework.ProxyFactoryBean"</span><span class="re2">&gt;</span></span>
         <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"target"</span><span class="re2">&gt;</span></span><span class="sc3"><span class="re1">&lt;ref</span> <span class="re0">bean</span>=<span class="st0">"businessObjectTarget"</span><span class="re2">/&gt;</span></span><span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
         <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"proxyInterfaces"</span><span class="re2">&gt;</span></span>
           <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span></span>com.acompany.BusinessObject<span class="sc3"><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
         <span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
         <span class="sc3"><span class="re1">&lt;property</span> <span class="re0">name</span>=<span class="st0">"interceptorNames"</span><span class="re2">&gt;</span></span>
           <span class="sc3"><span class="re1">&lt;list<span class="re2">&gt;</span></span></span>
              <span class="sc3"><span class="re1">&lt;value<span class="re2">&gt;</span></span></span>hibernateInterceptor<span class="sc3"><span class="re1">&lt;/value<span class="re2">&gt;</span></span></span>
           <span class="sc3"><span class="re1">&lt;/list<span class="re2">&gt;</span></span></span>
         <span class="sc3"><span class="re1">&lt;/property<span class="re2">&gt;</span></span></span>
     <span class="sc3"><span class="re1">&lt;/bean<span class="re2">&gt;</span></span></span>            
<span class="sc3"><span class="re1">&lt;/beans<span class="re2">&gt;</span></span></span>
&nbsp;
&nbsp;</pre>
<p>
<p><font size="2">When the businessObject bean is referenced, the HibernateInterceptor opens a hibernate session and passes the call onto the BusinessObjectImpl. When the BusinessObjectImpl has finished executing, the HibernateInterceptor transparently closes the session. The application code has no knowledge of any persistence logic, yet it is still able to lazily access data objects.</font></p>
<p><font size="2"><strong>Being Lazy in your Unit Tests</strong><p><font size="2">Last but not least, we'll need the ability to test our lazy application from J-Unit. This is easily done by overriding the setUp and tearDown methods of the TestCase class. I prefer to keep this code in a convenient abstract TestCase class for all of my tests to extend.</font></p>
</p>
<pre class="code"><span class="kw2">public</span> abstract <span class="kw2">class</span> MyLazyTestCase <span class="kw2">extends</span> TestCase <span class="br0">&#123;</span>
&nbsp;
        <span class="kw2">private</span> SessionFactory sessionFactory;
        <span class="kw2">private</span> Session session;
	
        <span class="kw2">public</span> <span class="kw4">void</span> setUp<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?q=allinurl%3AException+java.sun.com&bntl=1"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span>
	    super.<span class="me1">setUp</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
	    SessionFactory sessionFactory = <span class="br0">&#40;</span>SessionFactory<span class="br0">&#41;</span> getBean<span class="br0">&#40;</span>\<span class="st0">"sessionFactory&amp;quot&lt;img alt="</span>;<span class="br0">&#41;</span><span class="st0">" src="</span>http:<span class="co1">//www.dflying.net/plugins/smileys/icons/default/wink_smile.gif&quot; /&gt;;</span>
	    session = SessionFactoryUtils.<span class="me1">getSession</span><span class="br0">&#40;</span>sessionFactory, <span class="kw2">true</span><span class="br0">&#41;</span>;
	    Session s = sessionFactory.<span class="me1">openSession</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
	    TransactionSynchronizationManager.<span class="me1">bindResource</span><span class="br0">&#40;</span>sessionFactory, <span class="kw2">new</span> SessionHolder<span class="br0">&#40;</span>s<span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
        <span class="br0">&#125;</span>
&nbsp;
        <span class="kw2">protected</span> <a href="http://www.google.com/search?q=allinurl%3AObject+java.sun.com&bntl=1"><span class="kw3">Object</span></a> getBean<span class="br0">&#40;</span><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&bntl=1"><span class="kw3">String</span></a> beanName<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="co1">//Code to get objects from Spring application context</span>
        <span class="br0">&#125;</span>
	
        <span class="kw2">public</span> <span class="kw4">void</span> tearDown<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw2">throws</span> <a href="http://www.google.com/search?q=allinurl%3AException+java.sun.com&bntl=1"><span class="kw3">Exception</span></a> <span class="br0">&#123;</span>
	    super.<span class="me1">tearDown</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
	    SessionHolder holder = <span class="br0">&#40;</span>SessionHolder<span class="br0">&#41;</span> TransactionSynchronizationManager.<span class="me1">getResource</span><span class="br0">&#40;</span>sessionFactory<span class="br0">&#41;</span>;
	    Session s = holder.<span class="me1">getSession</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; 
	    s.<span class="me1">flush</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
	    TransactionSynchronizationManager.<span class="me1">unbindResource</span><span class="br0">&#40;</span>sessionFactory<span class="br0">&#41;</span>;
	    SessionFactoryUtils.<span class="me1">closeSessionIfNecessary</span><span class="br0">&#40;</span>s, sessionFactory<span class="br0">&#41;</span>;
        <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre>
<p>
</p>
   <br>文章来源:<a href='http://blueoxygen.dflying.net/3/archive/84_hibernate_performance_tuning.html'>http://blueoxygen.dflying.net/3/archive/84_hibernate_performance_tuning.html</a><img src ="http://www.blogjava.net/blueoxygen/aggbug/35579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-03-16 11:19 <a href="http://www.blogjava.net/blueoxygen/archive/2006/03/16/35579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]Hibernate POJO's good assistant-Commons for Eclipse</title><link>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35581.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 16 Mar 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35581.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/35581.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/35581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/35581.html</trackback:ping><description><![CDATA[    <p><img class="res_image" style="MARGIN: 5px" alt="eclipse" hspace="0" src="http://www.dflying.net/resserver.php?blogId=3&resource=eclipse.gif" align="left" border="0" />POJO used by Hibernate needs to implement hashCode() and equals() method.That's a kind of stuffy work and will be done many many times during development.Some IDEs support automatical generation feature such as IDEA.Eclipse famous plug-in--MyElipse also suppots but it's not free of charge.<br />I think nearly all JAVAers know Apache Commons open source project.We can use Commons lib to generate hashCode() and equals() method.I wanna tell you that there is also a plugin for Eclipse called Commons4E which help you generate hasCode() and equals().<br />It also can generate toString() and compareTo() method.That's a smart plugin.Enjoy it.<a href="http://www.eclipse-plugins.info/eclipse/plugin_details.jsp;jsessionid=9F68F9B4F1ED269AB3E2985D8BCD7503?id=775">Link</a></p><br/>
   <br>文章来源:<a href='http://blueoxygen.dflying.net/3/archive/79_hibernate_pojos_good_assistant-commons_for_eclipse.html'>http://blueoxygen.dflying.net/3/archive/79_hibernate_pojos_good_assistant-commons_for_eclipse.html</a><img src ="http://www.blogjava.net/blueoxygen/aggbug/35581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-03-16 11:19 <a href="http://www.blogjava.net/blueoxygen/archive/2006/03/16/35581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]AJAX tool box---Venkman</title><link>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35582.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 16 Mar 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35582.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/35582.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/35582.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/35582.html</trackback:ping><description><![CDATA[    <img hspace="0" src="http://blueoxygen.dflying.net/3/get/ajax.jpg" align="left" border="0" /><a href="http://www.mozilla.org/projects/venkman/">Venkman </a>is a Javascript Debugger as a FireFox extenstion.It's at least powerful than IE's default script debugger(not Visual InterDev's).You can watch varaiable,set breakpoint and use &quot;step over&quot; &quot;step into&quot; &quot;step out&quot; &quot;continue&quot; buttons to debug your niffy javascript codes.<br />It's ease to use.And tutorial is HERE:http://www.svendtofte.com/code/learning_venkman/index.php<br/>
   <br>文章来源:<a href='http://blueoxygen.dflying.net/3/archive/75_ajax_tool_box---venkman.html'>http://blueoxygen.dflying.net/3/archive/75_ajax_tool_box---venkman.html</a><img src ="http://www.blogjava.net/blueoxygen/aggbug/35582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-03-16 11:19 <a href="http://www.blogjava.net/blueoxygen/archive/2006/03/16/35582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]No more crap about IE Memeory Leak</title><link>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35583.html</link><dc:creator>BlueO2</dc:creator><author>BlueO2</author><pubDate>Thu, 16 Mar 2006 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35583.html</guid><wfw:comment>http://www.blogjava.net/blueoxygen/comments/35583.html</wfw:comment><comments>http://www.blogjava.net/blueoxygen/archive/2006/03/16/35583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blueoxygen/comments/commentRss/35583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blueoxygen/services/trackbacks/35583.html</trackback:ping><description><![CDATA[
    Two useful liks:<br /><a href="http://jibbering.com/faq/faq_notes/closures.html#clMem">http://jibbering.com/faq/faq_notes/closures.html#clMem</a><br /><a href="http://javascript.weblogsinc.com/2005/03/07/javascript-memory-leaks/">http://javascript.weblogsinc.com/2005/03/07/javascript-memory-leaks/</a><br/>
   <br>文章来源:<a href='http://blueoxygen.dflying.net/3/archive/69_no_more_crap_about_ie_memeory_leak.html'>http://blueoxygen.dflying.net/3/archive/69_no_more_crap_about_ie_memeory_leak.html</a><img src ="http://www.blogjava.net/blueoxygen/aggbug/35583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blueoxygen/" target="_blank">BlueO2</a> 2006-03-16 11:19 <a href="http://www.blogjava.net/blueoxygen/archive/2006/03/16/35583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>