﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-刘文涛</title><link>http://www.blogjava.net/liuwentao253/</link><description>Flex3,Struts2,Hibernate3,Spring2,UML,Oracle,mysql,tomcat,compass,lucene</description><language>zh-cn</language><lastBuildDate>Sun, 07 Sep 2008 08:50:05 GMT</lastBuildDate><pubDate>Sun, 07 Sep 2008 08:50:05 GMT</pubDate><ttl>60</ttl><item><title>weblogic介绍</title><link>http://www.blogjava.net/liuwentao253/archive/2008/08/29/225460.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Fri, 29 Aug 2008 00:23:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/08/29/225460.html</guid><description><![CDATA[WebLogic是美国bea公司出品的一个application server确切的说是一个基于<a href="http://baike.baidu.com/view/1507.htm" target="_blank">j2ee</a>架构的中间件，它是用纯java开发的。目前weblogic在世界application server市场上占有最大的份额，其他还有象<a href="http://baike.baidu.com/view/1937.htm" target="_blank">IBM</a>的<a href="http://baike.baidu.com/view/15038.htm" target="_blank">websphere</a>，免费的<a href="http://baike.baidu.com/view/10166.htm" target="_blank">tomcat</a>、<a href="http://baike.baidu.com/view/490778.htm" target="_blank">resin</a>等中间件。<br />
<img src ="http://www.blogjava.net/liuwentao253/aggbug/225460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-08-29 08:23 <a href="http://www.blogjava.net/liuwentao253/archive/2008/08/29/225460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类与类关系的UML图与代码表现</title><link>http://www.blogjava.net/liuwentao253/archive/2008/08/01/219416.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Fri, 01 Aug 2008 09:24:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/08/01/219416.html</guid><description><![CDATA[<div>类与类之间的关系对于理解面向对象具有很重要的作用，存在以下关系:<br />
(1)泛化(Generalization)<br />
(2)关联(Association)<br />
(3)依赖(Dependency)<br />
(4)聚合(Aggregation)<br />
详细展开&nbsp; ： <br />
一 .泛化(Generalization)<br />
&nbsp;表示类与类之间的继承关系，接口与接口之间的继承关系，或类对接口的实现关系。<br />
&nbsp;一般泛化的关系是从子类指向父类的：<br />
&nbsp;父类 父类实例＝new 子类()<br />
<br />
<br />
<img height="172" alt="" src="http://www.blogjava.net/images/blogjava_net/liuwentao253/um1.jpg" width="259" border="0" /><br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img id="Codehighlighter1_0_13_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_13_Open_Text.style.display='none'; Codehighlighter1_0_13_Closed_Image.style.display='inline'; Codehighlighter1_0_13_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_13_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_13_Closed_Text.style.display='none'; Codehighlighter1_0_13_Open_Image.style.display='inline'; Codehighlighter1_0_13_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_13_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_0_13_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">2</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;一个测试类<br />
</span><span style="color: #008080">3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img id="Codehighlighter1_32_137_Open_Image" onclick="this.style.display='none'; Codehighlighter1_32_137_Open_Text.style.display='none'; Codehighlighter1_32_137_Closed_Image.style.display='inline'; Codehighlighter1_32_137_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_32_137_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_32_137_Closed_Text.style.display='none'; Codehighlighter1_32_137_Open_Image.style.display='inline'; Codehighlighter1_32_137_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Demo</span><span id="Codehighlighter1_32_137_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_32_137_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img id="Codehighlighter1_61_131_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_131_Open_Text.style.display='none'; Codehighlighter1_61_131_Closed_Image.style.display='inline'; Codehighlighter1_61_131_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_61_131_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_61_131_Closed_Text.style.display='none'; Codehighlighter1_61_131_Open_Image.style.display='inline'; Codehighlighter1_61_131_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;test()&nbsp;</span><span id="Codehighlighter1_61_131_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_61_131_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">老虎的实例&nbsp;也属于动物类型&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">7</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Animal&nbsp;animal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Tiger();&nbsp;&nbsp;<br />
</span><span style="color: #008080">8</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">9</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">&nbsp;</span></div>
<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img id="Codehighlighter1_0_12_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_12_Open_Text.style.display='none'; Codehighlighter1_0_12_Closed_Image.style.display='inline'; Codehighlighter1_0_12_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_12_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_12_Closed_Text.style.display='none'; Codehighlighter1_0_12_Open_Image.style.display='inline'; Codehighlighter1_0_12_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_12_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_0_12_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">2</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;&nbsp;动物类<br />
</span><span style="color: #008080">3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img id="Codehighlighter1_33_36_Open_Image" onclick="this.style.display='none'; Codehighlighter1_33_36_Open_Text.style.display='none'; Codehighlighter1_33_36_Closed_Image.style.display='inline'; Codehighlighter1_33_36_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_33_36_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_33_36_Closed_Text.style.display='none'; Codehighlighter1_33_36_Open_Image.style.display='inline'; Codehighlighter1_33_36_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Animal</span><span id="Codehighlighter1_33_36_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_33_36_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img id="Codehighlighter1_0_12_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_12_Open_Text.style.display='none'; Codehighlighter1_0_12_Closed_Image.style.display='inline'; Codehighlighter1_0_12_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_12_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_12_Closed_Text.style.display='none'; Codehighlighter1_0_12_Open_Image.style.display='inline'; Codehighlighter1_0_12_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_12_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_0_12_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">2</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;老虎类&nbsp;<br />
</span><span style="color: #008080">3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img id="Codehighlighter1_47_50_Open_Image" onclick="this.style.display='none'; Codehighlighter1_47_50_Open_Text.style.display='none'; Codehighlighter1_47_50_Closed_Image.style.display='inline'; Codehighlighter1_47_50_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_47_50_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_47_50_Closed_Text.style.display='none'; Codehighlighter1_47_50_Open_Image.style.display='inline'; Codehighlighter1_47_50_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Tiger&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Animal</span><span id="Codehighlighter1_47_50_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_47_50_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span></div>
<br />
<br />
二 .依赖(Dependency)<br />
<br />
对于两个相对独立的对象，当一个对象（螺丝刀）负责构造另一个对象(人)的实例，或者一个对象(人)依赖另一个对象（螺丝刀）的服务时，这两个对象之间主要体现为依赖关系。<br />
<br />
下面这个例子显然属于后者 ：人要做一个拧螺丝的动作，他就要依赖于 螺丝刀对象，因为只有螺丝刀对象才提供拧螺丝的服务。 <br />
<br />
<img height="82" alt="" src="http://www.blogjava.net/images/blogjava_net/liuwentao253/um2.jpg" width="272" border="0" /><br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_0_21_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_21_Open_Text.style.display='none'; Codehighlighter1_0_21_Closed_Image.style.display='inline'; Codehighlighter1_0_21_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_21_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_21_Closed_Text.style.display='none'; Codehighlighter1_0_21_Open_Image.style.display='inline'; Codehighlighter1_0_21_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_21_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_0_21_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;*&nbsp;说明&nbsp;：人&nbsp;这个&nbsp;类&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_43_245_Open_Image" onclick="this.style.display='none'; Codehighlighter1_43_245_Open_Text.style.display='none'; Codehighlighter1_43_245_Closed_Image.style.display='inline'; Codehighlighter1_43_245_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_43_245_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_43_245_Closed_Text.style.display='none'; Codehighlighter1_43_245_Open_Image.style.display='inline'; Codehighlighter1_43_245_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Person&nbsp;</span><span id="Codehighlighter1_43_245_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_43_245_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_49_127_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_127_Open_Text.style.display='none'; Codehighlighter1_49_127_Closed_Image.style.display='inline'; Codehighlighter1_49_127_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_49_127_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_49_127_Closed_Text.style.display='none'; Codehighlighter1_49_127_Open_Image.style.display='inline'; Codehighlighter1_49_127_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_49_127_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_49_127_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;人拥有的一个&nbsp;&nbsp;拧螺丝&nbsp;&nbsp;的&nbsp;&nbsp;动作&nbsp;依赖于螺丝刀这个类<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;screwdriver&nbsp;：螺丝刀类<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_176_241_Open_Image" onclick="this.style.display='none'; Codehighlighter1_176_241_Open_Text.style.display='none'; Codehighlighter1_176_241_Closed_Image.style.display='inline'; Codehighlighter1_176_241_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_176_241_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_176_241_Closed_Text.style.display='none'; Codehighlighter1_176_241_Open_Image.style.display='inline'; Codehighlighter1_176_241_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;screw(Screwdriver&nbsp;screwdriver)</span><span id="Codehighlighter1_176_241_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_176_241_Open_Text"><span style="color: #000000">{&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">螺丝刀类提供了拧螺丝这个服务</span><span style="color: #008000"><br />
</span><span style="color: #008080">11</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;screwdriver.screw();&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<br />
<br />
三 .关联(Association)<br />
对于两个相对独立的对象，当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时，这两个对象之间为关联关系。<br />
关联关系是使用实例变量来实现<br />
比如客户和订单，每个订单对应特定的客户，每个客户对应一些特定的订单；再例如公司和员工，每个公司对应一些特定的员工，每个员工对应一特定的公司<br />
<br />
<img height="57" alt="" src="http://www.blogjava.net/images/blogjava_net/liuwentao253/um4.jpg" width="291" border="0" /><br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_0_12_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_12_Open_Text.style.display='none'; Codehighlighter1_0_12_Closed_Image.style.display='inline'; Codehighlighter1_0_12_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_12_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_12_Closed_Text.style.display='none'; Codehighlighter1_0_12_Open_Image.style.display='inline'; Codehighlighter1_0_12_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_12_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_0_12_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;公司<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_34_358_Open_Image" onclick="this.style.display='none'; Codehighlighter1_34_358_Open_Text.style.display='none'; Codehighlighter1_34_358_Closed_Image.style.display='inline'; Codehighlighter1_34_358_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_34_358_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_34_358_Closed_Text.style.display='none'; Codehighlighter1_34_358_Open_Image.style.display='inline'; Codehighlighter1_34_358_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Company</span><span id="Codehighlighter1_34_358_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_34_358_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">员工</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Employee&nbsp;employee;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img id="Codehighlighter1_84_107_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_107_Open_Text.style.display='none'; Codehighlighter1_84_107_Closed_Image.style.display='inline'; Codehighlighter1_84_107_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_84_107_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_107_Closed_Text.style.display='none'; Codehighlighter1_84_107_Open_Image.style.display='inline'; Codehighlighter1_84_107_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_84_107_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_84_107_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;公司运作<br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_130_177_Open_Image" onclick="this.style.display='none'; Codehighlighter1_130_177_Open_Text.style.display='none'; Codehighlighter1_130_177_Closed_Image.style.display='inline'; Codehighlighter1_130_177_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_130_177_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_130_177_Closed_Text.style.display='none'; Codehighlighter1_130_177_Open_Image.style.display='inline'; Codehighlighter1_130_177_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;run()</span><span id="Codehighlighter1_130_177_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_130_177_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;employee.startWorking();&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img id="Codehighlighter1_217_256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_256_Open_Text.style.display='none'; Codehighlighter1_217_256_Closed_Image.style.display='inline'; Codehighlighter1_217_256_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_217_256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_217_256_Closed_Text.style.display='none'; Codehighlighter1_217_256_Open_Image.style.display='inline'; Codehighlighter1_217_256_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Employee&nbsp;getEmployee()</span><span id="Codehighlighter1_217_256_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_217_256_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;employee;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img id="Codehighlighter1_308_354_Open_Image" onclick="this.style.display='none'; Codehighlighter1_308_354_Open_Text.style.display='none'; Codehighlighter1_308_354_Closed_Image.style.display='inline'; Codehighlighter1_308_354_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_308_354_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_308_354_Closed_Text.style.display='none'; Codehighlighter1_308_354_Open_Image.style.display='inline'; Codehighlighter1_308_354_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setEmployee(Employee&nbsp;employee)</span><span id="Codehighlighter1_308_354_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_308_354_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.employee</span><span style="color: #000000">=</span><span style="color: #000000">employee;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;</span></div>
<br />
四 ： 聚合（Aggregation）<br />
当对象A被加入到对象B中，成为对象B的组成部分时，对象B和对象A之间为聚集关系。聚合是关联关系的一种，是较强的关联关系，强调的是整体与部分之间的关系。<br />
[关联与聚合的区别]<br />
(1)关联关系所涉及的两个对象是处在同一个层次上的。比如人和自行车就是一种关联关系，而不是聚合关系，因为人不是由自行车组成的。<br />
聚合关系涉及的两个对象处于不平等的层次上，一个代表整体，一个代表部分。比如电脑和它的显示器、键盘、主板以及内存就是聚集关系，因为主板是电脑的组成部分。<br />
(2)对于具有聚集关系（尤其是强聚集关系）的两个对象，整体对象会制约它的组成对象的生命周期。部分类的对象不能单独存在，它的生命周期依赖于整体类的对象的生命周期，当整体消失，部分也就随之消失。比如张三的电脑被偷了，那么电脑的所有组件也不存在了，除非张三事先把一些电脑的组件（比如硬盘和内存）拆了下来。<br />
<br />
<img height="178" alt="" src="http://www.blogjava.net/images/blogjava_net/liuwentao253/um5.jpg" width="298" border="0" /><br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_21_285_Open_Image" onclick="this.style.display='none'; Codehighlighter1_21_285_Open_Text.style.display='none'; Codehighlighter1_21_285_Closed_Image.style.display='inline'; Codehighlighter1_21_285_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_21_285_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_21_285_Closed_Text.style.display='none'; Codehighlighter1_21_285_Open_Image.style.display='inline'; Codehighlighter1_21_285_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Computer</span><span id="Codehighlighter1_21_285_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_21_285_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;CPU&nbsp;cpu;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_75_109_Open_Image" onclick="this.style.display='none'; Codehighlighter1_75_109_Open_Text.style.display='none'; Codehighlighter1_75_109_Closed_Image.style.display='inline'; Codehighlighter1_75_109_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_75_109_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_75_109_Closed_Text.style.display='none'; Codehighlighter1_75_109_Open_Image.style.display='inline'; Codehighlighter1_75_109_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;CPU&nbsp;getCPU()</span><span id="Codehighlighter1_75_109_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_75_109_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;cpu;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_146_182_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_182_Open_Text.style.display='none'; Codehighlighter1_146_182_Closed_Image.style.display='inline'; Codehighlighter1_146_182_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_146_182_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_182_Closed_Text.style.display='none'; Codehighlighter1_146_182_Open_Image.style.display='inline'; Codehighlighter1_146_182_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setCPU(CPU&nbsp;cpu)</span><span id="Codehighlighter1_146_182_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_146_182_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.cpu</span><span style="color: #000000">=</span><span style="color: #000000">cpu;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">开启电脑&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img id="Codehighlighter1_226_279_Open_Image" onclick="this.style.display='none'; Codehighlighter1_226_279_Open_Text.style.display='none'; Codehighlighter1_226_279_Closed_Image.style.display='inline'; Codehighlighter1_226_279_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_226_279_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_226_279_Closed_Text.style.display='none'; Codehighlighter1_226_279_Open_Image.style.display='inline'; Codehighlighter1_226_279_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;start()</span><span id="Codehighlighter1_226_279_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_226_279_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">cpu运作&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpu.run();&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;</span></div>
<br />
</div>
<img src ="http://www.blogjava.net/liuwentao253/aggbug/219416.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-08-01 17:24 <a href="http://www.blogjava.net/liuwentao253/archive/2008/08/01/219416.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex 心得</title><link>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213359.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 08 Jul 2008 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213359.html</guid><description><![CDATA[swf有他先天的优点，就是用户交互的友好。 <br />
所以在看到论坛上沸沸扬扬的RIA，RCP后， <br />
1、XUL看了好些文档，觉得还不错，但是大家的评论给我感觉有点穷途末路？而且是在浏览器基础上的，放弃； <br />
2、XAML是微软的，&#8230;&#8230;放弃； <br />
3、Flex虽然要钱多，但是开发者并没有多少限制，Flex Builder也是十分的出色。laszlo体积大了点，而且文档有点过时。但他的存在对Flex是件好事。Flash的存在让我相信离开浏览器也能生存是迟早的事情。在看过两者的Demo之后，我决定在未来3个月内搞定Flex。 <br />
<br />
SWT的程序真的让人写的很郁闷，Flex的examples让我心头一亮，短短几行ui描述就做了这么多事情，如果是SWT，没有400行搞不定的事情。 <br />
&lt;mx:....&gt;们都能干什么，是我接下来要学习的东西，今天把以前C/S结构的项目拿来，研究了一下，真是太rapid了！ <br />
1、把S放在Tomcat里，基本没有做什么，换了一下JNDI，花了1小时； <br />
2、C显然不能用了，DAO里随便找了一个查询返回List，用RemoteObject，结果放在datagrid里，大体就这样子： <br />
&lt;mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"&gt; <br />
&lt;mx:RemoteObject id="srv" source="test.DepartmentService"&gt; <br />
&lt;mx:method name="departments"/&gt; <br />
&lt;/mx:RemoteObject&gt; <br />
&lt;mx:Button label="Get Data" click="srv.departments()"/&gt; <br />
&lt;mx:DataGrid id="dg" dataProvider="{srv.departments.result}" width="100%" height="100%" /&gt; <br />
&lt;/mx:Application&gt; <br />
在S里test.DepartmentService.departments()返回一个Set. <br />
RPC就这么简单的实现了，一次就通过了，而且没有一贯的中文问题。1小时。 <br />
js提取数据？dom4j分析？serialized接口？JAXP？metadata API？统统不用自己搞了。 <br />
<br />
这样看来，写RIA的重点已经不是ui的布置、事件的处理，也不是通讯，而可以把重心放在优化通信，甚至优化离线，异步。当然，也可以有更多的时间做一些ui的特效。 <br />
Flex的高起点让我欣喜不已。<br />
&nbsp;<br />
1。Flex是macromedia推出的新的表现层技术产品（或者说解决方案），基于Rich Internet Application的理念。简单的说，他的原理就是通过解析xml文件实时的生成SWF并返回到客户端。所以，最终用户看到的就是纯Flash的界面，也就是swf文件/字节流。 <br />
<br />
2。HTML已经雄霸Internet多年，已经跟不上当今全球网络环境日新月异的发展速度。使用HTML，表现方式和效果有限，虽然上手不难，但开发效率普遍低下，而且HTML与XML虽是表亲，但毕竟不如XML这般一清二楚，数据，逻辑，样式，排版，统统糅杂于一处，大不符当今分层解耦的大趋势。这也是为什么近年来，基于浏览器(其实就是基于HTML)的各种表现层框架层出不穷的原因之一。即使后来各路诸侯想尽办法，今天DHTML，明天JavaScript，还是无法彻底解决上文所说的两个问题。所以，瘦客户端技术-浏览器将死，胖客户端技术-RIA似要卷土重，倒也不是胡乱说得了。 
<img src ="http://www.blogjava.net/liuwentao253/aggbug/213359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-07-08 16:34 <a href="http://www.blogjava.net/liuwentao253/archive/2008/07/08/213359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>富客户端，哪种实现更有前途呢？ </title><link>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213290.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 08 Jul 2008 04:08:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213290.html</guid><description><![CDATA[富客户端肯定是今后web应用的发展方向了。 <br />
实现的技术也越来越多。flex，ajax..... <br />
哪种的前景更好些呢？ <br />
flex的优点是代码编写比较简单，用相比ajax更少的代码就可以生成比较丰富的功能。和更佳的用户体验。 <br />
而且绝对跨平台，跨浏览器。毕竟运行环境下有flash播放器就可以了。不受script各浏览器标准不同的约束， <br />
尽情写代码，不用对兼容性考虑太多。 <br />
<br />
本来内心中对ajax的前景更看好，可是写到这里，却突然发现，说不出ajax的更多优点了。 <br />
不过毕竟script跟html关系更密切。短时间内，html依然会是页面表示的基础。没有html如何SEO，虽然adobe已经 <br />
根google协议在文字，媒体检索中支持flash，但真正实现不知何年何月。 <br />
flex的最大瓶颈就应该是对html操作不够了吧。 <br />
<br />
正是跟其他语言之间的区别一样，各有所长，未来富客户端的领域更多的UI技术相信也会如此吧。
<img src ="http://www.blogjava.net/liuwentao253/aggbug/213290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-07-08 12:08 <a href="http://www.blogjava.net/liuwentao253/archive/2008/07/08/213290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AS3.0概要–了解AS3.0的改变 </title><link>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213210.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 08 Jul 2008 00:43:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/07/08/213210.html</guid><description><![CDATA[<div id="text">
<p>&nbsp;</p>
<p>随着一些相关资料对as3.0的介绍,有人可能认为它是另一种语言.它的根本改变在哪呢,它是什么呢?现在我们要放松一点.如果你熟知as2.0,那么它的变化并不是很大,甚至增加了一些命令你可以使用。</p>
<p>从我们第一眼看as3.0,它并不是一个全新的语言,它的架构要好于AS2.0,你将从FLASH8开始发现这些.任何东西都有自已的类和整洁的子类.类的继承关系看起来很复杂,但是它却是很容易理解。</p>
<p><strong>主要的改变:</strong></p>
<p>1、不在有_global范围了,但是你可以通过在预先的public,private和internal里,使用&#8221;namespace&#8221;来创建你自已的命名。</p>
<p>2、int/uint. 新的数据类型来描述非浮点数,这项增加可以使flash与其它程序语言同步,并且解决一些使用java和AMF/Flash Remoting令人头痛的问题。</p>
<p>3、你不能在在时间线上使用命令play()或stop().MovieClip不在是在global的范围内了,你必须通过flash.display.MovieClip来使用它的属性。</p>
<p>4、正规标准表达式—-快速搜索操作字符串。</p>
<p>5、新的更简单的委派(delegate)。</p>
<p>6、DOM3 事件模型——个新的,但是不被熟知的生成和操作事件信息的方法。</p>
<p>7、显示API列表——图像根据新的或更多的逻辑基于类别如Sprites精灵和Shapes形体被细分。</p>
<p>8、在也不需要指定depth深度数值给对象. Depth管理类现在会自动控制(基于API列表)并内建于flash player内.新的方法提供了对对象z-order也就是Z轴的操作。</p>
<p>9、Final/protected关键词.—防止你的类或函数被覆写。</p>
<p>10、新的简单的XML元素及属性使用E4X。</p>
<p>11、ArgumentError 类.——使用此类可以避免函数调用了不相符合的参数时所产生的错误。</p>
<p>12、Package 关键诩—-如果你不知道pagckage是什么,不要担心,当你在做大的项目时你会慢慢喜欢上它。</p>
<p>13、被用在数据输入输出接口的ByteArray提供方法和属性来优化读,写,和二进制数据。</p>
<p><strong>低级别—异常</strong></p>
<p>异常处理对于FLASH开发人员来说路还较长,如果一个数值超出新的int/unit数据类型,一个错误就会被显示出来.有些类似于JAVA.你必须要想办法解决这些问题,否则FLASH程序可能就会垮台.如果一些东西在AS1和AS2中失效,flash player可能会很友好的忽略掉,在FLASH8中,你可能已经通过使用file upload看的了新的究错能力,它需要一系列事件来显示上载进程和缓存错.使用AS3,这些是工作在一个低级别的状态。</p>
<p>异常可能会发生几个地方,例如：使用As3.0,你需要查看你的内存的最近使用状况,MemoryError是一个新的异常,当内存寻址失败时,它就会通过AVM2虚拟机显示错识.其它的异常为EOFError,illegalOperatinError,IOError,ScriptTimeoutError和StackOverflowError。</p>
<p>想一下上面这些内容,之前许多是JAVA等其它语言专用的,你可以通过StringBuilder类看到,它来自java类StringBuffer可以允许我们很容易的操作字符.终上所述,我必须说新的AS3类的结构看起来非常好.有不同背景的程序员看到FLASH就会说我知道它是怎么做的,我认为我们可以说actionscript已经过去了,它的童年过去了,青年时代刚刚到来。</p>
<p><strong>新的命令</strong></p>
<p>可能有更多的新命令,这里面例出一些发现到的。</p>
<p><strong>Sound(声音)</strong></p>
<p>leftPeak / rightPeak Property——当前声音的右声道振幅,从0到1</p>
<p>isBuffering : Boolean [read-only]——返回外缓冲MP3的状态</p>
<p>soundBufferTime : uint——声音在流式播放前缓冲的秒数</p>
<p><strong>System(系统)</strong></p>
<p>vmVersion : String [read-only]——当前安装的ActionScript虚拟机的版本</p>
<p>totalMemory : uint [read-only]——报告当前使用的内存数量：<a href="http://livedocs.macromedia.com/labs/1/flex/langref/flash/system/System.html" target="_blank"><font color="#333366">System.html</font></a></p>
<p><strong>Debugging(调试)</strong></p>
<p>getClassByName(name:String)：Class——返回指定名称类对象的引用</p>
<p>describeType(value:Object)：XML——xml对象产物,用来描述actionscript对象参数的方法。</p>
<p>ps：看来As3.0并没有想象中的变化那么大，不过先是FLASH8，接着FLEX2，AS3．0，macroemdia的脚步是越走越快。</p>
</div>
<img src ="http://www.blogjava.net/liuwentao253/aggbug/213210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-07-08 08:43 <a href="http://www.blogjava.net/liuwentao253/archive/2008/07/08/213210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dwr2中推模式的基本原理</title><link>http://www.blogjava.net/liuwentao253/archive/2008/07/07/213029.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Mon, 07 Jul 2008 06:22:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/07/07/213029.html</guid><description><![CDATA[<u><br />
</u>1、是客户端链接到服务器，这个时候如果要使用推模式的话，就要申明推模式，用于区分一般的ajax应用。在dwr中使用以下代码实现，调用startPoll，注册成功。<br />
<br />
function startPoll() {&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DWREngine.setPolling(true);<br />
}<br />
<br />
2、这样就会在链接服务器的时候产生一个异步长链接，并且在服务端，根据这个页面id，sessionid，sessionscriptid（dwr生成的）注册这个这个长链接。<br />
<br />
3、这个时候客户端可以自由异步发送其他信息。<br />
<br />
3、发现有客户端有信息发送过来，往所有的长链接发送js。这个js可以和客户端js结合，主要是传输数据，调用方法。<br />
<br />
4、客户端接收到发送过来的js，运行。<br />
<br />
5、经过特定时间（长链接的定时），链接断开，重新建立一个长链接。由此循环。
<img src ="http://www.blogjava.net/liuwentao253/aggbug/213029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-07-07 14:22 <a href="http://www.blogjava.net/liuwentao253/archive/2008/07/07/213029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2.0已有的校验器</title><link>http://www.blogjava.net/liuwentao253/archive/2008/06/17/208616.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 17 Jun 2008 06:22:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/06/17/208616.html</guid><description><![CDATA[<p>Struts 2.0已经为您实现很多常用的校验了，以下在jar的default.xml中的注册的校验器。</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validators</span> <span style="color: #0000ff">&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="required"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="requiredstring"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="int"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="double"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="date"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="expression"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.ExpressionValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="fieldexpression"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="email"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.EmailValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="url"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.URLValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="visitor"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="conversion"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="stringlength"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
&nbsp; &nbsp; </span><span style="color: #0000ff">&lt;</span> <span style="color: #800000">validator </span><span style="color: #ff0000">name</span> <span style="color: #0000ff">="regex"</span> <span style="color: #ff0000">class</span> <span style="color: #0000ff">="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"</span> <span style="color: #0000ff">/&gt;</span> <span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span> <span style="color: #800000">validators</span> <span style="color: #0000ff">&gt;</span> </div>
<img src ="http://www.blogjava.net/liuwentao253/aggbug/208616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-06-17 14:22 <a href="http://www.blogjava.net/liuwentao253/archive/2008/06/17/208616.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>opencms简介</title><link>http://www.blogjava.net/liuwentao253/archive/2008/06/16/208250.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Mon, 16 Jun 2008 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/06/16/208250.html</guid><description><![CDATA[OpenCms是1999年发布的，瑞典互联网顾问Framfab支持它。Framfab在欧洲六个国家设有分支机构。德国Framfab是OpenCms项目的主要发起人。对于OpenCms的咨询和支持可以在Framfab以及其他的欧洲公司（比如Alkacon）那里获得。美国的支持选择就比较有限，但是所有的文件和培训资料都有英文版的。现在，OpenCms已经被LGT Bank of Lichtenstein、BP South Africa、和UNICEF Netherlands以及其他很多用户采用。按照Emmerich的观点，OpenCms适用于那些每天有150，000 PV（page view）的网站。<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/liuwentao253/111111.jpg" border="0" /><br />
<br />
http://www.opencms.org/opencms/en/index.html<br />
<br />
2008年3月3日，OpenCms7.0.4发布了
<img src ="http://www.blogjava.net/liuwentao253/aggbug/208250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-06-16 10:44 <a href="http://www.blogjava.net/liuwentao253/archive/2008/06/16/208250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql 执行sql语句</title><link>http://www.blogjava.net/liuwentao253/archive/2008/06/10/206971.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 10 Jun 2008 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/06/10/206971.html</guid><description><![CDATA[D:\Program Files\MySQL\MySQL Server 5.0\bin&gt;mysql -h localhost -u root -p123456 &lt; c:\bbscs8.sql
<img src ="http://www.blogjava.net/liuwentao253/aggbug/206971.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-06-10 18:19 <a href="http://www.blogjava.net/liuwentao253/archive/2008/06/10/206971.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java.lang.OutOfMemoryError: Java heap space 解决方法</title><link>http://www.blogjava.net/liuwentao253/archive/2008/06/03/205466.html</link><dc:creator>刘文涛</dc:creator><author>刘文涛</author><pubDate>Tue, 03 Jun 2008 00:24:00 GMT</pubDate><guid>http://www.blogjava.net/liuwentao253/archive/2008/06/03/205466.html</guid><description><![CDATA[<p><font color="#810081">java.lang.OutOfMemoryError: Java heap space 解决方法 </font></p>
<p>这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.</p>
<p>1.可以在windows 更改系统环境变量<br />
加上JAVA_OPTS=-Xms64m -Xmx512m</p>
<p>2,如果用的tomcat,在windows下,可以在</p>
<p>C:\tomcat5.5.9\bin\catalina.bat&nbsp; 中加上:</p>
<p>set JAVA_OPTS=-Xms64m -Xmx256m</p>
<p>位置在: rem Guess CATALINA_HOME if not defined&nbsp; 这行的下面加合适.</p>
<p>3.如果是linux系统<br />
Linux&nbsp; 在{tomcat_home}/bin/catalina.sh的前面，加 <br />
set JAVA_OPTS='-Xms64 -Xmx512'</p>
<img src ="http://www.blogjava.net/liuwentao253/aggbug/205466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuwentao253/" target="_blank">刘文涛</a> 2008-06-03 08:24 <a href="http://www.blogjava.net/liuwentao253/archive/2008/06/03/205466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>