<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[平衡优于极限；选择大于努力！]]></title>
	  <link>http://javary163.blog.163.com</link>
	  <description><![CDATA[从容的忘记想到的只有追求  ]]></description>
	  <language>zh-CN</language>
	  <pubDate>Fri, 8 May 2009 12:41:32 +0800</pubDate>
	  <lastBuildDate>Fri, 8 May 2009 12:41:32 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[javary163]]></managingEditor>
	  <webMaster><![CDATA[javary]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[平衡优于极限；选择大于努力！]]></title>
	  	<url>http://ava.bimg.126.net/photo/1BsqZlGFVLvzDvN8kzvulg==/225461456345595139.jpg</url>
	  	<link>http://javary163.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[一点一滴20080927]]></title>	
    <link>http://javary163.blog.163.com/blog/static/794133320088271047555</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=4 cellPadding=4 width=740 align=center border=0 lText?>
<TBODY>
<TR>
<TD>CSS控制Div叠加，且背景Div不占位 </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://css.oncecode.com/Images/gif/1_1.gif" border=0></P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=4 cellPadding=4 width=740 align=center border=0 lText?>
<TBODY>
<TR>
<TH></TH></TR>
<TR>
<TD>
<P style="TEXT-INDENT: 2em">CSS样式：</P>
<P style="TEXT-INDENT: 2em">.FaceDiv {</P>
<P style="TEXT-INDENT: 2em">&nbsp;position:absolute;</P>
<P style="TEXT-INDENT: 2em">&nbsp;z-index:1000;</P>
<P style="TEXT-INDENT: 2em">&nbsp;width:248px;</P>
<P style="TEXT-INDENT: 2em">&nbsp;height:159px;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">.BackDiv {</P>
<P style="TEXT-INDENT: 2em">&nbsp;position:relative;</P>
<P style="TEXT-INDENT: 2em">&nbsp;z-index:900;</P>
<P style="TEXT-INDENT: 2em">&nbsp;top:0px;</P>
<P style="TEXT-INDENT: 2em">&nbsp;left:0px;</P>
<P style="TEXT-INDENT: 2em">&nbsp;overflow:hidden;</P>
<P style="TEXT-INDENT: 2em">&nbsp;width:248px;</P>
<P style="TEXT-INDENT: 2em">&nbsp;height:159px;</P>
<P style="TEXT-INDENT: 2em">}</P>
<P style="TEXT-INDENT: 2em">一个是前景，一个是背景div
</P><P style="TEXT-INDENT: 2em">//用JavaScript得到绝对路径的方法<BR>function&nbsp;&nbsp; getUrl(s)&nbsp;&nbsp; {&nbsp;&nbsp; <BR>&nbsp; var&nbsp;&nbsp; m&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; Image();&nbsp;&nbsp; <BR>&nbsp; m.src=s;&nbsp;&nbsp; <BR>&nbsp; return&nbsp;&nbsp; m.src;&nbsp;&nbsp; <BR>&nbsp; }; <BR>&nbsp; //alert(getUrl("../../images/uploading.gif"));&nbsp; </P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/794133320088271047555</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/794133320088271047555</guid>
    <pubDate>Sat, 27 Sep 2008 10:04:07 +0800</pubDate>
    <dcterms:modified>2008-09-27T10:04:07+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[如何用正确的方法写出高质量软件的75条体会[转] ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200882511481449</link>
    <description><![CDATA[<div><P><STRONG>1. 你们的项目组使用源代码管理工具了么？<BR></STRONG>MVM：应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。</P>
<P><STRONG>2. 你们的项目组使用缺陷管理系统了么？<BR></STRONG>MVM：应该用。ClearQuest太复杂，我的推荐是BugZilla。</P>
<P><STRONG>3. 你们的测试组还在用Word写测试用例么？<BR></STRONG>MVM：不要用Word写测试用例（Test Case）。应该用一个专门的系统，可以是Test Manager，也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。</P>
<P><STRONG>4. 你们的项目组有没有建立一个门户网站？<BR></STRONG>MVM：要有一个门户网站，用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint Portal Server 2003来实现，15分钟就搞定。买不起SPS 2003可以用WSS (<A href="http://www.newasp.cn/" target=_blank><SPAN style="COLOR: #e9650e">Windows</SPAN></A> Sharepoint Service)。</P>
<P><STRONG>5. 你们的项目组用了你能买到最好的工具么？<BR></STRONG>MVM：应该用尽量好的工具来工作。比如，应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一种炫耀。但也要考虑到经费，所以说是“你能买到最好的”。</P>
<P><STRONG>6. 你们的程序员工作在安静的环境里么？<BR></STRONG>MVM：需要安静环境。这点极端重要，而且要保证每个人的空间大于一定面积。</P>
<P><STRONG>7. 你们的员工每个人都有一部电话么？<BR></STRONG>MVM：需要每人一部电话。而且电话最好是带留言功能的。当然，上这么一套带留言电话系统开销不小。不过至少每人一部电话要有，千万别搞得经常有人站起来喊：“某某某电话”。《人件》里面就强烈谴责这种做法。</P>
<P><STRONG>8. 你们每个人都知道出了问题应该找谁么？<BR></STRONG>MVM：应该知道。任何一个Feature至少都应该有一个Owner，当然，Owner可以继续Dispatch给其他人。</P>
<P><STRONG>9. 你遇到过有人说“我以为…”么？<BR></STRONG>MVM：要消灭“我以为”。Never assume anything。</P>
<P><STRONG>10. 你们的项目组中所有的人都坐在一起么？<BR></STRONG>MVM：需要。我反对Virtual Team，也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好坐在一起，好处多得不得了。</P>
<P><STRONG>11. 你们的进度表是否反映最新开发进展情况？</STRONG> <BR>MVM：应该反映。但是，应该用Baseline的方法来管理进度表：维护一份稳定的Schedule，再维护一份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手段。</P>
<P><STRONG>12. 你们的工作量是先由每个人自己估算的么？<BR></STRONG>MVM：应该让每个人自己估算。要从下而上估算工作量，而不是从上往下分派。除非有其他原因，比如政治任务工期固定等。</P>
<P><STRONG>13. 你们的开发人员从项目一开始就加班么？<BR></STRONG>MVM：不要这样。不要一开始就搞疲劳战。从项目一开始就加班，只能说明项目进度不合理。当然，一些对日软件外包必须天天加班，那属于剥削的范畴。</P>
<P><STRONG>14. 你们的项目计划中Buffer Time是加在每个小任务后面的么？<BR></STRONG>MVM：不要。Buffer Time加在每个小任务后面，很容易轻易的就被消耗掉。Buffer Time要整段的加在一个Milestone或者checkpoint前面。</P>
<P><STRONG>15. 值得再多花一些时间，从95%做到100%好<BR></STRONG>MVM：值得，非常值得。尤其当项目后期人困马乏的时候，要坚持。这会给产品带来质的区别。</P>
<P><STRONG>16. 登记新缺陷时，是否写清了重现步骤？<BR></STRONG>MVM：要。这属于Dev和Test之间的沟通手段。面对面沟通需要，详细填写Repro Steps也需要。</P>
<P><STRONG>17. 写新代码前会把已知缺陷解决么？<BR></STRONG>MVM：要。每个人的缺陷不能超过10个或15个，否则必须先解决老的bug才能继续写新代码。</P>
<P><STRONG>18. 你们对缺陷的轻重缓急有事先的约定么？<BR></STRONG>MVM：必须有定义。Severity要分1、2、3，约定好：蓝屏和Data Lost算Sev 1，Function Error算Sev 2，界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。</P>
<P><STRONG>19. 你们对意见不一的缺陷有三国会议么？<BR></STRONG>MVM：必须要有。要有一个明确的决策过程。这类似于CCB (Change Control Board)的概念。</P>
<P><STRONG>20. 所有的缺陷都是由登记的人最后关闭的么？<BR></STRONG>MVM：Bug应该由Opener关闭。Dev不能私自关闭Bug。</P>
<P><STRONG>21. 你们的程序员厌恶修改老的代码么？<BR></STRONG>MVM：厌恶是正常的。解决方法是组织Code Review，单独留出时间来。XP也是一个方法。</P>
<P><STRONG>22. 你们项目组有Team Morale Activity么？<BR></STRONG>MVM：每个月都要搞一次，吃饭、唱歌、Outing、打球、开卡丁车等等，一定要有。不要剩这些钱。</P>
<P><STRONG>23. 你们项目组有自己的Logo么？<BR></STRONG>MVM：要有自己的Logo。至少应该有自己的Codename。</P>
<P><STRONG>24. 你们的员工有印有公司Logo的T-Shirt么？<BR></STRONG>MVM：要有。能增强归属感。当然，T-Shirt要做的好看一些，最好用80支的棉来做。别没穿几次就破破烂烂的。</P>
<P><STRONG>25. 总经理至少每月参加次项目组会议<BR></STRONG>MVM：要的。要让team member觉得高层关注这个项目。</P>
<P><STRONG>26. 你们是给每个Dev开一个分支么？<BR></STRONG>MVM：反对。Branch的管理以及Merge的工作量太大，而且容易出错。</P>
<P><STRONG>27. 有人长期不Check-In代码么？<BR></STRONG>MVM：不可以。对大部分项目来说，最多两三天就应该Check-In。</P>
<P><STRONG>28. 在Check-In代码时都填写注释了么？<BR></STRONG>MVM：要写的，至少一两句话，比如“解决了Bug No.225”。如果往高处拔，这也算做“配置审计”的一部分。</P>
<P><STRONG>29. 有没有设定每天Check-In的最后期限？<BR></STRONG>MVM：要的，要明确Check-In Deadline。否则会Build Break。</P>
<P><STRONG>30. 你们能把所有源码一下子编译成安装文件吗？ <BR></STRONG>MVM：要的。这是每日编译（Daily Build）的基础。而且必须要能够做成自动的。</P>
<P><STRONG>31. 你们的项目组做每日编译么？<BR></STRONG>MVM：当然要做。有三样东西是软件项目/产品开发必备的：1. bug management; 2. source control; 3. daily build。</P>
<P><STRONG>32. 你们公司有没有积累一个项目风险列表？<BR></STRONG>MVM：要。Risk Inventory。否则，下个项目开始的时候，又只能拍脑袋分析Risk了。</P>
<P><STRONG>33. 设计越简单越好<BR></STRONG>MVM：越简单越好。设计时候多一句话，将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope management。</P>
<P><STRONG>34. 尽量利用现有的产品、技术、代码<BR></STRONG>MVM：千万别什么东西都自己Coding。BizTalk和Sharepoint 就是最好的例子，有这两个作为基础，可以把起点提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XML，而不是自己去Parse一个文本文件；尽量用RegExp，而不是自己从头操作字符串，等等等等。这就是“软件复用”的体现。</P>
<P><STRONG>35. 你们会隔一段时间就停下来夯实代码么？<BR></STRONG>MVM：要。最好一个月左右一次。传言去年年初<A href="http://www.newasp.cn/" target=_blank><SPAN style="COLOR: #e9650e">Windows</SPAN></A> 组在Stevb的命令下停过一个月增强安全。Btw，“夯”这个字念“hang”，第一声。</P>
<P><STRONG>36. 你们的项目组每个人都写Daily Report么？<BR></STRONG>MVM：要写。五分钟就够了，写10句话左右，告诉自己小组的人今天我干了什么。一则为了沟通，二则鞭策自己（要是游手好闲一天，自己都会不好意思写的）。</P>
<P><STRONG>37. 你们的项目经理会发出Weekly Report么？<BR></STRONG>MVM：要。也是为了沟通。内容包括目前进度，可能的风险，质量状况，各种工作的进展等。</P>
<P><STRONG>38. 你们项目组是否至少每周全体开会一次？<BR></STRONG>MVM：要。一定要开会。程序员讨厌开会，但每个礼拜开会时间加起来至少应该有4小时。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。</P>
<P><STRONG>39. 你们项目组的会议、讨论都有记录么？<BR></STRONG>MVM：会前发meeting request和agenda，会中有人负责主持和记录，会后有人负责发meeting minutes，这都是effective meeting的要点。而且，每个会议都要形成agreements和action items。</P>
<P><STRONG>40. 其他部门知道你们项目组在干什么么？<BR></STRONG>MVM：要发一些Newsflash给整个大组织。Show your team’s value。否则，当你坐在电梯里面，其他部门的人问：“你们在干嘛”，你回答“ABC项目”的时候，别人全然不知，那种感觉不太好。</P>
<P><STRONG>41. 通过Email进行所有正式沟通<BR></STRONG>MVM：Email的好处是免得抵赖。但也要避免矫枉过正，最好的方法是先用电话和当面说，然后Email来确认。</P>
<P><STRONG>42. 为项目组建立多个Mailing Group<BR></STRONG>MVM：如果在AD+Exchange里面，就建 Distribution List。比如，我会建ABC Project Core Team，ABC Project Dev Team，ABC Project All Testers，ABC Project Extended Team等等。这样发起Email来方便，而且能让该收到email的人都收到、不该收到不被骚扰。</P>
<P><STRONG>43. 每个人都知道哪里可以找到全部的文档么？<BR></STRONG>MVM：应该每个人都知道。这叫做知识管理（Knowledge Management）。最方便的就是把文档放在一个集中的File Share，更好的方法是用Sharepoint。</P>
<P><STRONG>44. 你做决定、做变化时，告诉大家原因了么？<BR></STRONG>MVM：要告诉大家原因。Empower team member的手段之一是提供足够的information，这是MSF一开篇的几个原则之一。的确如此，tell me why是人之常情，tell me why了才能有understanding。中国人做事喜欢搞限制，限制信息，似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力，不在于是不是能access information/data，而在于是不是掌握资源。</P>
<P><STRONG>45. Stay agile and expect change<BR></STRONG>MVM：要这样。需求一定会变的，已经写好的代码一定会被要求修改的。做好心理准备，对change不要抗拒，而是expect change。</P>
<P><STRONG>46. 你们有没有专职的软件测试人员？<BR></STRONG>MVM：要有专职测试。如果人手不够，可以peer test，交换了测试。千万别自己测试自己的。</P>
<P><STRONG>47. 你们的测试有一份总的计划来规定做什么和怎么做么？<BR></STRONG>MVM：这就是Test Plan。要不要做性能测试？要不要做Usability测试？什么时候开始测试性能？测试通过的标准是什么？用什么手段，自动的还是手动的？这些问题需要用Test Plan来回答。</P>
<P><STRONG>48. 你是先写Test Case然后再测试的么？<BR></STRONG>MVM：应该如此。应该先设计再编程、先test case再测试。当然，事情是灵活的。我有时候在做第一遍测试的同时补上test case。至于先test case再开发，我不喜欢，因为不习惯，太麻烦，至于别人推荐，那试试看也无妨。</P>
<P><STRONG>49. 你是否会为各种输入组合创建测试用例？<BR></STRONG>MVM：不要，不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件的组合——但要想清楚，你是否有时间去运行那么多test case。</P>
<P><STRONG>50. 你们的程序员能看到测试用例么？<BR></STRONG>MVM：要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的：提高质量。</P>
<P><STRONG>51. 你们是否随便抓一些人来做易用性测试？<BR></STRONG>MVM：要这么做。自己看自己写的程序界面，怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也就不臭了，不方便的永久了也就习惯了。</P>
<P><STRONG>52. 你对自动测试的期望正确么？<BR></STRONG>MVM：别期望太高。依我看，除了性能测试以外，还是暂时先忘掉“自动测试”吧，忘掉WinRunner和LoadRunner吧。对于国内的软件测试的现状来说，只能“矫枉必须过正”了。</P>
<P><STRONG>53. 你们的性能测试是等所有功能都开发完才做的么？<BR></STRONG>MVM：不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正，早死早升天。</P>
<P><STRONG>54. 你注意到测试中的杀虫剂效应了么？<BR></STRONG>MVM：虫子有抗药性，Bug也有。发现的新Bug越来越少是正常的。这时候，最好大家交换一下测试的area，或者用用看其他工具和手法，就又会发现一些新bug了。</P>
<P><STRONG>55. 你们项目组中有人能说出产品的当前整体质量情况么？<BR></STRONG>MVM：要有。当老板问起这个产品目前质量如何，Test Lead/Manager应该负责回答。</P>
<P><STRONG>56. 你们有单元测试么？<BR></STRONG>MVM：单元测试要有的。不过没有单元测试也不是不可以，我做过没有单元测试的项目，也做成功了——可能是侥幸，可能是大家都是熟手的关系。还是那句话，软件工程是非常实践、非常工程、非常灵活的一套方法，某些方法在某些情况下会比另一些方法好，反之亦然。</P>
<P><STRONG>57. 你们的程序员是写完代码就扔过墙的么</STRONG> ？<BR>MVM：大忌。写好一块程序以后，即便不做单元测试，也应该自己先跑一跑。虽然有了专门的测试人员，做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法，程序太烂的话，测试有权踢回去。</P>
<P><STRONG>58. 你们的程序中所有的函数都有输入检查么？<BR></STRONG>MVM：不要。虽然说做输入检查是write secure code的要点，但不要做太多的输入检查，有些内部函数之间的参数传递就不必检查输入了，省点功夫。同样的道理，未必要给所有的函数都写注释。写一部分主要的就够了。</P>
<P><STRONG>59. 产品有统一的错误处理机制和报错界面么？<BR></STRONG>MVM：要有。最好能有统一的error message，然后每个error message都带一个error number。这样，用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因，就像SQL Server的错误那样。同样，ASP.NET也要有统一的Exception处理。可以参考有关的Application Block。</P>
<P><STRONG>60. 你们有统一的代码书写规范么？<BR></STRONG>MVM：要有。Code Convention很多，搞一份来发给大家就可以了。当然，要是有FxCop这种工具来检查代码就更好了。</P>
<P><STRONG>61. 你们的每个人都了解项目的商业意义么？<BR></STRONG>MVM：要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者，或者时不时的告诉team member，这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱，这样就有动力了。平凡的事情也是可以有个崇高的目标的。</P>
<P><STRONG>62. 产品各部分的界面和操作习惯一致么？<BR></STRONG>MVM：要这样。要让用户觉得整个程序好像是一个人写出来的那样。</P>
<P><STRONG>63. 有可以作为宣传亮点的Cool Feature么？<BR></STRONG>MVM：要。这是增强团队凝聚力、信心的。而且，“一俊遮百丑”，有亮点就可以掩盖一些问题。这样，对于客户来说，会感觉产品从质量角度来说还是acceptable的。或者说，cool feature或者说亮点可以作为质量问题的一个事后弥补措施。</P>
<P><STRONG>64. 尽可能缩短产品的启动时间<BR></STRONG>MVM：要这样。软件启动时间（Start-Up time）是客户对性能好坏的第一印象。</P>
<P><STRONG>65. 不要过于注重内在品质而忽视了第一眼的外在印象<BR></STRONG>MVM：程序员容易犯这个错误：太看重性能、稳定性、存储效率，但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾，协调这些是PM的工作。</P>
<P><STRONG>66. 你们根据详细产品功能说明书做开发么？<BR></STRONG>MVM：要这样。要有设计才能开发，这是必须的。设计文档，应该说清楚这个产品会怎么运行，应该采取一些讲故事的方法。设计的时候千万别钻细节，别钻到数据库、代码等具体实现里面去，那些是后面的事情，一步步来不能着急。</P>
<P><STRONG>67. 开始开发和测试之前每个人都仔细审阅功能设计么？<BR></STRONG>MVM：要做。Function Spec review是用来统一思想的。而且，review过以后形成了一致意见，将来再也没有人可以说“你看，当初我就是反对这么设计的，现在吃苦头了吧”</P>
<P><STRONG>68. 所有人都始终想着The Whole Image么？<BR></STRONG>MVM：要这样。项目里面每个人虽然都只是在制造一片叶子，但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领，反对过分的把软件制造看成流水线、车间。参见第61条。</P>
<P><STRONG>69. Dev工作的划分是单纯纵向或横向的么？<BR></STRONG>MVM：不能单纯的根据功能模块分，或者单纯根据表现层、中间层、数据库层分。我推荐这么做：首先根据功能模块分，然后每个“层”都有一个Owner来Review所有人的设计和代码，保证consistency。 </P>
<P><STRONG>70. 你们的程序员写程序设计说明文档么？<BR></STRONG>MVM：要。不过我听说微软的程序员1999年以前也不写。所以说，写不写也不是绝对的，偷懒有时候也是可以的。参见第56条。</P>
<P><STRONG>71. 你在招人面试时让他写一段程序么？<BR></STRONG>MVM：要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等，既不偏向过于考算法，也不偏向过于考特定的API。</P>
<P><STRONG>72. 你们有没有技术交流讲座？<BR></STRONG>MVM：要的。每一两个礼拜搞一次内部的Tech Talk或者Chalk Talk吧。让组员之间分享技术心得，这笔花钱送到外面去培训划算。</P>
<P><STRONG>73. 你们的程序员都能专注于一件事情么？<BR></STRONG>MVM：要让程序员专注一件事。例如说，一个部门有两个项目和10个人，一种方法是让10个人同时参加两个项目，每个项目上每个人都花50%时间；另一种方法是5个人去项目A，5个人去项目B，每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂，但很多领导实践起来就把属下当成可以任意拆分的资源了。</P>
<P><STRONG>74. 你们的程序员会夸大完成某项工作所需要的时间么？<BR></STRONG>MVM：会的，这是常见的，尤其会在项目后期夸大做某个change所需要的时间，以次来抵制change。解决的方法是坐下来慢慢磨，磨掉程序员的逆反心理，一起分析，并把估算时间的颗粒度变小。</P>
<P><STRONG>75. 尽量不要用Virtual Heads<BR></STRONG>MVM：最好不要用Virtual Heads。Virtual heads意味着resource is not secure，shared resource会降低resource的工作效率，容易增加出错的机会，会让一心二用的人没有太多时间去review spec、review design。一个dedicated的人，要强过两个只能投入50%时间和精力的人。我是吃过亏的：7个part time的tester，发现的Bug和干的活，加起来还不如两个full-time的。参见第73条。73条是针对程序员的，75条是针对 Resource Manager的。<BR><BR>[原始出处不明]</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200882511481449</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200882511481449</guid>
    <pubDate>Thu, 25 Sep 2008 11:48:01 +0800</pubDate>
    <dcterms:modified>2008-09-25T11:48:01+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一点一滴20080916]]></title>	
    <link>http://javary163.blog.163.com/blog/static/79413332008816112021226</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">servlet/jsp 获取绝对路径和相对路径</P>
<P style="TEXT-INDENT: 2em">2008年04月04日 星期五 11:42</P>
<P style="TEXT-INDENT: 2em">
<TABLE>
<TBODY>
<TR>
<TD>
<P></P>
<P style="TEXT-INDENT: 2em">servlet中获得项目绝对路径</P>
<P style="TEXT-INDENT: 2em">String filePath=this.getServletConfig().getServletContext().getRealPath("/");</P>
<P style="TEXT-INDENT: 2em">根目录所对应的绝对路径:request.getServletPath();</P>
<P style="TEXT-INDENT: 2em">文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())</P>
<P style="TEXT-INDENT: 2em">当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");</P>
<P style="TEXT-INDENT: 2em">ServletContext对象获得几种方式：</P>
<P style="TEXT-INDENT: 2em">Javax.servlet.http.HttpSession.getServletContext()</P>
<P style="TEXT-INDENT: 2em">Javax.servlet.jsp.PageContext.getServletContext()</P>
<P style="TEXT-INDENT: 2em">Javax.servlet.ServletConfig.getServletContext()</P>
<P style="TEXT-INDENT: 2em">文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())</P>
<P style="TEXT-INDENT: 2em">当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");</P>
<P style="TEXT-INDENT: 2em"></P></TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/79413332008816112021226</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/79413332008816112021226</guid>
    <pubDate>Tue, 16 Sep 2008 11:20:21 +0800</pubDate>
    <dcterms:modified>2008-09-16T11:20:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一点一滴20080915]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200881542834292</link>
    <description><![CDATA[<div><P><STRONG>1.hibernate中获取 Connection 对象进行jdbc操作：</STRONG></P>
<P>Connection con= Hibernate3SessionFactory.getSession().connection();</P>
<P><STRONG>2.sql语句中分母为零处理方法：</STRONG></P>
<P>oracle中decode函数可以解决分母为0的异常情况：如：字段a,b 。要查询 a/b 那么可以用下面的公式代替：</P>
<P>decode(b，0，0，a/b）当b为0时则返回0。</P>
<P>DECODE(value,if1,then1,if2,then2,if3,then3,...,else)，表示如果value等于if1时，DECODE函数的结果返回then1,...,如果不等于任何一个if值，则返回else。初看一下，DECODE 只能做等于测试，但刚才也看到了，我们通过一些函数或计算替代value，是可以使DECODE函数具备大于、小于或等于功能。</P>
<P><STRONG>3.java中获取文件路径：</STRONG></P>
<P>request.getRealPath("/");&nbsp; //获取工程根目录路径。</P>
<P><STRONG>4.xml和pojo轻松转换：</STRONG></P>
<P>XStream xStream = new XStream(); <BR>&nbsp;String persistFile="";</P>
<P>xStream.alias("ConfigRUL",ConfigRUL.class);<BR>&nbsp;persistFile=request.getRealPath("/")+"configURL.xml";<BR>&nbsp;//xml to pojo</P>
<P>Reader reader = null;<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;reader = new FileReader(persistFile);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch (FileNotFoundException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;Object&nbsp; o= (Object&nbsp; )xStream.fromXML(reader); </P>
<P>//pojo&nbsp; to&nbsp; xml </P>
<P>form.fillPojo(configRUL);<BR>&nbsp;&nbsp;FileWriter writer = null;<BR>&nbsp;&nbsp;try<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;writer = new FileWriter(persistFile);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;catch (IOException e)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;e.printStackTrace();<BR>&nbsp;&nbsp;} <BR>&nbsp;&nbsp;xStream.toXML(object,writer);</P>
<P><STRONG>5.javascript 事件</STRONG></P>
<P style="TEXT-INDENT: 2em">&nbsp;IE Event对象</P>
<P style="TEXT-INDENT: 2em">（一）IE Event对象的主要属性和方法</P>
<P style="TEXT-INDENT: 2em">　　在IE中有一个专门负责事件处理的对象Event，这个对象负责对事件的处理，含有很多的属性和方法，通过这些方法和属性的调用，就能完成很多的事件处理。</P>
<P style="TEXT-INDENT: 2em">　　type：事件的类型，就是HTML标签属性中，没有“on”前缀之后的字符串，例如“Click”就代表单击事件。</P>
<P style="TEXT-INDENT: 2em">　　srcElement：事件源，就是发生事件的元素。</P>
<P style="TEXT-INDENT: 2em">　　button：声明了被按下的鼠标键，是一个整数。1代表鼠标左键，2代表鼠标右键，4代表鼠标的中间键，如果按下了多个鼠标键，就把这些值加在一起，所以3就代表左右键同时按下。</P>
<P style="TEXT-INDENT: 2em">　　clientX/clientY：是指事件发生的时候，鼠标的横、纵坐标，返回的是整数，它们的值是相对于包容窗口的左上角生成的。</P>
<P style="TEXT-INDENT: 2em">　　offsetX/offsetY：鼠标指针相对于源元素的位置，可以确定单击Image对象的哪个象素。</P>
<P style="TEXT-INDENT: 2em">　　altKey，ctrlKey，shiftKey：顾名思义，这些属性是指鼠标事件发生的时候，是否同时按住了Alt、Ctrl或者Shift键，返回的是一个布尔值。</P>
<P style="TEXT-INDENT: 2em">　　keyCode：返回keydown和keyup事件发生的时候，按键的代码以及keypress事件的Unicode字符。</P>
<P style="TEXT-INDENT: 2em">　　fromElement、toElement前者是指代mouseover事件移动过的文档元素，后者指代mouseout事件中鼠标移动到的文档元素。</P>
<P style="TEXT-INDENT: 2em">　　cancelBubble：一个布尔属性，把它设置为true的时候，将停止事件进一步起泡到包容层次的元素。</P>
<P style="TEXT-INDENT: 2em">　　returnValue：一个布尔值属性，设置为false的时候可以组织浏览器执行默认的事件动作，相当于&lt;a href=”#” onclick=”ProcessMethod();return false;” /&gt;。</P>
<P style="TEXT-INDENT: 2em">　　attachEvent()和detachEvent()方法：为制定DOM对象事件类型注册多个事件处理函数的方法，它们有两个参数，第一个是事件类型，第二个是事件处理函数。在attachEvent()事件执行的时候，this关键字指向的是<A href="http://www.qqread.com/tag/2931/index.html">window</A>对象，而不是发生事件的那个元素。</P>
<P style="TEXT-INDENT: 2em">　　（二）IE Event对象的一些说明</P>
<P style="TEXT-INDENT: 2em">　　1.IE Event对象是一个全局属性</P>
<P style="TEXT-INDENT: 2em">　　在IE中，不能把Event对象作为参数传递给事件处理程序，只能用window.event或者event来引用Event对象。因为在IE中，Event是window的一个属性，也就是说event是一个全局变量，这个变量提供了事件的细节。</P>
<P style="TEXT-INDENT: 2em">　　2.IE中事件的起泡：IE中事件可以沿着包容层次一点点起泡到上层，也就是说，下层的DOM节点定义的事件处理函数，到了上层的节点如果还有和下层相同事件类型的事件处理函数，那么上层的事件处理函数也会执行。例如，&lt;div&gt;标签包含了&lt;a&gt;，如果这两个标签都有onclick事件的处理函数，那么执行的情况就是先执行&lt;a&gt;标签的onclick事件处理函数，再执行&lt;div&gt;的事件处理函数。如果希望&lt;a&gt;的事件处理函数执行完毕之后，不希望执行上层的&lt;div&gt;的onclick的事件处理函数了，那么就把cancelBubble设置为false即可。</P>
<P style="TEXT-INDENT: 2em">6.<STRONG>javascript&nbsp; 常用event.keycode值</STRONG></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>eycode 8 = BackSpace BackSpace </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 9 = Tab Tab </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 12 = Clear </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 13 = Enter </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 16 = Shift_L </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 17 = Control_L </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 18 = Alt_L </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 19 = Pause </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 20 = Caps_Lock </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 27 = Escape Escape </FONT></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><FONT face=Calibri>keycode 32 = space space </FONT></SPAN></P>
<P style="TEXT-INDENT: 2em">
</P><P style="TEXT-INDENT: 2em"><STRONG></STRONG><BR>&nbsp;</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200881542834292</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200881542834292</guid>
    <pubDate>Mon, 15 Sep 2008 16:28:34 +0800</pubDate>
    <dcterms:modified>2008-09-15T16:28:34+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Hibernate Spring Java Persistence API EJB3 相关的术语及关键字 ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200831175921784</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">以下是Hibernate Reference 3.2翻译时采用的术语</P>
<P style="TEXT-INDENT: 2em">O/R Mapping 对象/关系数据库映射</P>
<P style="TEXT-INDENT: 2em">identifier property: 标识属性</P>
<P style="TEXT-INDENT: 2em">discriminator: 辨别标志(不使用"鉴别器")</P>
<P style="TEXT-INDENT: 2em">join-subclass,union-subclass,join: 不翻译</P>
<P style="TEXT-INDENT: 2em">fine-grained 细粒度</P>
<P style="TEXT-INDENT: 2em">domain model 领域模型</P>
<P style="TEXT-INDENT: 2em">business object 业务对象(v2的时候翻译为"商业对象",被无数人痛骂....)</P>
<P style="TEXT-INDENT: 2em">annotations 注解(这个词还比较新,也见到有翻译为"特殊注释"/"标注"的)</P>
<P style="TEXT-INDENT: 2em">Aggregate functions 统计函数 (聚集函数?聚合函数? 还是翻译为统计函数才能让人看懂)</P>
<P style="TEXT-INDENT: 2em">Criteria Queries 条件查询(标准查询?这里Criteria是"判据"的含义,而非"标准",意译为条件查询更加明白)</P>
<P style="TEXT-INDENT: 2em">session flush session清洗</P>
<P style="TEXT-INDENT: 2em">lazy fetching 延迟加载(懒加载,翻译很直白,但是却不易理解)</P>
<P style="TEXT-INDENT: 2em">对象状态：</P>
<P style="TEXT-INDENT: 2em">&nbsp;persistent class 持久化类</P>
<P style="TEXT-INDENT: 2em">&nbsp;persistent object 持久对象 (体现这是与某个持久化设备联系的,掉电之后不消失)</P>
<P style="TEXT-INDENT: 2em">&nbsp;transient object 瞬时对象&nbsp; (其含义是仅在内存中存在的,掉电之后消失,翻译为瞬时对象比较好)</P>
<P style="TEXT-INDENT: 2em">&nbsp;detached object 脱管对象(与session脱离的对象)</P>
<P style="TEXT-INDENT: 2em">outer-join fetching 外连接抓取 (fetch一般翻译为"获取",v2翻译的时候,为了突出其主动获取的特点,翻译为"抓取")</P>
<P style="TEXT-INDENT: 2em">class hierarchy 类分层结构 <A href="http://www.umlchina.com/xprogrammer/glossary1.htm">http://www.umlchina.com/xprogrammer/glossary1.htm</A> </P>
<P style="TEXT-INDENT: 2em">inheritance hierarchy 继承层次 <A href="http://www-128.ibm.com/developerworks/cn/java/j-aopwork4/?ca=dwcn-newsletter-java">http://www-128.ibm.com/developerworks/cn/java/j-aopwork4/?ca=dwcn-newsletter-java</A></P>
<P style="TEXT-INDENT: 2em">===============================================================================================</P>
<P style="TEXT-INDENT: 2em">Hibernate Annotations Reference部分的术语表</P>
<P style="TEXT-INDENT: 2em"><A href="http://wiki.redsaga.com/confluence/display/HART/glossary">http://wiki.redsaga.com/confluence/display/HART/glossary</A> </P>
<P style="TEXT-INDENT: 2em">数据库相关</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TD>schema </TD>
<TD>schema </TD>
<TD>不翻译 </TD></TR>
<TR>
<TD>catalog </TD>
<TD>目录 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>tables </TD>
<TD>表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>column </TD>
<TD>列/字段 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>index </TD>
<TD>索引 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>sequence </TD>
<TD>序列 </TD>
<TD>对应于数据库中的sequence </TD></TR>
<TR>
<TD>unique </TD>
<TD>唯一的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>nullable </TD>
<TD>可为空的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>insertable </TD>
<TD>可插入的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>updatable </TD>
<TD>可更新的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>embedded objects </TD>
<TD>嵌入对象 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>embeddable object </TD>
<TD>可嵌入的对象 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>identity generator </TD>
<TD>ID生成器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>sequence generator </TD>
<TD>序列生成器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>temporal precision </TD>
<TD>瞬时精度 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>precision </TD>
<TD>精度 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>decimal precision </TD>
<TD>十进制精度 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>scale </TD>
<TD>刻度，数值范围 </TD>
<TD>关系数据库中通常指小数点位数 </TD></TR>
<TR>
<TD>decimal scale </TD>
<TD>十进制 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>primary key </TD>
<TD>主键/主关键字 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>primary key column </TD>
<TD>主键列 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>foreign key </TD>
<TD>外键/外关键字 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>foreign key column </TD>
<TD>外键列 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>association </TD>
<TD>关联 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>association column </TD>
<TD>关联列 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>join column </TD>
<TD>连接列 </TD>
<TD>根据情况选择不翻译 </TD></TR>
<TR>
<TD>relationship </TD>
<TD>关系/关联 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>unique constraint </TD>
<TD>唯一约束 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>invariant constraint </TD>
<TD>不变约束 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>constraint violation </TD>
<TD>约束违例 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">Java/面向对象相关</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TD>POJO </TD>
<TD>简单java对象 </TD>
<TD>Plain Old Java Object </TD></TR>
<TR>
<TD>entity hierarchy </TD>
<TD>实体层次 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>field </TD>
<TD>字段 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>property </TD>
<TD>属性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>attribute </TD>
<TD>属性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Inheritance </TD>
<TD>继承 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>unqualified class name </TD>
<TD>短类名 </TD>
<TD>不附带包名 </TD></TR>
<TR>
<TD>full qualified class name(fqcn) </TD>
<TD>全称类名 </TD>
<TD>附带包名 </TD></TR>
<TR>
<TD>List </TD>
<TD>列表 </TD>
<TD>根据情况选择不翻译&nbsp; </TD></TR>
<TR>
<TD>ordered list </TD>
<TD>有序列表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>indexed list </TD>
<TD>索引列表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Bag </TD>
<TD>包 </TD>
<TD>根据情况选择不翻译&nbsp; </TD></TR>
<TR>
<TD>Set </TD>
<TD>集合 </TD>
<TD>根据情况选择不翻译&nbsp; </TD></TR>
<TR>
<TD>Map </TD>
<TD>映射/映射表 </TD>
<TD>根据情况选择不翻译&nbsp; </TD></TR>
<TR>
<TD>target entity </TD>
<TD>目标实体 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>entity </TD>
<TD>实体 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Semantic </TD>
<TD>语义 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>java representation </TD>
<TD>java表示 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>primitive type </TD>
<TD>主要/基本类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>core type </TD>
<TD>核心类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Serializable </TD>
<TD>序列化 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">O/R Mapping相关</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TD>object/relational mapping </TD>
<TD>对象/关系 映射 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>metadata </TD>
<TD>元数据 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>metamodel </TD>
<TD>元模型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>annotation </TD>
<TD>注解 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>meta-annotation </TD>
<TD>元注解 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Metadata impact </TD>
<TD>元数据影响 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>paradigm </TD>
<TD>范例 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persistence </TD>
<TD>持久/持久化 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>wrapper class </TD>
<TD>封装/包裹类 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>logical mapping </TD>
<TD>逻辑映射 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>physical mapping </TD>
<TD>物理映射 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>identity </TD>
<TD>标识(符) </TD>
<TD>能唯一标识一个对象的字段/列，对应到数据库一般为主键 </TD></TR>
<TR>
<TD>Identifier </TD>
<TD>标识符 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Versioning for optimistic locking </TD>
<TD>乐观锁定版本控制 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transient </TD>
<TD>瞬态/瞬时的 </TD>
<TD>这个词建议和具体的词组一起出现，单独出现似乎没有什么特别的意义 </TD></TR>
<TR>
<TD>fetch </TD>
<TD>获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>lazy fetch </TD>
<TD>延迟获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>eagerly fetch </TD>
<TD>即时获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>lazy loading </TD>
<TD>延迟加载 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>lazy simple properties </TD>
<TD>延时加载的简单属性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>lazy association fetching </TD>
<TD>延时关联获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>projection </TD>
<TD>投影 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>ordinal </TD>
<TD>顺序的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>portable application </TD>
<TD>可移植的应用 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Class-defined </TD>
<TD>已定义类 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Table per Class </TD>
<TD>每个类一张表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Single Table per Class Hierarchy </TD>
<TD>每个类层次结构一张表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Joined Subclass </TD>
<TD>连接的子类 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>inheritance hierarchy </TD>
<TD>继承层次结构 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>one to many </TD>
<TD>一对多 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>one to one </TD>
<TD>一对一 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>many to many </TD>
<TD>多对多 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>bidirectional </TD>
<TD>双向的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>unidirectional </TD>
<TD>单向的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>discriminator </TD>
<TD>识别符 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>discriminator column </TD>
<TD>识别符列 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>discriminator type </TD>
<TD>识别符类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>owner side </TD>
<TD>所有者侧 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>owner table </TD>
<TD>所有者表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>owner property </TD>
<TD>所有者属性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>owner primary key </TD>
<TD>所有者主键 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>concatenation </TD>
<TD>串联/链接 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>owned side </TD>
<TD>被拥有侧 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Collection </TD>
<TD>集合/集合类 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>version </TD>
<TD>版本 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>timestamp </TD>
<TD>时间戳 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>optimize </TD>
<TD>优化 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Transitive persistence </TD>
<TD>传播性持久化 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>cascading </TD>
<TD>级联 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Association fetching </TD>
<TD>关联获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>composite primary key </TD>
<TD>复合主键 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>secondary table </TD>
<TD>次级表 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Cache mode </TD>
<TD>缓存模式 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Flush mode </TD>
<TD>Flush模式 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Cache region </TD>
<TD>缓存区 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>second level cache </TD>
<TD>二级缓存 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>query </TD>
<TD>查询 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>native query </TD>
<TD>本地查询 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>clause </TD>
<TD>子句 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>scope </TD>
<TD>范围 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>global scope </TD>
<TD>全局范围 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>field level </TD>
<TD>字段级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>property level </TD>
<TD>属性级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>class level </TD>
<TD>类级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>package level </TD>
<TD>包级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>bean level </TD>
<TD>bean级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>application level </TD>
<TD>应用级 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>annotations extension </TD>
<TD>注解扩展 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persister </TD>
<TD>持续 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>optimistic lock </TD>
<TD>乐观锁 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>batch size </TD>
<TD>批大小 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>context </TD>
<TD>上下文 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Access type </TD>
<TD>访问类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Sub-entity </TD>
<TD>子实体 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>composite user type </TD>
<TD>复合自定义类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>comparator </TD>
<TD>比较器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>comparator type </TD>
<TD>比较器类型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>callable </TD>
<TD>可调用的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>filter </TD>
<TD>过滤器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>validator </TD>
<TD>验证器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>build in </TD>
<TD>内建 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>constraint descriptor </TD>
<TD>约束描述符 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>constraint validator </TD>
<TD>约束验证 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>automatic indexing </TD>
<TD>自动索引 </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">常见技术英语</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TD>implicit </TD>
<TD>隐式 </TD>
<TD>　　　　　　　　　　　.　　　　　　　</TD></TR>
<TR>
<TD>explicit </TD>
<TD>显式 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>capitalize </TD>
<TD>大写的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>mandatory </TD>
<TD>必须的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>externalize </TD>
<TD>外部化 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>legacy system </TD>
<TD>遗留系统 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>concurrency </TD>
<TD>并行 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>cacheable </TD>
<TD>可缓存的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Formula </TD>
<TD>公式 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>mutable </TD>
<TD>可变的 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>immutable </TD>
<TD>不可变 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>dynamic </TD>
<TD>动态 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>scalar </TD>
<TD>标量 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>hash </TD>
<TD>哈希 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>hint </TD>
<TD>提示 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>regular expression </TD>
<TD>正则表达式 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>override </TD>
<TD>覆写/覆盖 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">===============================================================================================</P>
<P style="TEXT-INDENT: 2em">Enterprise JavaBeans 3.0 (5th Edition) 中文版词汇表 </P>
<P style="TEXT-INDENT: 2em"><A href="http://wiki.redsaga.com/confluence/display/E3OG/Home">http://wiki.redsaga.com/confluence/display/E3OG/Home</A> </P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TD>standalone applications </TD>
<TD>独立桌面应用程序 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>distributed objects </TD>
<TD>分布（式）对象 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>response time </TD>
<TD>响应时间 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Enterprise JavaBeans </TD>
<TD>Enterprise JavaBeans </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Java Persistence </TD>
<TD>Java Persistence </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>EntityManager </TD>
<TD>EntityManager </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>entity manager </TD>
<TD>entity manager </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Java EE Connector Architecture </TD>
<TD>Java EE 连接器架构 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Session bean </TD>
<TD>Session bean </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>stub proxy </TD>
<TD>存根代理 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>deployment descriptor </TD>
<TD>部署描述文件 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>message destination </TD>
<TD>message destination </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>enterprise beans </TD>
<TD>enterprise beans </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>bean class </TD>
<TD>bean class </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>EJB object </TD>
<TD>EJB object or EJB对象 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>delegate </TD>
<TD>委托，委派 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>web services </TD>
<TD>web services </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>annotation </TD>
<TD>注解 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>field </TD>
<TD>数据成员 </TD>
<TD>见<A href="http://jjhou.csdn.net/jjtbooks-thinking-in-java-2e-gb.htm">jjhou的解释<IMG src="http://wiki.redsaga.com/confluence/images/icons/linkext7.gif" border=0></A> </TD></TR>
<TR>
<TD>column </TD>
<TD>（数据库）字段 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>property </TD>
<TD>成员属性 </TD>
<TD>指bean class的getter/setter </TD></TR>
<TR>
<TD>attribute </TD>
<TD>属性 </TD>
<TD><BR clear=all></TD></TR>
<TR>
<TD>method </TD>
<TD>成员函数 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>constructor </TD>
<TD>构造函数 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persistence provider </TD>
<TD>persistence provider or 持久化（服务）提供程序 </TD>
<TD>倾向于前者 </TD></TR>
<TR>
<TD>unqualified class name </TD>
<TD>非限定类名 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>build </TD>
<TD>生成 or 构建 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>interesting </TD>
<TD>值得注意的 </TD>
<TD>在技术书籍interesting通常不是指有趣 </TD></TR>
<TR>
<TD>undeploy </TD>
<TD>卸载 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persistence context </TD>
<TD>persistence context </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persistence unit </TD>
<TD>persistence unit </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>persistence manager </TD>
<TD>persistence manager </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>eagerly fetch </TD>
<TD>立即获取 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>detached </TD>
<TD>游离 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>managed </TD>
<TD>托管，受管 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>wrapper types&nbsp; </TD>
<TD>封装类（型）&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>unchecked exception </TD>
<TD>unchecked exception&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>partial XML deployment </TD>
<TD>部署描述片段&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>abstract schema name <BR clear=all></TD>
<TD>抽象结构名称 <BR clear=all></TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>schema&nbsp; </TD>
<TD>（数据库）schema&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>element&nbsp; </TD>
<TD>（XML）元素 or 节点？&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>remote/local/endpoint interface <BR clear=all></TD>
<TD>远程/本地/端点接口&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>SQL join&nbsp; </TD>
<TD>SQL join&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>relationship&nbsp; </TD>
<TD>关联/关系/关联关系&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>operator&nbsp; </TD>
<TD>操作符/运算符 <BR clear=all></TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transient property&nbsp; </TD>
<TD>非持久型成员属性 </TD>
<TD>transient在单独使用时也可能译为"瞬时的"&nbsp; </TD></TR>
<TR>
<TD>entity listener&nbsp; </TD>
<TD>entity监听器&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>named&nbsp; </TD>
<TD>具名的&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transaction demarcation&nbsp; </TD>
<TD>事务划分&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transaction-aware&nbsp; </TD>
<TD>事务感知的&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transaction manager&nbsp; </TD>
<TD>transaction manager&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>transactional context&nbsp; </TD>
<TD>transactional context&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>heuristic decision&nbsp;&nbsp; </TD>
<TD>试探性决策 <BR clear=all></TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>phantom read <BR clear=all></TD>
<TD>幻读 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>build&nbsp; </TD>
<TD>生成、构建&nbsp; </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">===============================================================================================</P>
<P style="TEXT-INDENT: 2em">Spring Reference 2.0翻译时采用的术语表</P>
<P style="TEXT-INDENT: 2em">&nbsp;<A href="http://wiki.redsaga.com/confluence/pages/viewpage.action?pageId=404">http://wiki.redsaga.com/confluence/pages/viewpage.action?pageId=404</A>&nbsp;&nbsp;</P>
<P style="TEXT-INDENT: 2em"><A ></A>I 核心技术<A ></A></P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>&nbsp;BeanWrapper </TD>
<TD>&nbsp;BeanWrapper </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;DataBinder </TD>
<TD>&nbsp;DataBinder </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;multipart file resolver </TD>
<TD>&nbsp;分段文件解析器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;MultiActionController </TD>
<TD>&nbsp;MultiActionController </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;multipart </TD>
<TD>&nbsp;分段 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;web view resolvers </TD>
<TD>&nbsp;web视图解析器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;web controller </TD>
<TD>&nbsp;web控制器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;handler </TD>
<TD>&nbsp;处理器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;hooks </TD>
<TD>&nbsp;钩子(hooks) </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;domain special language </TD>
<TD>&nbsp;DSL(domain special language) </TD>
<TD>&nbsp;不翻译（简写） </TD></TR>
<TR>
<TD>&nbsp;class loader </TD>
<TD>&nbsp;class loader </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;classpath </TD>
<TD>&nbsp;classpath </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;Spring Framework </TD>
<TD>&nbsp;Spring Framework </TD>
<TD>&nbsp;不翻译，注意F是大写的 </TD></TR>
<TR>
<TD>&nbsp;framework </TD>
<TD>&nbsp;框架 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;non-intrusive(ness) </TD>
<TD>&nbsp;非侵入性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;convention-over-configuration </TD>
<TD>&nbsp;惯例优先 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;collaborator </TD>
<TD>&nbsp;协作者 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;autowiring </TD>
<TD>&nbsp;自动连接 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;wire </TD>
<TD>&nbsp;连接 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;singleton </TD>
<TD>&nbsp;单件 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;prototype </TD>
<TD>&nbsp;原型 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;DI </TD>
<TD>&nbsp;依赖注入 </TD>
<TD>&nbsp;Dependency Injection </TD></TR>
<TR>
<TD>&nbsp;scope </TD>
<TD>&nbsp;作用域 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;lazily-instantiating </TD>
<TD>&nbsp;延迟实例化 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;inner bean </TD>
<TD>&nbsp;内部Bean </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;session </TD>
<TD>&nbsp;session </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;type matching </TD>
<TD>&nbsp;类型匹配 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;callback </TD>
<TD>&nbsp;回调 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;IoC </TD>
<TD>&nbsp;IoC(全称: Inversion of Control) </TD>
<TD>不翻译 </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><A ></A>AOP</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>&nbsp;advice </TD>
<TD>&nbsp;通知 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;aspect </TD>
<TD>&nbsp;切面 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>&nbsp;pointcut </TD>
<TD>&nbsp;切入点 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><A ></A>II 中间层数据访问&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>checked exception </TD>
<TD>checked exception&nbsp; </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>unchecked exception </TD>
<TD>unchecked exception </TD>
<TD>&nbsp;不翻译 </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><A ></A>III Web相关&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>&nbsp;portlet </TD>
<TD>&nbsp;portlet </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;application context </TD>
<TD>&nbsp;application context&nbsp; </TD>
<TD>&nbsp;不翻译 </TD></TR>
<TR>
<TD>&nbsp;http session </TD>
<TD>&nbsp;http session </TD>
<TD>&nbsp;不翻译 </TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><A ></A>IV 整合<A ></A>&nbsp;</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>trigger </TD>
<TD>触发器 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>component </TD>
<TD>组件 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>consumption </TD>
<TD>消费 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>destination </TD>
<TD>目的地&nbsp; </TD>
<TD>不翻译 </TD></TR>
<TR>
<TD>production </TD>
<TD>生产 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>message </TD>
<TD>消息&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>session </TD>
<TD>会话&nbsp; </TD>
<TD>不翻译 </TD></TR>
<TR>
<TD>listener </TD>
<TD>监听 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>provider </TD>
<TD>提供者&nbsp; </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>receiver </TD>
<TD>接收者 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>attribute </TD>
<TD>属性 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>lazy-initialized </TD>
<TD>延迟加载 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>Commons Attributes </TD>
<TD>Commons Attributes&nbsp; </TD>
<TD>不翻译&nbsp; </TD></TR>
<TR>
<TD>export </TD>
<TD>发布 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em"><A ></A>Annotations</P>
<P style="TEXT-INDENT: 2em">
<TABLE cellSpacing=2 cellPadding=2 summary="" border=1>
<TBODY>
<TR>
<TH>&nbsp;原文&nbsp; </TH>
<TH>&nbsp;译文 </TH>
<TH>&nbsp;备注 </TH></TR>
<TR>
<TD>annotation </TD>
<TD>&nbsp;注解 </TD>
<TD>&nbsp;</TD></TR>
<TR>
<TD>metadata </TD>
<TD>&nbsp;元数据 </TD>
<TD>&nbsp;</TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200831175921784</comments>
    <slash:comments>2</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200831175921784</guid>
    <pubDate>Fri, 11 Apr 2008 19:59:21 +0800</pubDate>
    <dcterms:modified>2008-04-13T11:08:37+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[我的IE收藏夹（20080409）]]></title>	
    <link>http://javary163.blog.163.com/blog/static/794133320083922343716</link>
    <description><![CDATA[<div><DT></DT>
<P style="TEXT-INDENT: 2em">Ajax</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://docs.jquery.com/Main_Page">jQuery JavaScript Library</A> 
</DT><DT><A href="http://www.prototypejs.org/">Prototype JavaScript framework: Easy Ajax and DOM manipulation for dynamic web applications</A> 
</DT><DT><A href="http://mootools.net/">mootools - home</A> 
</DT><DT><A href="http://wiki.freaks-unidos.net/javascript-libraries#documentation">Evaluation of Javascript Libraries</A> 
</DT><DT><A href="http://www.json.org/java/index.html">JSON in Java</A> 
</DT><DT><A href="http://json.org/json-zh.html">JSON 中文介绍</A> 
</DT><DT><A href="http://www.dojochina.com/">DOJO中国 | spry中文站 | ext 中文站 | dojo中文站</A> 
</DT><DT><A href="http://ajaxbbs.net/blog/page/1/2/">AJAXBBS.NET - WEB前端技术交流博客</A> 
</DT><DT><A href="http://bbs.jquery.org.cn/">http://bbs.jquery.org.cn</A> 
</DT><DT><A href="http://www.javaeye.com/topic/103265">Ajax + Struts 实现省市联动详解</A> 
</DT><DT><A href="http://www.ajaxjs.com/frank/">frank's UI Gadren.</A> 
</DT><DT><A href="http://www.blogjava.net/hadeslee/archive/2007/11/24/161778.html">javascript经典例子</A> 
</DT><DT><A href="http://www.javaeye.com/topic/141124">使用json取代传统的form提交</A> 
</DT><DT><A href="http://code.google.com/p/flot/">flot - Google Code</A> 
</DT><DT><A href="http://dev2dev.bea.com.cn/techdoc/2007/03/java-soa-introduction-json.html">技术文章-JSON简介</A> 
</DT><DT><A href="http://dev2dev.bea.com.cn/techdoc/2005110103.html">技术文章-Ajax简介</A> 
</DT><DT><A href="http://www.stgt.gov/trade/App_Form/home/default.aspx">商贸通</A> 
</DT><DT><A href="http://jscook.yuanheng.org/">JSCook Project</A> 
</DT><DT><A href="http://www.haokanbu.com/user/1902/">敏捷UI工程师Tin - 好看簿</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT>
<P></P>
<P style="TEXT-INDENT: 2em">EXT2</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.easyjf.com/blog/html/20080217/1179671.html">ExtJS2.0实用简明教程</A> 
</DT><DT><A href="file:///F:/绝对收藏/components/ext-1.1.1/docs/index.html">Ext Documentation Center</A> 
</DT><DT><A href="http://www.infoq.com/cn/news/2007/10/extjs20">ExtJS作者Jack Slocum的访谈</A> 
</DT><DT><A href="http://www.javaeye.com/topic/142073">我的ext范例</A> 
</DT><DT><A href="http://www.javaeye.com/topic/133835">Ext的组件结构分析,附Ext组件结构图</A> 
</DT><DT><A href="http://www.javaeye.com/topic/127256">Ext源码概览</A> 
</DT><DT><A href="http://tof2k.com/ext/formbuilder/">Ext Gui Builder</A> 
</DT><DT><A href="http://www.ajaxjs.com/">EXT JS中文站</A> 
</DT><DT><A href="http://exttld.com/">ExtTLD - Simplify ExtJS for JEE</A> 
</DT><DT><A href="http://www.javaeye.com/topic/132995">ext2的树组件的使用（从底层到表现层，异步加载） - EXT - AJAX - JavaEye论坛</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">birt</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.eclipse.org/birt/phoenix/examples/reports/">BIRT Example Reports</A> 
</DT><DT><A href="http://www.blogjava.net/rosen/archive/2005/12/17/24348.html">BIRT 总览（翻译）</A> 
</DT><DT><A href="http://www-128.ibm.com/developerworks/cn/opensource/os-ecl-birt/">BIRT：基于 Eclipse 的报表</A> 
</DT><DT><A href="http://www.iocblog.net/static/2007/63.html">BIRT报表 - IocBlog</A> 
</DT><DT><A href="http://www.report99.com/chanpin/chp_birt.htm">Birt报表目录</A> 
</DT><DT><A href="http://www.j2medev.com/blog/user1/41561/cmd.html?do=blogs&amp;id=560&amp;uid=41561">birt相关</A> 
</DT><DT><A href="http://www.birtgroup.net/forums/list.page">BIRT中文组BIRT论坛</A> 
</DT><DT><A href="http://download.eclipse.org/birt/downloads/examples/misc/BIRT2.1Demo/EclipseDemo.html">Created by Camtasia Studio 3</A> 
</DT><DT><A href="http://wiki.eclipse.org/Examples_%28BIRT%29">Examples (BIRT) - Eclipsepedia</A> 
</DT><DT><A href="http://blogger.org.cn/blog/blog.asp?name=sixsun">SixSun的Blog</A> 
</DT><DT><A href="http://www.theserverside.com/tt/articles/article.tss?l=EclipseBRT">Using Eclipse BIRT Report Libraries and Templates</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Hibernate</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://forum.hibernate.org/viewforum.php?f=12&amp;sid=8d777dc54a5ae85ae4288634eb83d5c1">Hibernate Forums - Hibernate Users (Chinese)</A> 
</DT><DT><A href="http://www.javaeye.com/topic/17352">hibernate mapping文件中的标记详解：关系标记-Hibernate-Java -JavaEye做最棒的软件开发交流社区</A> 
</DT><DT><A href="http://www.javaeye.com/topic/17351">hibernate mapping文件中的标记详解：映射标记-Hibernate-Java -JavaEye做最棒的软件开发交流社区</A> 
</DT><DT><A href="http://www.blogjava.net/rosen/archive/2005/08/12/9937.html">Hibernate、iBATIS 与 BLOB - 成都心情</A> 
</DT><DT><A href="http://www.javaeye.com/topic/4988">Hibernate深度探险！- JavaEye论坛</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">java</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.javaeye.com/topic/136427">java之classloader体系结构</A> 
</DT><DT><A href="http://www.blogjava.net/zhoudq/archive/2007/11/11/159780.html">你还在用if else吗？</A> 
</DT><DT><A href="http://www.blogjava.net/bulktree/archive/2007/12/01/164532.html">去北京面试时的题目（老师生日）微软面试题</A> 
</DT><DT><A href="http://www.blogjava.net/javacap/archive/2007/12/14/167764.html">图及其算法复习（Java实现) 一：存储结构，深度优先周游，广度优先周游</A> 
</DT><DT><A href="http://www.blogjava.net/javacap/archive/2007/12/14/167618.html">排序算法复习（Java实现）(二）： 归并排序，堆排序，桶式排序，基数排序 - Java杂家</A> 
</DT><DT><A href="https://www6.software.ibm.com/developerworks/cn/education/java/j-mavenv2/index.html">Apache Maven 2 简介</A> 
</DT><DT><A href="http://www.javaeye.com/topic/149130">mysql集群整理版</A> 
</DT><DT><A href="ftp://ftp.ntu.edu.tw/">jar库</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">OSWorkFlow</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://cucuchen520.javaeye.com/">cucuchen520(陈刚) -JavaEye技术社区</A> 
</DT><DT><A href="http://www.opensymphony.com/osworkflow/">OSWorkflow - OSWorkflow Overview</A> 
</DT><DT><A href="https://osworkflow.dev.java.net/source/browse/osworkflow/src/test/samples/">osworkflow- CVS</A> 
</DT><DT><A href="http://www.javaeye.com/topic/100499">OSWorkflow实例——请假审批系统</A> 
</DT><DT><A href="file:///i:/绝对收藏/osWorkflow/osworkflow-2.8.0/docs/api/index.html">Workflow API - 2.8.0</A> 
</DT><DT><A href="file:///F:/绝对收藏/osWorkflow/osworkflow-2.8.0/docs/1.%20Your%20first%20workflow%20-%20Chinese.html">Your first workflow - Chinese</A> 
</DT><DT><A href="http://wangyi878750.javaeye.com/blog/121420">学习OSWorkFlow的文章收集-燕子钨</A> 
</DT><DT><A href="http://blog.csdn.net/james999/category/52990.aspx">银狐999 - WFEngine_OSWorkflow</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Other</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://orm.aquatool.org/nl/zh/CN/index.html">Aquarius ORM Studio</A> 
</DT><DT><A href="http://www.newxy.net/zh_cn/index.jsp">newxy 新坐标</A> 
</DT><DT><A href="http://www.blogjava.net/newxy/">newxy新坐标- BlogJava</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/opensource/os-eclipse-clean/index.html?S_TACT=105AGX52&amp;S_CMP=techcsdn">使用Eclipse V3.3保持代码干净</A> 
</DT><DT><A href="http://www.blogjava.net/ynstudio/archive/2007/12/01/164508.html">初探appfuse2.0.1</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Spring</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.javaeye.com/topic/15057?page=1">Hibernate-Spring-Struts架构使用OpenSessionInView的问题-Struts-Java -JavaEye做最棒的软件开发交流社区</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils1/">Spring 的优秀工具类第 1 部分</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils2/">Spring 的优秀工具类第 2 部分</A> 
</DT><DT><A href="http://www.blogjava.net/ltc603/archive/2006/01/13/27966.html">Struts+Spring+Hibernate实现上传下载</A> 
</DT><DT><A href="http://www.javaeye.com/topic/49077">Struts+Spring+Hibernate实现上传下载（MyEclipse版）--入门讨论 -JavaEye做最棒的软件开发交流社区</A> 
</DT><DT><A href="http://www.blogjava.net/ltc603/archive/2006/03/09/34405.html">关于OpenSessionInViewFilter - 花香蝶自来 - BlogJava</A> 
</DT><DT><A href="http://dev2dev.bea.com.cn/blog/chaocai/200712/spring_osgi_04_719.html">Spring2.5的组件自动搜索</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/java/j-genericdao.html">不要重复 DAO！</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Struts</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://hi.baidu.com/javahua/blog/item/57890dce796f8b38b700c845.html">DispatchAction的详细说明_下流JAVA</A> 
</DT><DT><A href="http://blog.csdn.net/hdy007/archive/2007/03/01/1518289.aspx">struts构建文件上传 - neager - CSDNBlog</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">svn</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www-128.ibm.com/developerworks/cn/java/j-subversion/index.html">Subversion 简介</A> 
</DT><DT><A href="http://www.javaeye.com/topic/72489">Subversion精细的目录访问权限控制</A> 
</DT><DT><A href="http://doc.iusesvn.com/?viewmode=list&amp;action=index">Subversion中文文档中心</A> 
</DT><DT><A href="http://www.subversion.org.cn/index.php?option=com_frontpage&amp;Itemid=1">Subversion中文站</A> 
</DT><DT><A href="http://shjy-nicholas.javaeye.com/category/12438">svn</A> 
</DT><DT><A href="http://www-128.ibm.com/developerworks/cn/opensource/os-ecl-subversion/index.html">如何Subversion</A> 
</DT><DT><A href="http://www.iusesvn.com/html/index.html">我用Subversion</A> 
</DT><DT><A href="http://wplqw.javaeye.com/blog/108982">学习安装SVN1.4.4</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">资源教程</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.blogjava.net/beansoft/">BeanSoft's Blog</A> 
</DT><DT><A href="http://lib.verycd.com/2007/01/29/0000137593.html">CHM格式编程帮助文档</A> 
</DT><DT><A href="http://live.csdn.net/list.aspx">CSDN视频频道</A> 
</DT><DT><A href="http://mldnadmin.gbaopan.com/">G宝盘-mldnadmin</A> 
</DT><DT><A href="http://javary.gbaopan.com/">javary - G宝盘</A> 
</DT><DT><A href="http://www.open68.com/">Java文档大全</A> 
</DT><DT><A href="http://www.mldn.cn/topic/log4j/index.htm">LOG4J专题报道</A> 
</DT><DT><A href="http://www.mygis.com.cn/">MapInfo技术论坛</A> 
</DT><DT><A href="http://www.mldn.cn/">MLDN</A> 
</DT><DT><A href="http://blog.csdn.net/yethyeth/archive/2007/05/03/1595173.aspx">myeclispe中uml建模的简单教程</A> 
</DT><DT><A href="http://blog.csdn.net/xujiaqiang/">taelons的专栏（extjs）</A> 
</DT><DT><A href="http://www.verycd.com/">VeryCD</A> 
</DT><DT><A href="http://bbs.langsin.com/viewthread.php?tid=2164">从入门到精通Div+Css视频教程</A> 
</DT><DT><A href="ftp://192.168.1.96/">公司FTP</A> 
</DT><DT><A href="http://bbs.langsin.com/index.php">浪曦视频在线</A> 
</DT><DT><A href="http://eimhe.com/bbs/">美河学习在线</A> 
</DT><DT><A href="http://blog.csdn.net/daoquan/archive/2007/12/25/1967042.aspx">编程常用软件下载</A> 
</DT><DT><A href="http://www.javathinker.org/main.jsp?bc=train/training_online.htm">JavaThinker</A> 
</DT><DT><A href="http://www.sepa.gov.cn/tech/hjbz/bzwb/">环境保护标准</A> 
</DT><DT><A href="http://www.lbsmap.net/sxdata/">山西数据下载</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">blog</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.blogjava.net/supercrsky/">我的漫漫程序之旅 - BlogJava</A> 
</DT><DT><A href="http://www.busfly.cn/">巴士飞扬-专注编程,网站,专业技术</A> 
</DT><DT><A href="http://cs.5213.blog.163.com/">摇曳的黎明</A> 
</DT><DT><A href="http://wen.jing1227.blog.163.com/">如果你也听说~~ - 花瓣~雨~ - 网易博客</A> 
</DT><DT><A href="http://blog.163.com/elve_wang@126/">.︿莪放弃.灬 - 柠檬水的味道 - 网易博客</A> 
</DT><DT><A href="http://cjr52155.blog.163.com/profile/">徒留一帘幽梦的博客</A> 
</DT><DT><A href="http://liujia1259.blog.163.com/">曾经的边缘的博客</A> 
</DT><DT><A href="http://blog.163.com/liudongxia0000@126/">liudongxia0000的博客</A> 
</DT><DT><A href="http://suxi-008.blog.163.com/profile/">彩虹的微笑</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Mylyn</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.infoq.com/cn/news/2007/10/mylyn">Mylyn 2.1：重构Eclipse用户界面提高生产力</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/java/j-mylyn1/">Mylyn 2.0，第 1 部分: 集成的任务管理</A> 
</DT><DT><A href="http://www.ibm.com/developerworks/cn/java/j-mylyn2/index.html">Mylyn 2.0，第 2 部分: 自动上下文管理</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">股票</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://siage168.blog.sohu.com/">执着冷血的--四阿哥-搜狐博客</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">seam</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://fangzhouxing.javaeye.com/?page=2">fangzhouxing - JavaEye技术网站</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">oracle</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.oracle.com/technology/global/cn/index.html">Oracle 中文技术网</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">Gis</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.gisforum.net/magazine/">《GIS开发者》第十四期</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">flex</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.k-zone.cn/zblog/">Kenshin's Flex Blog-关注Flex</A> 
</DT><DT><A href="http://blog.eshangrao.com/index.php/">闲云孤鹤 - flex</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT>
<P></P>
<P style="TEXT-INDENT: 2em">图表</P>
<P style="TEXT-INDENT: 2em">
</P><DL>
<P></P>
<P style="TEXT-INDENT: 2em">
</P><DT><A href="http://www.blogjava.net/Alpha/archive/2008/01/11/93569.html">JFreeChart在JSP中的应用实例</A> 
</DT><DT><A href="http://java.mblogger.cn/zhipingch/posts/27244.aspx">JFreeChart Help api中文简介</A> 
</DT><DT><A href="http://www.blogjava.net/amigoxie/archive/2008/02/20/180779.html">用JFreeChart实现数据下探（给柱状图的每根柱子加链接的例子） - 阿蜜果 - BlogJava</A> </DT></DL>
<P></P>
<P style="TEXT-INDENT: 2em"></P>
</DT><DT><A href="http://book.sina.com.cn/nzt/live/cha/shuirenzhimayun/index.shtml">谁认识马云_读书频道_新浪网</A> 
</DT><DT><A href="http://taiyuan.soufun.com/">太原房地产门户-搜房网</A> </DT></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/794133320083922343716</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/794133320083922343716</guid>
    <pubDate>Wed, 9 Apr 2008 14:23:43 +0800</pubDate>
    <dcterms:modified>2008-04-09T14:23:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[一点常识]]></title>	
    <link>http://javary163.blog.163.com/blog/static/794133320082721521187</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;<FONT color=#3366ff>&nbsp;&nbsp; 1.getParameter 与 getAttribute</FONT> </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getParameter（）</P>
<P style="TEXT-INDENT: 2em">是取得request.setAttribute("name","您自己的值");设置的值,接受来自<SPAN style="FONT-SIZE: 12pt">servlet</SPAN><SPAN style="FONT-SIZE: 12pt">或</SPAN><SPAN style="FONT-SIZE: 12pt">Action<SPAN style="FONT-SIZE: 12pt">的变量,<SPAN style="FONT-SIZE: 12pt">获得的是对象类型</SPAN>。</SPAN></SPAN>
</P><P style="TEXT-INDENT: 2em"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt">getAttribute （）<SPAN style="FONT-SIZE: 12pt">提取发送过来的参数,接受来自<SPAN style="FONT-SIZE: 12pt">get</SPAN><SPAN style="FONT-SIZE: 12pt">方法或</SPAN><SPAN style="FONT-SIZE: 12pt">post</SPAN><SPAN style="FONT-SIZE: 12pt">方法的参数,<SPAN style="FONT-SIZE: 12pt">获得的是字符串类型<SPAN style="FONT-SIZE: 12pt">。</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
</P><P style="TEXT-INDENT: 2em"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><FONT color=#3366ff>2.hibernate get 和load</FONT></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
</P><P style="TEXT-INDENT: 2em"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt">get() 直接从数据库中查，没查到返回null.</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
</P><P style="TEXT-INDENT: 2em"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt"><SPAN style="FONT-SIZE: 12pt">load() 先从内存中装载，如果以前没有装载或查询出来，才开始查询数据库.如查不到返回ObjectNotFounfException.</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/794133320082721521187</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/794133320082721521187</guid>
    <pubDate>Fri, 7 Mar 2008 14:15:21 +0800</pubDate>
    <dcterms:modified>2008-03-07T14:15:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[OA]]></title>	
    <link>http://javary163.blog.163.com/blog/static/794133320082552610766</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">
</P><UL>
<LI>
<P></P>
<P style="TEXT-INDENT: 2em">工作台</P>
<P style="TEXT-INDENT: 2em">包括我的业务、业务过程、过程监控、更改密码、任务中心、我的邮件、我的日程、我的便笺、在线聊天等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">个人管理</P>
<P style="TEXT-INDENT: 2em">包括工作日报、工作周报、工作月报、通讯录等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">信息管理</P>
<P style="TEXT-INDENT: 2em">包括通知公告、时事新闻、规章制度、头条信息等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">文档管理</P>
<P style="TEXT-INDENT: 2em">包括文档、发文、收文等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">行政管理</P>
<P style="TEXT-INDENT: 2em">包括办公用品领用申请、印章使用申请、固定资产请购、固定资产领用、车辆使用登记、会议室使用登记等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">人事管理</P>
<P style="TEXT-INDENT: 2em">包括人员需求申请、加班申请、出差申请、请假申请、报销申请、职工基本档案等。 </P>
</LI><LI>
<P></P>
<P style="TEXT-INDENT: 2em">基础数据</P>
<P style="TEXT-INDENT: 2em">包括车辆、物品、印章、会议室、政治面目、文化程度、职务、职工类型、民族、部门、职称等。 </P></LI></UL></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/794133320082552610766</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/794133320082552610766</guid>
    <pubDate>Wed, 5 Mar 2008 17:26:10 +0800</pubDate>
    <dcterms:modified>2008-03-05T17:26:10+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[(转)Java程序快速转换为windows服务运行 ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200801815333781</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><A href="http://www.blogjava.net/midea0978/archive/2008/01/17/175953.html">1分钟Java程序快速转换为windows服务运行</A> </P>
<P style="TEXT-INDENT: 2em">1、首先到请下载最新版本的Java Service Wrapper，<A href="http://jaist.dl.sourceforge.net/sourceforge/wrapper/wrapper-windows-x86-32-3.2.3.zip">点我下载</A>。</P>
<P style="TEXT-INDENT: 2em">2、准备如下文件，复制到test目录，这些文件可以从下载包中找到：</P>
<P style="TEXT-INDENT: 2em">wrapper.dll</P>
<P style="TEXT-INDENT: 2em">wrapper.exe</P>
<P style="TEXT-INDENT: 2em">wrapper.jar</P>
<P style="TEXT-INDENT: 2em">3、编写wrapper.conf，也放在同一级目录下面，内容如下</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;Java&nbsp;Application完整路径</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.java.command=java</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#定义程序运行的classpath</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.java.classpath.1=wrapper.jar</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.java.classpath.2=[jar&nbsp;file/path]</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;Java&nbsp;Library&nbsp;Path&nbsp;(location&nbsp;of&nbsp;Wrapper.DLL&nbsp;or&nbsp;libwrapper.so)</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.java.library.path.1=.</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;Java&nbsp;Additional&nbsp;Parameters</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#wrapper.java.additional.1=</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;Initial&nbsp;Java&nbsp;Heap&nbsp;Size&nbsp;(in&nbsp;MB)</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#wrapper.java.initmemory=3</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;Maximum&nbsp;Java&nbsp;Heap&nbsp;Size&nbsp;(in&nbsp;MB)</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#wrapper.java.maxmemory=64</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;运行的Main&nbsp;Class</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.app.parameter.1=</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.console.format=PM</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.console.loglevel=INFO</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.logfile=Beanskt.log</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.logfile.format=LPTM</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.logfile.loglevel=INFO</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.logfile.maxsize=0</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.logfile.maxfiles=0</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.syslog.loglevel=NONE</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#window服务配置</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.console.title=samplesvr</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#服务名</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.name=samplesvr</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;显示名称</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.displayname=&nbsp;sample&nbsp;&nbsp;Service</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;描述</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.description=sample&nbsp;Service</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;依赖项</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.dependency.1=</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;启动模式：&nbsp;&nbsp;AUTO_START&nbsp;or&nbsp;DEMAND_START</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.starttype=AUTO_START</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>#&nbsp;是否交互.</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0>wrapper.ntservice.interactive=false</P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em"><IMG src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" border=0></P>
<P style="TEXT-INDENT: 2em">4、运行测试，安装服务</P>
<P style="TEXT-INDENT: 2em">》测试运行是否正常</P>
<P style="TEXT-INDENT: 2em">wrapper.exe -c wrapper.conf </P>
<P style="TEXT-INDENT: 2em">》安装服务</P>
<P style="TEXT-INDENT: 2em">wrapper.exe -i wrapper.conf </P>
<P style="TEXT-INDENT: 2em">》卸载服务</P>
<P style="TEXT-INDENT: 2em">wrapper.exe -r wrapper.conf </P>
<P style="TEXT-INDENT: 2em">》启动</P>
<P style="TEXT-INDENT: 2em">wrapper.exe -t wrapper.conf </P>
<P style="TEXT-INDENT: 2em">》停止</P>
<P style="TEXT-INDENT: 2em">wrapper.exe -p wrapper.conf </P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200801815333781</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200801815333781</guid>
    <pubDate>Fri, 18 Jan 2008 13:53:33 +0800</pubDate>
    <dcterms:modified>2008-01-18T13:53:33+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[中国java开源界最可爱的人们 ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/79413332007111433113701</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">转至<A href="http://www.blogjava.net/rain2008/"><FONT face=宋体 color=#009933>小雨开源</FONT></A></P>
<P style="TEXT-INDENT: 2em"><A href="http://www.blogjava.net/rain2008/archive/2007/12/07/166020.html">中国java开源界最可爱的人们</A> </P>
<P style="TEXT-INDENT: 2em">记得去年某世界级的大师到中国忽悠几天后回去说，中国只是开源“消费者”，那话的意思好像我们只会从开源社区中索取，不懂得贡献似的。那么实际情况又是如何呢？这是昨晚整理的中国Java开源领域的斗士们的情况，根据他们对中国java开源界的贡献值、重要性、发展潜力等作了一个综合评价，可以说他们是中国Java开源界里最可爱的人。欢迎大家来看看这里是否有你认识英雄。</P>
<P style="TEXT-INDENT: 2em">　　1、&nbsp; Huihoo动力—当之无愧的老大&nbsp;</P>
<P style="TEXT-INDENT: 2em">代表人物：龙辉(Allen)、程勇(Peter)、杨泳(Orbat)　 </P>
<P style="TEXT-INDENT: 2em">代表项目：JFox等</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.huihoo.org/">http://www.huihoo.org/</A></P>
<P style="TEXT-INDENT: 2em">简评：说到java开源，大家不可能不知道Huihoo，Huihoo曾经创造了很多奇迹，不管是对是团队成员的技术水平还是开源理念、开源组织的管理等都可以说是最棒的，JFox项目一直具有生命力，huihoo这么多年了也一直具有生命力，Allen、Peter、Orbat等对这个团队这么多年来的坚持及贡献，要选国内最值得推崇的开源团体，huihoo排在第一位可以说是当之无愧。因此，他们是最可爱的人。</P>
<P style="TEXT-INDENT: 2em">2、Jdon—高处不胜寒</P>
<P style="TEXT-INDENT: 2em">代表人物：彭晨阳(板桥里人)</P>
<P style="TEXT-INDENT: 2em">代表项目：jdonframework</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.jdon.com/">http://www.jdon.com/</A></P>
<P style="TEXT-INDENT: 2em">简评：作为国内第一个开源框架的发起人，作为国内第一个敢于与国外框架叫板的板桥里人，他曾经带给大家很多很多的欣喜及回忆，桥技术水平及造诣这里就更不用说了，他“ 一个开源人的孤独告白”，有点沧桑，有点心寒，jdon今天的现状，是中国对待技术人才的真实写照。无论如何，选中国Java开源界最可爱的人，板桥当之无愧。</P>
<P style="TEXT-INDENT: 2em">3、Apusic OperaMasks—谁说开源不赚钱</P>
<P style="TEXT-INDENT: 2em">代表人物：袁红岗　张勇</P>
<P style="TEXT-INDENT: 2em">代表项目：OperaMasks</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.operamasks.org/">http://www.operamasks.org/</A></P>
<P style="TEXT-INDENT: 2em">　　简评：1000万人民币的投入，一篇“勇敢者的新世界”也算是在中国开源界掀起了一阵波澜，产品发布会上那一份份合同，更是让同行的老总们有点眼红。除去商业因素不说，这两天Check out了OperaMasks的代码，也看了示例，表现非常不错，值得深层次的java开发人员学习。老袁深厚的技术功底、老张卖力的全国路演，公司经营战略的成功，OperaMasks能否发展成为一个最能适合中国国情的开源组织，让我们拭目以待。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　4、EasyJF—后生可畏</P>
<P style="TEXT-INDENT: 2em">　　代表人物：蔡世友(大峡)、吴嘉俊(stef_wu)、程强(天一)</P>
<P style="TEXT-INDENT: 2em">代表项目：EasyJWeb</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.easyjf.com/">http://www.easyjf.com</A></P>
<P style="TEXT-INDENT: 2em">　　简评：看了大峡小朋友的一些文章， 看到EasyJF现在的发展，真真实实有一种后生可畏的感叹。他们有自己的专职团队，有网下办公室，还有硬件设施，还拥有一群有激情、好学的年轻小伙子们。虽然要得到中国人自己的认可是很不容易的事情，但搜索一下带是发现国内已经有不少网站在用EasyJWeb做开发。因此，最可爱的人当他们莫属，衷心希望他们能成功。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">　　5、SpringSide—天才团队</P>
<P style="TEXT-INDENT: 2em">代表人物：肖桦(江南白衣)、<A href="http://www.springside.org.cn/">http://www.springside.org.cn/</A></P>
<P style="TEXT-INDENT: 2em">简评：虽然只是站在春天的傍边，但已经带给了整天忙于追逐新技术、新潮流的Java程序员们很多极具参考价值的东西。江南白衣同学可以算是一个天才般的人物，技术的攻底、接受并译释新技术的速度、能力及水平，可以说是少数中的少数。因此，SpringSide可以称得上最具有偶像潜质的团队，Java开源界最可爱的人，他们当之无愧，希望他们能从“傍边”走到“中间”。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">6、Buffalo社区—浓缩是精</P>
<P style="TEXT-INDENT: 2em">代表人物：陈金洲(Michael Chen)</P>
<P style="TEXT-INDENT: 2em">代表项目：Buffalo </P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://buffalo.sourceforge.net/">http://buffalo.sourceforge.net/</A></P>
<P style="TEXT-INDENT: 2em">简评：作为第一个国人开发的Ajax框架，作为一个能把一直受java大拿们岐视javascript玩转得如何熟悉的项目，作为一个能几年坚持更新的开源项目，Buffalo是成功的，Michael Chen让我们体会到国内开源贡献者们执着与坚持。他是不是最可爱的人，谁是？</P>
<P style="TEXT-INDENT: 2em">&nbsp; </P>
<P style="TEXT-INDENT: 2em">7、天乙社区—享受开源动力</P>
<P style="TEXT-INDENT: 2em">代表人物：laoer</P>
<P style="TEXT-INDENT: 2em">代表项目：天乙开源社区</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.laoer.com/">http://www.laoer.com/</A></P>
<P style="TEXT-INDENT: 2em">简评：有多少开源项目的产品发布到8.0，从jsp、struts1到struts2一路走来，一直能跟着新技术的步伐，不断改进及完善。因此，当之无愧java开源界最可爱的人。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">8、CowNew开源—真有一点牛</P>
<P style="TEXT-INDENT: 2em">代表人物：杨中科</P>
<P style="TEXT-INDENT: 2em">代表项目：CowNewSQL</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.cownew.com/">http://www.cownew.com/</A></P>
<P style="TEXT-INDENT: 2em">简评：看过杨中科同学的两篇文章，我觉得他是可爱的。多数据库翻译引擎CowNewSQL的价值将在哪里体现？CowNew能在何时给我们带来更多实用的东西，值得大家期待。无论如何，他们的进步是有目共睹。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">9、CommonTemplate—值得期待</P>
<P style="TEXT-INDENT: 2em">代表人物：梁飞(javatar)</P>
<P style="TEXT-INDENT: 2em">代表项目：CommonTemplate</P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.commontemplate.org/">http://www.commontemplate.org/</A></P>
<P style="TEXT-INDENT: 2em">简评：也许很多人不知道这个项目，但他确实是一个很不错的模板引擎，金子总有发光的时候。只要坚持，相信有一天梁飞同学会给大家带来更多的惊喜。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">10、恩信—小公司也能开源</P>
<P style="TEXT-INDENT: 2em"><A href="http://www.lupaworld.com/bbs/redirect.php?tid=31394&amp;goto=newpost"></A></P>
<P style="TEXT-INDENT: 2em">代表人物：刘有涛</P>
<P style="TEXT-INDENT: 2em">代表项目：恩信开源ERP </P>
<P style="TEXT-INDENT: 2em">官方网站：<A href="http://www.nseer.com/">http://www.nseer.com/</A></P>
<P style="TEXT-INDENT: 2em">简评：听过刘总的演讲，从“捕鱼”到“授之以渔”，从刘总一系列运作手法，我觉得恩信可以成为很多追逐开源但又没有上千万资金来投入而总在为是否参加开源而徘徊的老总们的参考学习的案例。虽然没有技术牛人加盟，虽然还使用稍为古老的技术体系，但既然开源了，总能让我们学到很多东西。呵呵，所有最可爱的开源人中，刘总算是算是最年长的了，祝他们开源ERP大卖。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">除了上面10个开源项目里面的最可爱的人以外，还有一些曾经激情一时并给大家带来快乐，但因为很多原因没能坚持下来的开源斗士们，这里就不逐一列出来，为他们感到惋惜的同时，也希望有一天能看到更多的人与企业参与到开源的队伍中来。当然，可能还有一些比较优秀的团队我没有发现，而恰好你又知道，那么请您告诉我，在今后的日子里我会尽我的力量也来做点贡献。</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/79413332007111433113701</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/79413332007111433113701</guid>
    <pubDate>Fri, 14 Dec 2007 15:31:13 +0800</pubDate>
    <dcterms:modified>2007-12-14T15:31:13+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[将TOMCAT设置为系统服务 ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200710278501445</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><A href="http://www.blogjava.net/longyue/archive/2007/11/26/163327.html">将TOMCAT设置为系统服务</A> </P>
<P style="TEXT-INDENT: 2em"></P>
<P style="TEXT-INDENT: 2em">1:设置环境变量CATALINA_HOME＝E:\tomcat5.5</P>
<P style="TEXT-INDENT: 2em">2：设置CLASS_PATH 为CLASS_PATH＝.;C:\java\jdk1.5.0_06\lib\dt.jar;C:\java\jdk1.5.0_06\lib\tools.jar;%CATALINA_HOME%\bin\bootstrap.jar</P>
<P style="TEXT-INDENT: 2em">3：设置PATH中为C:\java\jdk1.5.0_06\bin;E:\tomcat5.5\bin;</P>
<P style="TEXT-INDENT: 2em">4：添加服务命令：service.bat install Tomcat5 </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp; 运行完命令后就可以在服务中看到 Apache Tomcat5 然后可以自行改为手动或自动启动。</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp; 注：如果使用tomcat5.exe安装名字为'Tomcat5'的服务可以运行以下命令：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; tomcat5 //IS//Tomcat5 --DisplayName="Apache Tomcat 5"&nbsp; --Install="C:\Program Files\Tomcat\bin\tomcat5.exe" --Jvm=auto --StartMode=jvm --StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop </P>
<P style="TEXT-INDENT: 2em">5：移除服务命令：tomcat5 //DS//Tomcat5</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200710278501445</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200710278501445</guid>
    <pubDate>Tue, 27 Nov 2007 08:50:14 +0800</pubDate>
    <dcterms:modified>2007-11-27T08:50:14+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[tomcat中配置和查找数据源的写法]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200710134828468</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;配置：</P>
<P>&nbsp;在$CATALINA_HOME/conf/server.xml文件中的&lt;Host&gt;&lt;/Host&gt;标签之间加入如下的Context代码<BR>&nbsp;&nbsp;&nbsp; &lt;Context path="/articlesystem" docBase="articlesystem" debug="5" reloadable="true" crossContext="true"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Resource name="jdbc/StrutsArticle" auth="Container" type="javax.sql.DataSource"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxActive="100" maxIdle="30" maxWait="10000"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; username="root" password="root" driverClassName="com.mysql.jdbc.Driver"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url="jdbc:mysql://localhost:3306/strutsaritcle;characterEncoding=GBK&amp;amp;useUnicode=TRUE&amp;amp;autoReconnect=true"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Context&gt;</P>
<P>查找：&nbsp;</P>
<P>// Obtain our environment naming context</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;Context initCtx = new InitialContext();</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;Context envCtx = (Context) initCtx.lookup("java:comp/env");</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;// Look up our data source（jdbc/os_leave为数据源名称）</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;ds = (DataSource)envCtx.lookup("jdbc/os_leave");</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200710134828468</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200710134828468</guid>
    <pubDate>Tue, 13 Nov 2007 16:08:28 +0800</pubDate>
    <dcterms:modified>2007-11-13T17:30:38+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[equals 和 == 的区别]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200793055046978</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">equals 方法（是String类从它的超类Object中继承的）被用来检测两个对象是否相等，<FONT color=#00ff00>即两个对象的内容是否相等。</FONT></P>
<P style="TEXT-INDENT: 2em">==用于比较引用和比较基本数据类型时具有不同的功能：</P>
<P style="TEXT-INDENT: 2em"><FONT color=#00ff00>比较基本数据类型，如果两个值相同，则结果为true </FONT></P>
<P style="TEXT-INDENT: 2em"><FONT color=#00ff00>而在比较引用时，如果引用指向内存中的同一对象，结果为true</FONT></P>
<P style="TEXT-INDENT: 2em">Eg:s1 = new String("sony"); //创建的是字符串对象</P>
<P style="TEXT-INDENT: 2em">s1.equals("sony"); //返回true</P>
<P style="TEXT-INDENT: 2em">s1 == "sony" //返回false</P>
<P style="TEXT-INDENT: 2em">//如果</P>
<P style="TEXT-INDENT: 2em">s1 = "sony";</P>
<P style="TEXT-INDENT: 2em">s1 == "sony" //返回true</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200793055046978</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200793055046978</guid>
    <pubDate>Tue, 30 Oct 2007 17:50:46 +0800</pubDate>
    <dcterms:modified>2007-10-30T17:52:50+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Subclipse操作]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200782121125468</link>
    <description><![CDATA[<div><P>存储库的根目录下通常会有 ：</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trunk 文件夹：用于存放开发版本。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tags&nbsp;文件夹：用于存放标签。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; branches 文件夹：用于存放分支。</P>
<P>subclipse 基本操作：</P>
<P>1。<A>将项目添加到存储库</A>：<B>Team &gt; Share Project</B>。Eclipse 会显示 Share Project 对话框。</P>
<P>2。<A>更新项目</A>：<STRONG>Team &gt; Update</STRONG>。Eclipse 将从存储库中检索任何变更，并尝试将它们与本地副本合并。</P>
<P>3。<A>添加文件或目录</A>：<STRONG>Team &gt; Add to Version Control</STRONG>。下一次将此项目中的变更提交给存储库时，新文件也会检入。</P>
<P>4。<A>删除文件或目录</A>：如果将文件添加到了与项目不在相关的存储库中，您可以轻松地删除它。右击文件，然后选择 <B>Delete</B>。不需要使用 Team 菜单，Subclipse 自动将标记要删除的文件，并将它从项目中移除。下一次将变更提交给存储库时，该文件被删除了。</P>
<P>5。<A>重命名文件或目录</A>：要重命名 Subclipse 控制的文件或目录，请右击它，然后选择 <B>Rename</B>。文件是在项目中重命名的，重命名操作（通过 Add 操作添加新名称、通过 Delete 操作删除旧名称）排队等待您下一次提交。注意， “新” 文件添加的蓝色小加号表示该文件被安排在下一次提交时添加。</P>
<P>6。<A>忽略文件</A>：<STRONG>Team &gt; Add to svn:ignore</STRONG> 即可显示Add to svn:ignore 对话框。</P>
<P>7。<A>提交更改</A>：（在尝试提交变更之前，请确保更新您的项目）<B>Team &gt; Commit</B>。</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200782121125468</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200782121125468</guid>
    <pubDate>Fri, 21 Sep 2007 14:11:25 +0800</pubDate>
    <dcterms:modified>2007-09-21T14:11:25+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Subversion配置步步观]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200781514855705</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em"><I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Javary 2007-9-15</I></P>
<P style="TEXT-INDENT: 2em">一．下载和安装</P>
<P style="TEXT-INDENT: 2em">1．&nbsp;&nbsp; 名称：svn-1.4.4-setup.exe(服务端)</P>
<P style="TEXT-INDENT: 2em">URL:&nbsp;<A href="http://subversion.tigris.org/files/documents/15/38369/svn-1.4.4-setup.exe">http://subversion.tigris.org/files/documents/15/38369/svn-1.4.4-setup.exe</A></P>
<P style="TEXT-INDENT: 2em">2．&nbsp;&nbsp; 名称：TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi（客户端）</P>
<P style="TEXT-INDENT: 2em">URL:&nbsp;<A href="http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi?download">http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi?download</A></P>
<P style="TEXT-INDENT: 2em">3．&nbsp;&nbsp; 名称：subclipse（eclipse插件）</P>
<P style="TEXT-INDENT: 2em">URL:&nbsp;<A href="http://subclipse.tigris.org/files/documents/906/39522/site-1.2.4.zip">http://subclipse.tigris.org/files/documents/906/39522/site-1.2.4.zip</A></P>
<P style="TEXT-INDENT: 2em">二．配置</P>
<P style="TEXT-INDENT: 2em">1．&nbsp;&nbsp; 创建储存库 ：svnadmin create E:\svn\repository</P>
<P style="TEXT-INDENT: 2em">2．&nbsp;&nbsp; 创建项目版本树：确定SVN服务(命令行或windows服务)运行后，在你需要导入储存库的目录下单击右键选择[TortoiseSVN]-&gt; [Import...]，在弹开的窗口的URL框中输入 "svn://localhost/myproject" 点击 "OK" 执行导入 </P>
<P style="TEXT-INDENT: 2em">3．&nbsp;&nbsp; 权限控制 </P>
<P style="TEXT-INDENT: 2em">A.在svnserve.conf中加&nbsp;&nbsp; anon-access = none&nbsp;&nbsp;&nbsp;&nbsp; 表示匿名用户无读写权限</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password-db = passwd&nbsp;&nbsp; 表示用户和密码放在passwd中</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;authz-db = authz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示用户组放在 authz中 </P>
<P style="TEXT-INDENT: 2em">B. passwd中增加用户：name=password 的形式</P>
<P style="TEXT-INDENT: 2em">C. authz中给用户分组：在[groups]标记下面，输入组的名称：</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;dev_group = nicholas, friend&nbsp; 表示开发组</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;test_group = stranger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示测试组</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN><FONT face=新宋体>[arm:/diary/headquarters]</FONT></SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示仓库下的目录</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @dev_group = rw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示开发组用户具有读写权</P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @test_group = r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表示测试组用户具有读权&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示其它用户没任何权限</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P>
<P style="TEXT-INDENT: 2em"><TT literal?><FONT face=Arial>注意：</FONT>[arm:/]</TT> 表示这个目录结构的相对根节点，或者说是 arm 项目的根目录。其中的 arm 字样，其实就是代码库的名称，即前面用 svnadmin create 命令创建出来的那个 arm。&nbsp;<SPAN><FONT face=新宋体>[arm:/diary/headquarters]</FONT></SPAN> 。而实际上，Subversion 允许你采用 <TT literal?><SPAN><FONT face=新宋体>`[/some/dir]</FONT></SPAN></TT> 这样的格式，即不指定代码库的方式来表示目录，此时的目录就匹配所有项目。<I>&nbsp;</I></P>
<P style="TEXT-INDENT: 2em">4．&nbsp;&nbsp; Subversion安装成service（Subversion1.4的安装方式）</P>
<P style="TEXT-INDENT: 2em">命令：sc create svnservice binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svn\repository" displayname= "SVNService" depend= Tcpip start= auto</P>
<P style="TEXT-INDENT: 2em">注意：如果路径中包括空格，一定要用“\”处理“"”号&nbsp;</P>
<P style="TEXT-INDENT: 2em">三．运行</P>
<P style="TEXT-INDENT: 2em">svnserve --daemon --root D:\svn\repository （手动运行方式）</P>
<P style="TEXT-INDENT: 2em">-d 后台模式， 相似的有： -i inted模式 -t 隧道模式 -X 监听一次（调试时使用） </P>
<P style="TEXT-INDENT: 2em">而-r的含义是服务的根目录. </P>
<P style="TEXT-INDENT: 2em">四。参考： </P>
<P style="TEXT-INDENT: 2em">1。<A href="http://wplqw.javaeye.com/blog/108982" target=_blank></A><A title=永久链接：学习安装SVN1.4.4 href="http://wplqw.javaeye.com/blog/108982">学习安装SVN1.4.4</A> </A></P>
<P style="TEXT-INDENT: 2em">2。<A href="http://shjy-nicholas.javaeye.com/blog/119457" target=_blank></A><A title=永久链接：Subversion权限控制手册 href="http://shjy-nicholas.javaeye.com/blog/119457">Subversion权限控制手册</A> </A></P>
<P style="TEXT-INDENT: 2em">3。<U><FONT color=#800080><U><FONT color=#800080><A href="http://www.subversion.org.cn/index.php?option=com_content&amp;task=view&amp;id=83&amp;Itemid=9" target=_blank><U><FONT color=#800080><U><FONT color=#800080>Subversion安装成service</FONT></U></FONT></U></A></FONT></U></FONT></U></P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200781514855705</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200781514855705</guid>
    <pubDate>Sat, 15 Sep 2007 13:48:55 +0800</pubDate>
    <dcterms:modified>2007-09-21T14:52:13+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Java Reflection (JAVA反射)  ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/7941333200722311330512</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em">1.<A href="http://www.blogjava.net/jialing/archive/2006/08/24/JavaReflectionCookbook1.html">Java反射经典实例 Java Reflection Cookbook (初级)</A> 
</P><P style="TEXT-INDENT: 2em">2.<A href="http://www.blogjava.net/limq/archive/2005/03/09/1865.html">Java反射机制( 转)</A> </P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/7941333200722311330512</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/7941333200722311330512</guid>
    <pubDate>Fri, 23 Mar 2007 11:33:00 +0800</pubDate>
    <dcterms:modified>2007-03-23T11:33:00+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Struts原理与实践]]></title>	
    <link>http://javary163.blog.163.com/blog/static/794133320072143134127</link>
    <description><![CDATA[<div><P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/41033" target=_blank>Struts原理与实践（1）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45722" target=_blank>Struts原理与实践（2）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45727" target=_blank>Struts原理与实践（3）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45729" target=_blank>Struts原理与实践（4）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45741" target=_blank>Struts原理与实践（5）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45742" target=_blank>Struts原理与实践（6）</A></P>
<P style="TEXT-INDENT: 2em"><A href="http://letle.javaeye.com/blog/45744" target=_blank>Struts原理与实践（7）</A></P>
<P style="TEXT-INDENT: 2em"><U><FONT color=#0000ff></FONT></U>&nbsp;</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/794133320072143134127</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/794133320072143134127</guid>
    <pubDate>Wed, 14 Mar 2007 15:13:41 +0800</pubDate>
    <dcterms:modified>2007-03-14T15:22:34+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[About j2ee]]></title>	
    <link>http://javary163.blog.163.com/blog/static/79413332007214103630799</link>
    <description><![CDATA[<div><P>常用j2eeAPI</P>
<P>JavaServer Pages(JSP)技术1.2 <BR>Java Servlet技术2.3 <BR>JDBC API 2.0 <BR>Java XML处理API(JAXP)1.1 <BR>Enterprise JavaBeans技术2.0 <BR>Java消息服务(JMS)1.0 <BR>Java命名目录接口(JNDI)1.2 <BR>Java事务API(JTA) 1.0 <BR>JavaMail API 1.2 <BR>JavaBeans激活架构(JAF)1.0 <BR>J2EE连接器体系结构(JCA)1.0 <BR>Java认证和授权服务(JAAS)1.0 </P>
<P><A href="http://blog.donews.com/inclear/articles/622129.aspx" target=_blank>J2EE概述</A></P>
<P><A href="http://bulain.javaeye.com/blog/24102" target=_blank>JMS概述</A></P>
<P><A href="http://www.java-cn.com/zhuanti/technology_detail.jsp?id=2106" target=_blank>Java Transaction API概述</A></P>
<P><FONT color=#800080><A href="http://blog.csdn.net/wonder4/archive/2006/02/16/599995.aspx" target=_blank>JTA经典问答（初译版）</A></FONT> </P>
<P><A href="http://www.blogjava.net/BlueDavy/archive/2005/07/19/8015.html" target=_blank>JMX概述</A></P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/79413332007214103630799</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/79413332007214103630799</guid>
    <pubDate>Wed, 14 Mar 2007 10:36:30 +0800</pubDate>
    <dcterms:modified>2007-03-14T10:36:30+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[[转]Java类装载机制要义 ]]></title>	
    <link>http://javary163.blog.163.com/blog/static/79413332007279923588</link>
    <description><![CDATA[<div><DIV>
<H3><FONT size=5><SPAN style="FONT-FAMILY: 宋体">基本原理</SPAN> <SPAN></SPAN></FONT></H3>
<P><SPAN style="FONT-FAMILY: 宋体">所有类都由类装载器载入，载入内存中的类对应一个</SPAN> <SPAN>java.lang.Class</SPAN> <SPAN style="FONT-FAMILY: 宋体">实例。</SPAN> </P>
<P><SPAN style="FONT-FAMILY: 宋体">已被加载的类由该类的类加载器实例与该类的全路径名的组合标识。设有</SPAN> <SPAN>packagename.A Class</SPAN> <SPAN style="FONT-FAMILY: 宋体">，分别被类加载器</SPAN> <SPAN>CL1</SPAN> <SPAN style="FONT-FAMILY: 宋体">和</SPAN> <SPAN>CL2</SPAN> <SPAN style="FONT-FAMILY: 宋体">加载，则系统中有两个不同的</SPAN> <SPAN>java.lang.Class</SPAN> <SPAN style="FONT-FAMILY: 宋体">实例：</SPAN> <SPAN>&lt;CL1, packagename.A&gt;</SPAN> <SPAN style="FONT-FAMILY: 宋体">和</SPAN> <SPAN>&lt;CL2, packagename.A&gt;</SPAN> <SPAN style="FONT-FAMILY: 宋体">。</SPAN> </P>
<P><SPAN style="FONT-FAMILY: 宋体">存在一个</SPAN> <SPAN>Bootstrap Loader</SPAN> <SPAN style="FONT-FAMILY: 宋体">（以下简称为</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">），由</SPAN> <SPAN>C++</SPAN> <SPAN style="FONT-FAMILY: 宋体">写成，负责在虚拟机启动后一次</SPAN> </P>
<P><SPAN style="FONT-FAMILY: 宋体">性加载</SPAN> <SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">基础类库中的所有类。其他的类装载器由</SPAN> <SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">写成，都是</SPAN> <SPAN>java.lang.ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">的子类。</SPAN> </P>
<P><SPAN style="FONT-FAMILY: 宋体">除</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">之外的所有类装载器都有一个</SPAN> <SPAN>parent</SPAN> <SPAN style="FONT-FAMILY: 宋体">属性，指向其父装载器。查阅</SPAN> <SPAN>java.lang.ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">的源码，不难发现类装载器的委托装载方式。</SPAN> </P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=643 border=1>
<TBODY>
<TR>
<TD vAlign=top width=643>
<P><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">protected</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">synchronized</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">Class&lt;?&gt; loadClass(String name, </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">boolean</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">resolve)</SPAN> <SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"><B><SPAN style="COLOR: #7f0055">throws</SPAN> </B><SPAN style="COLOR: black">ClassNotFoundException</SPAN>&nbsp;</SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>{</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #3f7f5f; FONT-FAMILY: 宋体">// First, check if the class has already been loaded</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN>Class c = findLoadedClass(name);</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">if</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">(c == </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">null</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">) {</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">try</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">{</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">if</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">(</SPAN> <SPAN style="FONT-SIZE: 9pt; COLOR: #0000c0; FONT-FAMILY: 宋体">parent</SPAN> <SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">!= </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">null</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">) {</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN>c = </SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #0000c0; FONT-FAMILY: 宋体">parent</SPAN> <SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">.loadClass(name, </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">false</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">);</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN>} </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">else</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">{</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp; </SPAN>c = findBootstrapClass0(name);</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp; </SPAN>}</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN>} </SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">catch</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">(ClassNotFoundException e) {</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #3f7f5f; FONT-FAMILY: 宋体">// If still not found, then invoke findClass in order</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: #3f7f5f; FONT-FAMILY: 宋体">// to find the class.</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN>c = findClass(name);</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1"></SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN>}</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN>}</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">if</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">(resolve) {</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1"></SPAN>resolveClass(c);</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp; </SPAN>}</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-tab-count: 1">&nbsp;</SPAN></SPAN><B><SPAN style="FONT-SIZE: 9pt; COLOR: #7f0055; FONT-FAMILY: 宋体">return</SPAN> </B><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体">c;</SPAN>&nbsp;<SPAN style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"></SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>}</SPAN> </P></TD></TR></TBODY></TABLE>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">对于给定的类名，首先检查自己是否已加载过该类。如果没有，则首先通过父装载器加载（如果</SPAN> <SPAN>parent==null</SPAN> <SPAN style="FONT-FAMILY: 宋体">，则直接通过</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">来加载，相当于</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">是其父装载器）。如果父装载器也无法装载，才真正调用自己的</SPAN> <SPAN>findClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法来装载。</SPAN> </P>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">基础类在</SPAN> <SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">虚拟机启动后由</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">一次性载入。构成</SPAN> <SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">应用程序的其它类在程序运行过程中由不同类装载器按需通过</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法装载。</SPAN> </P>
<H3><FONT size=5><SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">程序启动过程中的类装载器</SPAN> </FONT></H3>
<P><SPAN style="FONT-FAMILY: 宋体">当执行“</SPAN> <SPAN>java XXX.class</SPAN> <SPAN style="FONT-FAMILY: 宋体">”时，</SPAN> <SPAN>java.exe</SPAN> <SPAN style="FONT-FAMILY: 宋体">首先找到</SPAN> <SPAN>JRE</SPAN> <SPAN style="FONT-FAMILY: 宋体">（</SPAN> <SPAN>Java Runtime Environment</SPAN> <SPAN style="FONT-FAMILY: 宋体">），接着找到位于</SPAN> <SPAN>JRE</SPAN> <SPAN style="FONT-FAMILY: 宋体">之中的</SPAN> <SPAN>jvm.dll</SPAN> <SPAN style="FONT-FAMILY: 宋体">，最后载入</SPAN> <SPAN>jvm.dll</SPAN> <SPAN style="FONT-FAMILY: 宋体">并启动虚拟机。</SPAN> </P>
<P><SPAN style="FONT-FAMILY: 宋体">虚拟机一启动，先做一些初始化动作，如获取系统参数等，然后产生</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">。</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">加载</SPAN> <SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">基础类，这些类都存放在</SPAN> <SPAN>JRE</SPAN> <SPAN style="FONT-FAMILY: 宋体">中的</SPAN> <SPAN>lib</SPAN> <SPAN style="FONT-FAMILY: 宋体">目录下，可由</SPAN> <SPAN>System.getProperty(“sun.boot.class.path”)</SPAN> <SPAN style="FONT-FAMILY: 宋体">列出，如：</SPAN> </P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD vAlign=top width=568></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><SPAN>C:\Program Files\Java\jre1.5.0_09\classes</SPAN> </TD></TR></TBODY></TABLE>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">然后创建</SPAN> <SPAN>sun.misc.Launcher$ExtClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">（</SPAN> <SPAN>ExtClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">是定义于</SPAN> <SPAN>sun.misc.Launcher</SPAN> <SPAN style="FONT-FAMILY: 宋体">之内的内部类，继承自</SPAN> <SPAN>java.lang.URLClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">）的实例（以下简称</SPAN> <SPAN>EL</SPAN> <SPAN style="FONT-FAMILY: 宋体">）和</SPAN> <SPAN>sun.misc.Launcher$AppClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">（</SPAN> <SPAN>AppClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">是定义于</SPAN> <SPAN>sun.misc.Launcher</SPAN> <SPAN style="FONT-FAMILY: 宋体">之内的内部类，继承自</SPAN> <SPAN>URLClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">）的实例（以下简称</SPAN> <SPAN>AL</SPAN> <SPAN style="FONT-FAMILY: 宋体">），并将</SPAN> <SPAN>EL</SPAN> <SPAN style="FONT-FAMILY: 宋体">的</SPAN> <SPAN>parent</SPAN> <SPAN style="FONT-FAMILY: 宋体">属性设置为</SPAN> <SPAN>null</SPAN> <SPAN style="FONT-FAMILY: 宋体">，</SPAN> <SPAN>AL</SPAN> <SPAN style="FONT-FAMILY: 宋体">的</SPAN> <SPAN>parent</SPAN> <SPAN style="FONT-FAMILY: 宋体">属性设置为</SPAN> <SPAN>EL</SPAN> <SPAN style="FONT-FAMILY: 宋体">。</SPAN> </P>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>EL</SPAN> <SPAN style="FONT-FAMILY: 宋体">在程序运行过程中按需加载保存在</SPAN> <SPAN>JRE</SPAN> <SPAN style="FONT-FAMILY: 宋体">的“</SPAN> <SPAN>\lib\ext</SPAN> <SPAN style="FONT-FAMILY: 宋体">”目录下的类。该目录可由</SPAN> <SPAN>System.getProperty(“java.ext.dirs”)</SPAN> <SPAN style="FONT-FAMILY: 宋体">读出，如</SPAN> </P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD vAlign=top width=568><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">C:\Program Files\Java\jre1.5.0_09\lib\ext</SPAN> </TD></TR></TBODY></TABLE>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>AL</SPAN> <SPAN style="FONT-FAMILY: 宋体">在程序运行过程中按需加载的类搜索路径则是从系统参数</SPAN> <SPAN>java.class.path</SPAN> <SPAN style="FONT-FAMILY: 宋体">取出的字符串。</SPAN> <SPAN>java.class.path</SPAN> <SPAN style="FONT-FAMILY: 宋体">是由我们在执行</SPAN> <SPAN>java.exe</SPAN> <SPAN style="FONT-FAMILY: 宋体">时，利用</SPAN> <SPAN>-cp</SPAN> <SPAN style="FONT-FAMILY: 宋体">或</SPAN> <SPAN>-classpath</SPAN> <SPAN style="FONT-FAMILY: 宋体">或</SPAN> <SPAN>CLASSPATH</SPAN> <SPAN style="FONT-FAMILY: 宋体">环境变量所决定。我们应用程序用到的非</SPAN> <SPAN>JRE</SPAN> <SPAN style="FONT-FAMILY: 宋体">提供类的搜索路径一般都配置在</SPAN> <SPAN>java.class.path</SPAN> <SPAN style="FONT-FAMILY: 宋体">中。</SPAN> </P>
<H3><SPAN style="FONT-FAMILY: 宋体"><FONT size=5>什么时候装载类，由什么类装载器装载</FONT> </SPAN></H3>
<P><SPAN style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">1．<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN>Java</SPAN> <SPAN style="FONT-FAMILY: 宋体">基础类由</SPAN> <SPAN>BL</SPAN> <SPAN style="FONT-FAMILY: 宋体">在虚拟机启动时一次性载入。</SPAN> </P>
<P><SPAN style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">2．<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">包含</SPAN> <SPAN>main()</SPAN> <SPAN style="FONT-FAMILY: 宋体">的入口类由</SPAN> <SPAN>AL</SPAN> <SPAN style="FONT-FAMILY: 宋体">的</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法载入。</SPAN> </P>
<P><SPAN style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">3．<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">由</SPAN> <SPAN>new </SPAN><SPAN style="FONT-FAMILY: 宋体">关键字创建一个类的实例。该类由包含该</SPAN> <SPAN>new</SPAN> <SPAN style="FONT-FAMILY: 宋体">语句的类的类装载器（</SPAN> <SPAN>ClassLoader.getCallerClassLoader()</SPAN> <SPAN style="FONT-FAMILY: 宋体">）的</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法载入。</SPAN> </P>
<P><SPAN style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">4．<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">调用</SPAN> <SPAN>Class.forName()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法。完整的</SPAN> <SPAN>forName()</SPAN> <SPAN style="FONT-FAMILY: 宋体">函数版本有一个</SPAN> <SPAN>ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">参数，用于指定用什么类装载器来装载指定类。</SPAN> </P>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 border=1>
<TBODY>
<TR>
<TD vAlign=top width=568><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><B><SPAN style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'">public</SPAN> </B><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"></SPAN><B><SPAN style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'">static</SPAN> </B><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">Class&lt;?&gt; <SPAN style="BACKGROUND: silver">forName</SPAN>(String name, </SPAN><B><SPAN style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'">boolean</SPAN> </B><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">initialize,</SPAN> <SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"><SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>ClassLoader loader)</SPAN> <B><SPAN style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'">throws</SPAN> </B><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'">ClassNotFoundException</SPAN> <SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN></TD></TR></TBODY></TABLE>
<P><SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">对于</SPAN> <SPAN>public static Class&lt;?&gt; forName(String className)</SPAN> <SPAN style="FONT-FAMILY: 宋体">版本，是由包含该语句的类的类装载器（</SPAN> <SPAN>ClassLoader.getCallerClassLoader()</SPAN> <SPAN style="FONT-FAMILY: 宋体">）的</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法载入。</SPAN> </P>
<P><SPAN style="mso-fareast-font-family: 'Times New Roman'"><SPAN style="mso-list: Ignore">5．<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">调用某个</SPAN> <SPAN>ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">实例的</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法。通过该</SPAN> <SPAN>ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">实例的</SPAN> <SPAN>loadClass()</SPAN> <SPAN style="FONT-FAMILY: 宋体">方法载入。应用程序可以通过继承在</SPAN> <SPAN>ClassLoader</SPAN> <SPAN style="FONT-FAMILY: 宋体">实现自己的类装载器。</SPAN> <SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">6</SPAN> <SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">．装载一个类时，首先要装载该类的基类及其接口。</SPAN> </P></DIV></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/79413332007279923588</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/79413332007279923588</guid>
    <pubDate>Wed, 7 Mar 2007 09:09:23 +0800</pubDate>
    <dcterms:modified>2007-03-07T09:13:21+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[近期关注技术]]></title>	
    <link>http://javary163.blog.163.com/blog/static/79413332007112104033564</link>
    <description><![CDATA[<div><P>1.IOC </P>
<P>2.AOP</P>
<P>3.工厂模式</P>
<P>4.代理模式</P>
<P>5.拦截器模式</P></div>]]></description>
	    <author><![CDATA[javary]]></author>
	    <comments>http://javary163.blog.163.com/blog/static/79413332007112104033564</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://javary163.blog.163.com/blog/static/79413332007112104033564</guid>
    <pubDate>Mon, 12 Feb 2007 10:40:33 +0800</pubDate>
    <dcterms:modified>2007-02-12T10:40:33+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>