﻿<?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/dongwq/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:23:24 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:23:24 GMT</pubDate><ttl>60</ttl><item><title>转向新的日志位置</title><link>http://www.blogjava.net/dongwq/archive/2011/05/15/350293.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Sun, 15 May 2011 13:53:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2011/05/15/350293.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/350293.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2011/05/15/350293.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/350293.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/350293.html</trackback:ping><description><![CDATA[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 偶然发现了盛大的maiku, 是一个不错的日志和资源整理平台。于是转向了它，地址是 <a href="http://note.sdo.com/u/dongwq">http://note.sdo.com/u/dongwq</a><br />
欢迎来看看。<img src ="http://www.blogjava.net/dongwq/aggbug/350293.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2011-05-15 21:53 <a href="http://www.blogjava.net/dongwq/archive/2011/05/15/350293.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>div的visibility和display属性的区别</title><link>http://www.blogjava.net/dongwq/archive/2010/09/14/331970.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Tue, 14 Sep 2010 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/09/14/331970.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/331970.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/09/14/331970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/331970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/331970.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&#8226;&nbsp;&nbsp;前者：看见与不看见，但是位置保留。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;&nbsp;&nbsp;后者处理与位置有关：block,&nbsp;inline,&nbsp;none&nbsp;分别是有前后换行，不换行，不显示功能但是不保留位置。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&#8226;&nbsp;&nbsp;二者功能差异：保留位置，和位置形式<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;language</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;toggleVisibility(me)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(me.style.visibility</span><span style="color: #000000;">==</span><span style="color: #000000;">"</span><span style="color: #000000;">hidden</span><span style="color: #000000;">"</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;me.style.visibility</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">visible</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;me.style.visibility</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">hidden</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">DIV&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">toggleVisibility(this)</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">position:relative</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;第一行文本将会触发</span><span style="color: #000000;">"</span><span style="color: #000000;">hidden</span><span style="color: #000000;">"</span><span style="color: #000000;">和</span><span style="color: #000000;">"</span><span style="color: #000000;">visible</span><span style="color: #000000;">"</span><span style="color: #000000;">属性，注意第二行的变化。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">DIV</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">DIV</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">因为visibility会保留元素的位置，所以第二行不会移动.</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">DIV</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">script&nbsp;language</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;toggleDisplay(me){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(me.style.display</span><span style="color: #000000;">==</span><span style="color: #000000;">"</span><span style="color: #000000;">block</span><span style="color: #000000;">"</span><span style="color: #000000;">){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;me.style.display</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">inline</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000;">"</span><span style="color: #000000;">文本现在是：'inline'.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(me.style.display</span><span style="color: #000000;">==</span><span style="color: #000000;">"</span><span style="color: #000000;">inline</span><span style="color: #000000;">"</span><span style="color: #000000;">){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;me.style.display</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">none</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000;">"</span><span style="color: #000000;">文本现在是:'none'.3秒钟后自动重新显示。</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(</span><span style="color: #000000;">"</span><span style="color: #000000;">blueText.style.display='block';</span><span style="color: #000000;">"</span><span style="color: #000000;">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">3000</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">javascript</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;me.style.display</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">block</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000;">"</span><span style="color: #000000;">文本现在是:'block'.</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">script</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">DIV</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">在</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">span&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">blueText</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;onclick</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">toggleDisplay(this)</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;style</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">color:blue;position:relative;cursor:hand;</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;蓝色</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">span</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">文字上点击来查看效果.</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">DIV</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span></div><img src ="http://www.blogjava.net/dongwq/aggbug/331970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-09-14 13:47 <a href="http://www.blogjava.net/dongwq/archive/2010/09/14/331970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>util.logger的使用</title><link>http://www.blogjava.net/dongwq/archive/2010/09/09/331519.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Thu, 09 Sep 2010 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/09/09/331519.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/331519.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/09/09/331519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/331519.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/331519.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1 . 日志的组成：配置文件，写日志log.cfg#############################################################&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default&nbsp;Logging&nbsp;Configuration&nbsp;File##&nbsp;You&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/dongwq/archive/2010/09/09/331519.html'>阅读全文</a><img src ="http://www.blogjava.net/dongwq/aggbug/331519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-09-09 15:09 <a href="http://www.blogjava.net/dongwq/archive/2010/09/09/331519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目经理之修炼(8)——别忘了告诉别人你是谁 </title><link>http://www.blogjava.net/dongwq/archive/2010/09/08/331412.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Wed, 08 Sep 2010 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/09/08/331412.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/331412.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/09/08/331412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/331412.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/331412.html</trackback:ping><description><![CDATA[<h3><a href="http://laosunisme.javaeye.com/blog/756250">项目经理之修炼(8)——别忘了告诉别人你是谁 </a></h3>
<strong>文章分类:<a style="padding-right: 10px; text-decoration: none" href="http://www.javaeye.com/blogs/category/develop">软件开发管理</a></strong>
<div class="blog_content">副标题——名不正言不顺，项目管理难度加倍 <br />
<br />
你能想象美国总统上任，却没有总统就职仪式吗？ <br />
你能想象北京奥林匹克运动会，没有开幕式表演吗？？ <br />
OK。相信你一定见过这样的场景： <br />
某老板匆匆忙忙地进了屋，忽地来了一嗓子：&#8220;大家静静，通知大家一下：以后，某项目就由小张负责了！&#8221; <br />
<br />
************************************************** <br />
<br />
话说楚汉相争。刘邦在萧何的再三举荐下，决定让韩信为大将。 <br />
<br />
&#8220;来人，叫韩信过来，我要封他为大将。&#8221;刘邦道。 <br />
<br />
萧何表示异议：&#8220;汉王你一向傲慢没有礼貌，现在拜大将就和喊一个小孩子那么随便，所以韩信才会离开的。汉王要想用人家，必须选一个吉日，吃素，设祭坛，用非常郑重地礼节来拜将才行。&#8221;刘邦同意萧何的意见。 <br />
<br />
结果，尽管韩信是个无名小卒，却顺利的接过了军权，而没有碰到那些元老们的抵抗，成功地导演了一幕幕战争奇迹。 <br />
<br />
************************************************** <br />
<br />
登台拜将，是一件具有深刻管理内涵的故事。它告诉我们这样一个道理： <br />
——内容是重要的，但形式却是不容忽视。 <br />
<br />
我们不求老板非要在某个公开场合悠扬地宣告：&#8220;某项目成立了!!小张从此站起来了！！！&#8221;什么吉日，什么斋戒，什么礼仪。。。也就罢了。 <br />
<br />
但是，不给正式任命书；不在正式场合公布；甚至连一个头衔都舍不得。这绝对是没天理的。 <br />
<br />
************************************************** <br />
<br />
&#8220;看，老板不重视这个项目。。。&#8221;（相关人员） <br />
&#8220;瞧，老板不重视这个家伙。估计这个家伙没有什么后台&#8221; （相关人员） <br />
&#8220;你负责某项目？我怎么不知道有这么个项目呢？你是哪位啊？&#8221; （相关人员） <br />
&#8220;老板似乎并不重视/信任我啊&#8221; （项目经理） <br />
<br />
*************************************************** <br />
<br />
以上种种，对项目的推动极为不利的。尤其是手下有资深员工、或者项目经理候补者等挑战者的时候，问题将会加倍严重。 <br />
<br />
大家可能会怀疑：&#8220;没有那么严重吧？&#8221; <br />
没有不严重，只有更严重！！ <br />
这其中蕴含着一个深刻的道理——名不正则言不顺！！ <br />
<br />
言不顺是什么意思呢？ <br />
<br />
-你的意见可能被忽视； <br />
-你的命令可能被当作建议； <br />
-你的计划可能被别人忘记； <br />
试想，你如果是项目经理，你的项目将会怎样。。。。。。 <br />
<br />
********************************************************* <br />
<br />
Question: 我没有办法叫老板改变。那么，我该怎么办？ <br />
Answer：要写一封邮件！！告诉别人你是谁。 <br />
<br />
********************************************************* <br />
<br />
你的老板犯了错误，可是你不能将错就错！你的老板忽视了&#8220;名&#8221;的问题（形式问题），你一定要扳回来！！ <br />
试想，你的老板不重视，你也不重视，你能指望别人重视吗？？ <br />
当然，答案就是别人会更不重视！！ <br />
<br />
那么，这封邮件该怎么写呢？？ <br />
<br />
<br />
************************************************** <br />
<br />
MailTo: 所有下属 <br />
CC:&nbsp;&nbsp;&nbsp;&nbsp; 所有相关领导，所有相关人员，自己 <br />
Title:&nbsp; 【A项目】A项目的新项目经理小张向大家问好 <br />
Content: <br />
<br />
1 开门见山地告诉别人自己的位置（正名） <br />
2 向相关人员致敬，并自然地点出自己的优势（自我介绍） <br />
3 向领导致敬致谢（拉近和领导关系） <br />
4 暗示自己的权利范围（宣布自己的领地） <br />
5 喊两句口号（合作和积极的姿态是必要的） <br />
6 不要忘了签名（进一步加深印象） <br />
<br />
//其中，1、2、4是必须要表现出来的 <br />
<br />
************************************************** <br />
<br />
上面这封邮件，基本上完成了告诉别人你是谁的问题，而且完成了你的位置身份暗示。 <br />
如果说老板不负责任的任命形式带给你身份位置认同危机，沉重打击了你的威信的话， <br />
通过这份邮件，你已经用身份暗示这个武器，夺回了主动权！！ <br />
<br />
从这封信以后，由于你的身份位置的明确， <br />
相关人员在潜意识中会认同你的领地所有权， <br />
会对在你的领地上和你发生冲突产生不自然，不合法甚至负罪感， <br />
从而下意识中就会避免和你发生冲突。 <br />
<br />
反过来讲，你的位置身份的明确，将成为你自信的源泉， <br />
而这种位置感产生的自信将使你的发言充满了正义感， <br />
加上项目经理这个位置所带来的小小的势能。。。 <br />
权力这个东西，真好！！ <br />
<br />
嗯，一个好的开端，不是吗? <br />
</div><img src ="http://www.blogjava.net/dongwq/aggbug/331412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-09-08 17:02 <a href="http://www.blogjava.net/dongwq/archive/2010/09/08/331412.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS 函数的使用</title><link>http://www.blogjava.net/dongwq/archive/2010/07/25/327078.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Sun, 25 Jul 2010 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/07/25/327078.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/327078.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/07/25/327078.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/327078.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/327078.html</trackback:ping><description><![CDATA[<br />
<br />
1、函数定义和使用<br />
<p><font style="background-color: #c7edcc"></font>&nbsp;</p>
<p><font style="background-color: #c7edcc">&lt;script&gt;</font></p>
<p><font style="background-color: #c7edcc">function sqrt(x) {<br />
&nbsp;&nbsp;&nbsp; return x * x;<br />
}<br />
function other(f) {<br />
&nbsp;&nbsp;&nbsp; var y = f(10);<br />
&nbsp;&nbsp;&nbsp; return y;<br />
}</font></p>
<p><font style="background-color: #c7edcc">var farr = new Array();<br />
farr[0] = function(arg) { return arg + arg;};<br />
farr[1] = function(arg) { return arg * arg;};</font></p>
<p><font style="background-color: #c7edcc">document.write(farr[0](10) + '&lt;br/&gt;');<br />
document.write(farr[1](10));</font></p>
<p><font style="background-color: #c7edcc"></font>&nbsp;</p>
<p><font style="background-color: #c7edcc">document.write(other(sqrt));</font></p>
<p><font style="background-color: #c7edcc">&lt;/script&gt;</font></p>
<p><font style="background-color: #c7edcc">sqrt.count = 0; <br />
sqrt.getcount = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.count;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; // 附加函式</font></p>
<p><font style="background-color: #c7edcc">//sqrt();<br />
document.write(sqrt.count, '&lt;br/&gt;');<br />
document.write(sqrt.getcount());<br />
</font></p><img src ="http://www.blogjava.net/dongwq/aggbug/327078.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-07-25 15:38 <a href="http://www.blogjava.net/dongwq/archive/2010/07/25/327078.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向杜拉拉学习</title><link>http://www.blogjava.net/dongwq/archive/2010/06/20/324021.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Sun, 20 Jun 2010 15:43:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/06/20/324021.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/324021.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/06/20/324021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/324021.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/324021.html</trackback:ping><description><![CDATA[<p>杜拉拉升级记：</p>
<p><br />
&nbsp;关键一点，你的上级要喜欢你。工作中涉及要决策的都要跟上级报告。这是上级的作用。</p>
<p><br />
&nbsp;对于平级的同事是不能用命令，不能要求别人做事的。</p>
<p>&nbsp;事情不能自己承担下来。</p>
<p>&nbsp;</p>
<p>感谢小熊同学借我这本书看 <br />
　　　　说说我的感受：此书没有书评中说的那么好，当然也没有那么坏。大家各取所需就好。与其叫小说，不如说是一种创新形式的职场教材。不要太去在意作者的文笔，而要更多的体会书中各位同学的处事之道。 <br />
　　　　几句话总结一下： <br />
　　　　1、勤奋是王道，其他的都属于EQ范畴了 <br />
　　　　2、要注意技巧，尤其是沟通技巧，别干了半天，没人知道你的工作量有多少。 <br />
　　　　3、掂量自己的能力，做好该做的事，不做不该做的事，比如越级汇报。 <br />
　　　　4、不要说人坏话，能帮助别人时要帮，关键时刻即使没有人帮你说话，但也不会有人说你的坏话。不信的话，去看看圣经怎么说得吧。 <br />
　　　　5、要有气量，做事要圆通。 <br />
　　　　6、要有自己的风格，风格没有好坏之分，但是一定要有。 <br />
　　　　7、告诉我们什么是好工作，这点比较长，见下面的摘抄（感谢&#8220;木马|造化弄人&#8221;的贡献）： <br />
　　 <br />
　　&#8220;一、关于什么样的职位算好职位 <br />
　　　　 <br />
　　1.你得找一家好公司 <br />
　　什么是好公司? <br />
　　　　　　 <br />
　　1)产品附加值高，生意好，并且从业务线看，具备持续发展的能力和前景; <br />
　　2)有专业的/聪明能干的/经验丰富的/并且为人现实的管理层，在把握这公司，并且有保护一贯这样用人的制度的公司; <br />
　　3)有严格的财务制度，对预算、费用和利润等于投入产出有关的内容，敏感并且具有强控制力的公司; <br />
　　4)崇尚客户导向/市场导向/结果导向/执行力的公司; <br />
　　5)有专业严谨全面的流程和制度，并且其执行有利于推动业务的良性发展，具有控制性和实操性兼备的特点; <br />
　　---总结起来，就是一家具有持续赢利能力的牛B公司 <br />
　　　　　　 <br />
　　2.你的找一个好的方向 <br />
　　　　　　 <br />
　　什么是好的方向? <br />
　　 永远不要远离核心业务线。你得看明白，在企业中，哪个环节是实现利润最大化的关键环节。有时候是销售环节，有时候是市场策划环节，有时候是研发环节，有时候是生产环节，视乎你所在行业而不同。 <br />
　　 最重要的环节，总是 最贵的，最牛的，最得到重视的，也是最有发展前途的部门。它拥有最多的资源和最大的权威--你应该依附在这样的核心业务线上发展，至少能避免被边缘化，而成为关键人才的可能性则更大了。 <br />
　　　　　　 <br />
　　3.你得跟一个好老板。 <br />
　　　　　　 <br />
　　　　好老板的标准很多，关键的是，你要设法跟上一个在公司处于强势地位的老板。他强，你才能跟着上。跟了一个弱势的老板，你的前途就很同意被根着给耽搁了。 <br />
　　　　　　 <br />
　　二、关于具备谋取好职位的资格 <br />
　　要具备怎么样的资格呢?一般情况下，你得是用人部门眼中的优秀者。 <br />
　　 <br />
　　 <br />
　　怎么样才算优秀呢? <br />
　　　　　　 <br />
　　1.对上级 <br />
　　　　　　 <br />
　　1)你要知道与他建立一致性，他觉得重要的事情，你就觉得重要，他认为紧急的事情你也认为紧急，你得和他劲往一处使--通常情况下，你得表现和能力好还是不好，主要是你得直接主管说了算的; <br />
　　 <br />
　　2)你的具备从上级那里获得支持和资源的能力--别你干的半死，你的老板还对你爱搭不理的，那你就不具备本条件的能力。 <br />
　　　　　　 <br />
　　2.对下级 <br />
　　　　　　 <br />
　　1)要能明确有效的设置正确的工作目标，使其符合SMART原则; <br />
　　2)要能有效地管理团队内部冲突; <br />
　　3)要能公平合理地控制分配团队资源; <br />
　　4) 要有愿望和能力发展指导下属，并恰当授权; <br />
　　5)恰当的赞扬鼓励认可团队成员; <br />
　　6)尊重不同想法，分享知识经验和信息，建立信任的氛围。 <br />
　　　　　　 <br />
　　3.对内、外部客户 <br />
　　　　　　 <br />
　　1)愿意提供协助和增值服务(不然要你干嘛); <br />
　　2)善意聆听并了解需求(搞明白人家需要的到底是啥); <br />
　　3)可靠的提供产品和服务，及时跟进(千万注意及时); <br />
　　4)了解组织架构并具影响力。及早地建立并维护关键的关系，是这样的关系有利于你达成业绩(专业而明智的选择); <br />
　　　　　　 <br />
　　比如你想取得一个内部职位，你的搞明白了，谁是关键的做决定的人物，别傻乎乎不小心给这个人留下坏印象。 <br />
　　　　　　 <br />
　　比如必要去客人那里拿订单，你找了一个关键的人物A，可是你也别忽略作购买决定环节上的另一个人物B，没准B和A是死敌，本来B会同意给你下订单的，就因为A同意给你单子，B就是不同意给你单子。 <br />
　　　　　　 <br />
　　4.对本岗任务 <br />
　　　　　　 <br />
　　1)清楚自己的定位和职责--别搞不清楚自己是谁，什么是自己的活，知道什么该报告，什么要自己独立做决定; <br />
　　2)结果导向--设立高目标，信守承诺，承担责任，注重质量、速度和期限，争取主动，无需督促; <br />
　　3)清晰的制定业务计划并有效实施; <br />
　　4)学习能力--愿意学，坚持学，及时了解行业趋势/竞争状况和技术更新，并学以致用; <br />
　　5)承受压力的能力--严峻的工作条件下，能坚忍不拔，想办法获取资源、支持和信息，努力以实现甚至超越目标; <br />
　　6)适应的能力--如适应多项要求并存，优先级变换以及情况不明等工作条件，及时调整自己的行为和风格来适应不同个人及团队的需要(工作重心会变化，老板会换人，客人也会变，别和他们说&#8220;我过去如何如何&#8221;，多去了解对方的风格) &#8221;。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/dongwq/aggbug/324021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-06-20 23:43 <a href="http://www.blogjava.net/dongwq/archive/2010/06/20/324021.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>方与圆视频笔记</title><link>http://www.blogjava.net/dongwq/archive/2010/06/12/323413.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Sat, 12 Jun 2010 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/06/12/323413.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/323413.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/06/12/323413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/323413.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/323413.html</trackback:ping><description><![CDATA[<p>方与圆：<br />
</p>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;最少期望的去感谢别人。不要抱着目的去感谢别人，甚至事前感谢也好。感谢只需说一次。<br />
<br />
&nbsp; 发掘别人不明显的优点加以赞扬。<br />
&nbsp; 赞扬行动和品性，而不要扩大到赞扬一个人。赞扬的原因要说明。</p>
<p><br />
&nbsp; 和气生财吗？喝杯水。</p>
<p>&nbsp; 对陌生人要特别要笑。微笑是影响人气质的一个特别重要的东西。</p>
<p>&nbsp; </p>
<p>&nbsp; 对生活的真诚，快乐的感情最能够打动人。 男的微笑也很好。</p>
<p>&nbsp;</p>
<p>认真的品质：画一个月和十年。</p>
<p>组装的质量差？认真的态度。德国人的认真，指路会指出的很具体的。</p>
<p>只有最认真的人才能做出最好的产品。</p>
<p>&nbsp;</p>
<p>自动自发的精神，一定要发挥自己的主观能动性。</p>
<p>当成自己的事来做吧。要主动的来做。</p>
<p><br />
做好产品是人的一种尊严。争强好胜在自己的工作上面。因为这是你的发挥场地。</p>
<p>只办总裁班？成本与质量观念不一样的？ 规模经济？质量了的产品成本会降低。</p>
<p>检查的目的是为了改进生活流程。</p>
<p>管制图？</p>
<p><br />
困定的供货商？不是投标。是指定方式做。</p>
<p><br />
永远追求持续不断的完善。</p>
<p>&nbsp;有必要再试一次。</p>
<p>改进自己的产品吧。</p>
<p>也淘汰了自己的竞争者。 一个系列的生产方式是不错的。</p>
<p><br />
到外去演讲，不做化疗？活过了三年？</p>
<p><br />
要有自己的追求。活就要活出自己的价值。无论在何时的年龄，都要有自己的追求。</p>
<p>人生不是直线的，是C型的人生。</p>
<p><br />
人生可以随时开始。<br />
</p><img src ="http://www.blogjava.net/dongwq/aggbug/323413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-06-12 11:17 <a href="http://www.blogjava.net/dongwq/archive/2010/06/12/323413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>zz＜设计模式：java语言中的应用＞摘要、总结 收藏 </title><link>http://www.blogjava.net/dongwq/archive/2010/05/28/322156.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Fri, 28 May 2010 08:24:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/05/28/322156.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/322156.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/05/28/322156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/322156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/322156.html</trackback:ping><description><![CDATA[<p>＜设计模式：java语言中的应用＞摘要、总结 收藏 <br />
＜设计模式：java语言中的应用＞一书已经学完，现做个摘要、总结。</p>
<p>创建模式(Creational Patterns)<br />
Abstract Factory Builder<br />
Factory Method&nbsp; Prototype<br />
Singleton</p>
<p>结构模式(Structural Patterns)<br />
Adapter&nbsp; Bridge<br />
Composite Decorator<br />
Facade&nbsp; Flyweight<br />
Proxy</p>
<p>行为模式(Behavioral Pattern)<br />
Chain of Responsibility&nbsp; Command<br />
Interpreter&nbsp;&nbsp; Iterator<br />
Mediator&nbsp;&nbsp; Memento<br />
Observer&nbsp;&nbsp; State<br />
Strategy&nbsp;&nbsp; Template Method<br />
Visitor</p>
<p>一、创建模式(Creational Patterns)</p>
<p>1.Abstract Factory(抽象工厂)—把相关零件组合成产品<br />
&nbsp;Abstract Factory Pattern 是把各种抽象零件组合成抽象产品。换句话说，处理的重点是在接口(API)而不是零件的具体实现。只利用接口(API)就能把零件组合成产品.<br />
&nbsp;程序示例:<br />
&nbsp;--Main.java 测试用的类<br />
&nbsp;|-factory<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Factory.java 表示抽象工厂的类(产生Link,Tray,Page)<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Itme.java 用来统一处理Link和Tray的类<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Link.java 抽象零件:表示HTML连接的类<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Tray.java 抽象零件:抽取Link和Tray的类<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Page.java 抽象零件:表示HTML网页的类<br />
&nbsp;|<br />
&nbsp;|-listfactory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------listFactory.java 表示具体工厂的类(产生ListLink,ListTray,ListPage)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------listLink.java 具体零件:表示HTML连接的类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------listTray.java 具体零件:抽取Link和Tray的类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------listPage.java 具体零件:表示HTML网页的类<br />
&nbsp;步骤:定义抽象零件-&gt;用抽象零件定义抽象工厂-&gt;定义具体零件(继承实现抽象零件)-&gt;定义具体工厂(继承实现抽象工厂,制造实际产品)</p>
<p>2.Factory Method<br />
&nbsp;Factory Method Pattern 在父类规定对象的创建方法,但并没有深入到较具体的类名.所有具体的完整内容都放在子类.根据这个原则,我们可以大致分成产生对象实例的大纲(框架)和实际产生对象实例的类两方面.<br />
&nbsp;程序示例:<br />
&nbsp;--Main.java 测试用的类<br />
&nbsp;|-framework<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Product.java 仅定义抽象方法use的抽象类<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Factory.java 规定createProduct,registerProduct,实现create的抽象类(类似模板方法)<br />
&nbsp;|<br />
&nbsp;|-idcard<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------IDCard.java 实现方法use的具体类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------IDCardFactory.java 实现方法createProduct,registerProduct的类<br />
&nbsp;步骤:定义抽象产品-&gt;根据抽象产品定义抽象工厂-&gt;定义具体产品(继承实现抽象产品)-&gt;定义具体工厂(继承实现抽象工厂,制造实际产品)</p>
<p>3.Singleton(单件)－唯一的对象实例<br />
&nbsp;Singleton Pattern 是针对一个类而言. Singleton类只会产生１个对象实例．Singleton类把singleton定义为static字段(类变量),再以Singleton类的对象实例进行初始化．这个初始化的操作仅在加载Singleton类时进行一次．<br />
&nbsp;Singleton类的构造函数是private的，主要是为了禁止从非Singleton类调用构造函数．即使下面这个表达式不在此类之内，编译时仍然会出现错误．<br />
&nbsp; 程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Singleton.java 只有１个对象实例的类<br />
&nbsp;步骤:定义一个该类类型的static字段，同时实例化-&gt;该类的构造方法设为private-&gt;定义一个static的getInstance()方法，返回已经实例化的static字段．</p>
<p>4.Builder(生成器)－组合复杂的对象实例<br />
&nbsp;Builder Pattern 是采用循序渐进的方式组合较复杂对象实例的．<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Builder.java 规定建立文件时的方法的抽象类<br />
&nbsp;|--Director.java 产生１个文件的类<br />
&nbsp;|--TextBuilder.java 产生plaintext格式(一般文本格式)的类<br />
&nbsp;|--HTMLBuilder.java 产生HTML格式的类<br />
&nbsp;步骤:定义建立文件时的通用方法(Builder.java)-&gt;根据通用方法组织建立文件(Director.java)-&gt;根据不同需求实现建立文件的通用方法(TextBuilder.java,HTMLBuilder.java)</p>
<p>5.Prototype(原型)－复制建立对象<br />
&nbsp;Prototype Pattern 不是利用类产生对象实例，而是从一个对象实例产生出另一个新对象实例．<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--MessageBox.java 把字符串框起来use的类．实现use和createClone<br />
&nbsp;|--UnderlinePen.java 把字符串加上下划线的类．实现use和createCone<br />
&nbsp;|--framework<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------Product.java 已声明抽象方法use和createClone的接口<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------Manager.java 利用createClone复制对象实例的类<br />
&nbsp;步骤:规定可复制产品的接口(Product.java,继承Cloneable接口)-&gt;保存可复制的产品(以Product类型存以哈西表中)，并提供复制产品的方法create(调用产品的复制方法，复制工作在具体产品类中执行)(Manager.java)-&gt;定义可复制的具体产品(UnderlinePen.java,MessageBox.java,实现复制产品方法)</p>
<p><br />
二、结构模式(Structural Patterns)</p>
<p>1.Adapter(适配器)－换个包装再度利用<br />
&nbsp;Adapter Pattern 把既有的无法直接利用的内容转换成必要的类型后再使用．具有填平＂既有内容＂和＂需要结果＂两者间＂落差＂的功能．<br />
&nbsp;Adapter Pattern 有继承和委托两种形式．<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Banner.java 具有原始功能showWithParen,showWithAster的类<br />
&nbsp;|--Print.java 所需新功能printWeak,printStrong的接口或抽象类<br />
&nbsp;|--PrintBanner.java 把原始功能转换成新功能的类<br />
&nbsp;步骤:<br />
&nbsp;(继承)构造具有原始功能的类(Banner.java)-&gt;定义具有新功能的接口(Print.java)-&gt;转换(PrintBanner.java,继承Banner实现Print接口,即继承旧方法实现新功能)<br />
&nbsp;(委托)构造具有原始功能的类(Banner.java)-&gt;定义具有新功能的抽象类(Print.java)-&gt;转换(PrintBanner.java,继承具有新功能的Print类.定义委托对象,即原始功能类.构造时传入原始功能实例对象，新功能的实现利用委托对象的原始功能．)</p>
<p>2.Bridge(桥接)－分成功能层次和实现层次<br />
&nbsp;Bridge Pattern 沟通着＂功能的类层次＂和＂实现的类层次＂<br />
&nbsp;功能的类层次：给父类增加不同的功能<br />
&nbsp;实现的类层次：给父类以不同的实现<br />
&nbsp;Bridge Pattern 本质上是通过功能类(最上层的功能类)中的一个实现类(最上层的实现类，一般是抽象类)字段来桥接两个类层次的．<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Display.java 功能类层次的最上层类<br />
&nbsp;|--CountDisplay.java 功能类层次的新增功能类<br />
&nbsp;|--DisplayImpl.java 实现类层次的最上层类<br />
&nbsp;|--StringDisplayImpl.java 实现类层次的实现类<br />
&nbsp;步骤:定义实现类层次的最上层类(DisplayImpl.java)-&gt;定义功能类层次的最上层类(Display.java,使用Adapter Pattern的委托方式把DisplayImpl.java的原始功能转换成Display.java的新功能)-&gt;定义功能类层次的新增功能类(CountDisplay.java)-&gt;定义实现类层次的实现类(StringDisplayImpl.java)</p>
<p>3.Composite(组成)-对容器和内容一视同仁<br />
&nbsp;有时候把容器和内容当作是同类来处理会比较好下手。容器里面可以是内容，也可以是更小一号的容器；而这个小一号的容器里还可以再放更小一号的容器，可以建立出像这样大套小的结构和递归结构的Pattern就是Composite Pattern<br />
&nbsp;使用Composite Pattern,容器和内容必须有一定的共性.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--File.java 表示文件的类<br />
&nbsp;|--Directory.java 表示目录的类<br />
&nbsp;|--Entry.java 对File和Directory一视同仁的抽象类<br />
&nbsp;|--FileTreatmentException.java 欲在文件内新增Entry时所发生的异常类<br />
&nbsp;步骤:定义异常类(FileTreatmentException.java)-&gt;定义进入点类,即将容器和内容一视同仁的抽象类(Entry.java,容器和内容都含有共同的方法)-&gt;定义容器类和内容类(File.java,Directory.java,继承Entry,实现通用方法)</p>
<p>4.Decorator(装饰)-对装饰和内容一视同仁<br />
&nbsp;先建立一个核心对象,再一层层加上装饰用的功能,就可以完成符合所需的对象.可以看成是多个通用的适配器.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Display.java 打印字符串用的抽象类<br />
&nbsp;|--StringDisplay.java 只有1行的打印字符串用的类<br />
&nbsp;|--Border.java 表示"装饰外框"的抽象类<br />
&nbsp;|--SideBorder.java 只在左右加上装饰外框的类<br />
&nbsp;|--FullBorder.java 在上下左右加上装饰外框的类<br />
&nbsp;步骤:定义核心对象的抽象类(Display.java)-&gt;定义核心对象类(StringDisplay.java)-&gt;定义装饰类的抽象类(Border.java,继承核心对象的抽象类Display.java,以便装饰和内容一视同仁.装饰类中继承自核心对象抽象类的方法委托给传入的核心对象)-&gt;定义其它装饰类(SideBorder.java,FullBorder.java,继承Border.java)</p>
<p>5.Facade(外观)-单一窗口<br />
&nbsp;Facade Pattern 能整理错综复杂的来龙去脉,提供较高级的接口(API).Facade参与者让系统外部看到较简单的接口(API).而且Facade参与者还会兼顾系统内部各类功能和互动关系,以最正确的顺序利用类.<br />
&nbsp;Facade Pattern 把业务逻辑封装起来,只提供一个简单的接口给外部调用.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--maildata.txt 邮件列表文件<br />
&nbsp;|--pagemaker<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------Database.java 从邮件信箱取得用户名称的类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------HtmlWriter.java 产生HTML文件的类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------PageMaker.java 根据邮件信箱产生用户网页的类<br />
&nbsp;步骤:定义业务逻辑需要的相关类(Database.java,HtmlWriter.java)-&gt;定义外部接口类(PageMaker.java)</p>
<p>6.Flyweight(享元)-有相同的部分就共享,采用精简政策<br />
&nbsp;"尽量共享对象实例,不做无谓的new".不是一需要对象实例就马上new,如果可以利用其他现有的对象实例,就让它们共享.这就是Flyweigth Pattern的核心概念.<br />
&nbsp;Flyweight Pattern 实质是把创建的占用内存量大的对象存储起来(一般用hashtable存储),后续使用时,再从hashtable取出.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--BigChar.java 表示"大型字符"的类<br />
&nbsp;|--BigCharFactory.java 共享并产生BigChar的对象实例的类<br />
&nbsp;|--BigString.java 表示多个BigChar所产生的"大型文本"的类<br />
&nbsp;步骤:定义占用内存量大,需要共享的类(Display.java)-&gt;定义共享实例的类(BigCharFactory.java,共享处理在此进行,将产生的共享对象存储在哈希表中,第二次使用时从表中取出即可,不需要new)-&gt;定义共享对象组合使用类(BigString.java)</p>
<p>7.Proxy(代理)-需要再建立<br />
&nbsp;代理就是那个代替本来应该自己动手做事的本人的人.<br />
&nbsp;由于代理纯粹只是代理工作而已,因此能力范围也有限.如果遇到超出代理能力所及的范围,代理就应该去找本人商量才对.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Printer.java 表示命名的打印机的类(本人)<br />
&nbsp;|--Printable.java Printer和PrinterProxy共享的接口<br />
&nbsp;|--PrinterProxy.java 表示命名的打印机的类(代理)<br />
&nbsp;步骤:定义本人和代理都能处理的问题的接口(Printable.java)-&gt;建立本人类(Printer.java,实现Printable.java接口)-&gt;建立代理类(PrinterProxy.java,定义本人字段,把代理无法处理的问题交给本人)</p>
<p><br />
三、行为模式(Behavioral Pattern)</p>
<p>1.Chain of Responsibility(职责链)-责任转送<br />
&nbsp;先对人产生一个要求,如果这个人有处理的能力就处理掉;如果不能处理的话,就把要求转送给"第二个人".同样的,如果第二个人有处理的能力时就处理掉,不能处理的话,就继续转送给"第三个人",依此类推.这就是Chain of Responsiblility Pattern.<br />
&nbsp;Chain of Responsibility Pattern 的关键在于定义转送字段(next)和定义职责链.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 建立Support的连锁,产生问题的测试用类<br />
&nbsp;|--Trouble.java 表示发生问题的类.内有问题编号.<br />
&nbsp;|--Support.java 解决问题的抽象类.内有转送字段和处理方法.<br />
&nbsp;|--NoSupport.java 解决问题的具体类(永远"不处理")<br />
&nbsp;|--LimitSupport.java 解决问题的具体类(解决小于指定号码的问题)<br />
&nbsp;|--OddSupport.java 解决问题的具体类(解决奇数号码的问题)<br />
&nbsp;|--SpecialSupport.java 解决问题的具体类(解决特殊号码的问题)<br />
&nbsp;步骤:建立问题类(Trouble.java)-&gt;建立解决问题的抽象类(Support.java,定义了转送字段next,设置转送字段的方法setNext和处理问题的方法support)-&gt;建立解决问题的具体类(NoSupport.java,LimitSupport.java,OddSupport.java,SpecialSupport.java,继承Support.java)-&gt;产生处理问题的对象,建立职责链</p>
<p>2.Command(命令)-将命令写成类<br />
&nbsp;用一个"表示命令的类的对象实例"来代表欲执行的操作,而不需采用"调用方法"的类的动态处理.如欲管理相关纪录,只需管理该对象实例的集合即可.而若预先将命令的集合存储起来,还可再执行同一命令;或者是把多个命令结合成一个新命令供再利用.<br />
&nbsp;Command Pattern 重点在于存储/使用命令<br />
&nbsp;程序示例:<br />
&nbsp;--Main.java 测试用的类<br />
&nbsp;|-command<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------Command.java 表示"命令"的接口<br />
&nbsp;|&nbsp;&nbsp;&nbsp; |-------MacroCommand.java 表示"结合多个命名的命令"的类<br />
&nbsp;|<br />
&nbsp;|-drawer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------DrawCommand.java 表示"点的绘制命令"的类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------Drawable.java 表示"绘制对象"的接口<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------DrawCanvas.java 表示"绘制对象"的类<br />
&nbsp;步骤:建立命令接口(Command.java)-&gt;建立命令结合类(MacroCommand.java,将各个命令存储到一个Stack类型的字段)-&gt;建立绘制命令类(DrawCommand.java,定义绘制对象字段drawable,实现命令接口)-&gt;建立绘制对象接口(Drawable.java)-&gt;建立绘制对象类(DrawCanvas.java,实现绘制对象接口,定义命令集合字段history)-&gt;测试</p>
<p>3.Interpreter(解释器)-以类来表达语法规则<br />
&nbsp;Interpreter Pattern 是用简单的"迷你语言"来表现程序要解决的问题,以迷你语言写成"迷你程序"而表现具体的问题.迷你程序本身无法独自启动,必须先用java语言另外写一个负责"解释(interpreter)"的程序.解释程序能分析迷你语言,并解释\执行迷你程序.这个解释程序也称为解释器.当应解决的问题发生变化时,要修改迷你程序来对应处理.而不是修改用java语言写成的程序.<br />
&nbsp;迷你语言语法:<br />
&nbsp;&lt;program&gt;::=program&lt;command list&gt;<br />
&nbsp;&lt;command list&gt;::=&lt;command&gt;* end<br />
&nbsp;&lt;command&gt;::=&lt;repeat command&gt;|&lt;primitive command&gt;<br />
&nbsp;&lt;repeat command&gt;::=repeat&lt;number&gt;&lt;command list&gt;<br />
&nbsp;&lt;primitive command&gt;::=go|right|left<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Node.java 树状剖析中"节点"的类<br />
&nbsp;|--ProgramNode.java 对应&lt;program&gt;的类<br />
&nbsp;|--CommandListNode.java 对应&lt;command list&gt;的类<br />
&nbsp;|--CommandNode.java 对应&lt;command&gt;的类<br />
&nbsp;|--RepeatCommandNode.java 对应&lt;repeat command&gt;的类<br />
&nbsp;|--PrimitiveCommandNode.java 对应&lt;primitive command&gt;的类<br />
&nbsp;|--Context.java 表示语法解析之前后关系的类<br />
&nbsp;|--ParseException.java 语法解析中的例外类<br />
&nbsp;步骤:确定迷你语言的语法-&gt;建立语法解析类(Context.java,使用java.util.StringTokenizer类)-&gt;建立解析异常类(ParseException.java)-&gt;建立语法节点抽象类(Node.java,定义parse解析方法)-&gt;建立各语法节点对应的语法类(ProgramNode.java,CommandListNode.java,CommandNode.java,RepeatCommandNode.java,PrimitiveCommand.java,继承语法节点Node.java类)</p>
<p>4.Iterator-迭代器<br />
&nbsp;Iterator Pattern 是指依序遍历并处理多个数字或变量.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Aggregate.java 表示已聚合的类<br />
&nbsp;|--Iterator.java 执行递增\遍历的接口<br />
&nbsp;|--Book.java 表示书籍的类<br />
&nbsp;|--BookShelf.java 表示书架的类<br />
&nbsp;|--BookShelfIterator.java 扫描书架的类<br />
&nbsp;步骤:定义聚合接口(Aggregate.java)-&gt;定义遍历接口(Iterator.java)-&gt;建立具体的遍历对象类(Book.java)-&gt;建立具体的聚合类(BookShelf.java,实现聚合接口)-&gt;建立具体的遍历类(BookShelfIterator.java,实现遍历接口)</p>
<p>5.Mediator(中介者)-只要面对一个顾问<br />
&nbsp;每个成员都只对顾问提出报告,也只有顾问会发出指示给各个成员;成员们彼此也不会去探问目前状况如何,或乱发指示给其他成员.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Mediator.java 决定"顾问"接口(API)的接口<br />
&nbsp;|--Colleague.java 决定"成员"接口(API)的接口<br />
&nbsp;|--ColleagueButton.java 实现Colleagues接口.表示按键的类<br />
&nbsp;|--ColleagueTextField.java 实现Colleagues接口.输入文本的类<br />
&nbsp;|--ColleagueCheckbox.java 实现Colleagues接口.表示选择项目(在此为选择按钮)的类<br />
&nbsp;|--LoginFrame.java 实现Mediator接口.表示登录对话框的类<br />
&nbsp;步骤:定义顾问接口(Mediator.java)-&gt;定义成员接口(Colleague.java)-&gt;建立具体的成员类(ColleagueButton.java,ColleagueTextField.java,ColleagueCheckbox.java,实现成员接口)-&gt;建立具体的顾问类(LoginFrame.java,实现顾问接口)</p>
<p>6.Memento(备忘录)-存储状态<br />
&nbsp;Memento Pattern 会把某个时间点的对象实例状态记录存储起来,等到以后再让对象实例复原到当时的状态.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 进行游戏的类.先把Memento的对象实例存储起来,如有必要时再复原Gamer的状态<br />
&nbsp;|--game<br />
&nbsp;&nbsp;&nbsp;&nbsp; |-------Gamer.java 玩游戏的主人翁的类<br />
&nbsp;&nbsp;&nbsp;&nbsp; |-------Memento.java 表示Gamer状态的类.产生Memento的对象实例<br />
&nbsp;步骤:建立需要存储状态的类(Gamer.java)-&gt;建立状态类(Memento.java,状态类与需要存储状态的类Gamer.java应具有相同的必要字段)</p>
<p>7.Observer(观察者)-通知状态变化<br />
&nbsp;当被Observer Pattern 列入观察名单的状态发生变化,就会通知观察者.在写一些跟状态变化有关的处理时,Observer Pattern是很好用的工具.<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Observer.java 表示观察者的接口<br />
&nbsp;|--NumberGenerator.java 表示产生数值对象的抽象类<br />
&nbsp;|--RandomNumberGenerator.java 产生随机数的类<br />
&nbsp;|--DigitObserver.java 以数字表示数值的类<br />
&nbsp;|--GraphObserver.java 以简易长条图表示数值的类<br />
&nbsp;步骤:定义观察者接口(Observer.java)-&gt;建立被观察的类(NumberGenerator.java,RandomNumberGenerator.java,定义观察者结合字段将观察者存储起来)-&gt;建立具体的观察者类(DigitObserver.java,GraphObserver.java,实现观察者接口)</p>
<p>8.State(状态)-以类表示状态<br />
&nbsp;以类来表示状态之后，只要切换类就能表现&#8220;状态变化&#8221;，而且在必须新增其他状态时，也很清楚该编写哪个部分。<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--State.java 表示金库状态的接口<br />
&nbsp;|--DayState.java 实现State的类。表示白天的状态<br />
&nbsp;|--NightState.java 实现State的类。表示夜间的状态<br />
&nbsp;|--Context.java 管理金库的状态变化，跟保安中心联络的接口<br />
&nbsp;|--SafeFrame.java 实现Context的类。含有按钮、画面显示等的用户接口<br />
&nbsp;步骤:定义状态接口(State.java,将使用State Pattern之前各种行为方法抽象出来)-&gt;建立具体的状态类(DayState.java,NightState.java,实现状态接口,状态变化的具体动作在这里执行)-&gt;定义管理状态变化的接口(Context.java,规定状态变化及相关的调用方法)-&gt;建立状态管理类(SafeFrame.java,实现状态管理接口)</p>
<p>9.Strategy(策略)-把算法整个换掉<br />
&nbsp;在Strategy Pattern之下，可以更换实现算法的部分而且不留痕迹。切换整个算法，简化改为采用其他方法来解决同样的问题。<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Hand.java 表示猜拳&#8220;手势&#8221;的类<br />
&nbsp;|--Strategy.java 表示猜拳&#8220;战略&#8221;的接口<br />
&nbsp;|--WinningStrategy.java 表示猜赢之后继续出同样招式的战略的类<br />
&nbsp;|--ProbStrategy.java 表示从上一次出的招式，以概率分配方式求出下一个招式机率的类<br />
&nbsp;|--Player.java 表示玩猜拳的游戏者的类<br />
&nbsp;步骤:定义策略接口(Strategy.java)-&gt;建立具体的策略类(WinningStrategy.java,ProbStrategy.java,实现策略接口)-&gt;建立使用策略的类(Player.java,定义策略字段，以便使用切换策略)-&gt;建立其它类(Main.java,Hand.java)</p>
<p>10.Template Method(模板方法)-实际处理交给子类<br />
&nbsp;在父类指定处理大纲、在子类规定具体内容的Design Pattern就称为Template Method Pattern<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--AbstractDisplay.java 只实现方法display的抽象类<br />
&nbsp;|--CharDisplay.java 实现方法open,print,close的类<br />
&nbsp;|--StringDisplay.java 实现方法open,print,close的类<br />
&nbsp;步骤:定义模板类(AbstractDisplay.java,实现dispaly方法，即制作了模板)-&gt;建立具体内容类(CharDisplay.java,StringDisplay.java,继承模板类，实现模板类没有实现的方法)</p>
<p>11.Visitor(访问者)-在结构中穿梭还同时做事<br />
&nbsp;Visitor Pattern 把数据结构和处理两者分开，另外写一个表示在数据结构内穿梭来去的主体&#8220;访客&#8221;的类，然后把处理交给这个类来进行。如此一来，如果想追加新的处理行为时，只要再建立一个新的&#8220;访客&#8221;即可。而在数据结构这边，也只要能接受来敲门的&#8220;访客&#8221;就能完成动作。<br />
&nbsp;在父类指定处理大纲、在子类规定具体内容的Design Pattern就称为Template Method Pattern<br />
&nbsp;程序示例:<br />
&nbsp;|--Main.java 测试用的类<br />
&nbsp;|--Visitor.java 表示访问文件或目录的访客的抽象类<br />
&nbsp;|--Acceptor.java 表示接受Visitor类的对象实例的数据结构的接口<br />
&nbsp;|--ListVisitor.java Visitor类的子类，打印文件和目录信息的类<br />
&nbsp;|--Entry.java File和Directory的父类的抽象类(实现Acceptor接口)<br />
&nbsp;|--File.java 表示文件的类<br />
&nbsp;|--Directory.java 表示目录的类<br />
&nbsp;|--FileTreatmentException.java 发生在对File进行add时的例外类<br />
&nbsp;步骤:定义访问者的抽象类(Visitor.java,定义访问方法)-&gt;定义受访者接口(Acceptor.java,定义接受访问的方法)-&gt;建立具体的访问者类(ListVisitor.java,继承访问者抽象类，实现访问方法)-&gt;建立具体的受访者类(Entry.java,File.java,Directory.java,实现受访者接口)-&gt;编写异常类(FileTreatmentException.java)</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/pian_yun/archive/2007/09/14/1784981.aspx</p><img src ="http://www.blogjava.net/dongwq/aggbug/322156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-05-28 16:24 <a href="http://www.blogjava.net/dongwq/archive/2010/05/28/322156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>直接在html中使用xml导入数据</title><link>http://www.blogjava.net/dongwq/archive/2010/05/27/321985.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Thu, 27 May 2010 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/05/27/321985.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/321985.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/05/27/321985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/321985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/321985.html</trackback:ping><description><![CDATA[直接在html中使用xml导入数据<br />
<br />
&lt;xml id="cdcat" src="cd_catalog.xml"&gt;&lt;/xml&gt;<br />
&lt;table border="1" datasrc<span style="color: red">="#</span>cdcat"&gt;<br />
&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;span datafld="ARTIST"&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;span datafld="TITLE"&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td datafld="price"&gt; &lt;/td&gt;<br />
&nbsp;&lt;td&gt;&lt;span datafld="year"&gt;&lt;/span&gt;&lt;/td&gt;<br />
&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<br />
<p><br />
注意可以引入xml字段的元素有&nbsp;限：<br />
例如，与DIV元素绑定的代码如下：<br />
<font style="font-size: 0px; color: #fff">&nbsp;d: U) f1 y</font><br />
　　注意：并非所有的HTML元素都能与XML数据岛绑定。目前，支持这种DSO绑定机制的元素如下：<font style="font-size: 0px; color: #fff">. H2 V- _% j! E/ {4 i</font><br />
<font style="font-size: 0px; color: #fff">$ \( \$ l" b+ H( M&amp; Y</font><br />
　　A、APPLET、BUTTON、DIV、FRAME、IFRAME、 IMG、INPUT (此处类型是：CHECKBOX、HIDDEN、 LABEL、PASSWORD、RADIO和TEXT)、LABEL、 MARQUEE、SELECT、SPAN、TABLE和 TEXTAREA。</p><img src ="http://www.blogjava.net/dongwq/aggbug/321985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-05-27 10:24 <a href="http://www.blogjava.net/dongwq/archive/2010/05/27/321985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>H.264中的NAL技术</title><link>http://www.blogjava.net/dongwq/archive/2010/05/06/320224.html</link><dc:creator>小强摩羯座</dc:creator><author>小强摩羯座</author><pubDate>Thu, 06 May 2010 09:58:00 GMT</pubDate><guid>http://www.blogjava.net/dongwq/archive/2010/05/06/320224.html</guid><wfw:comment>http://www.blogjava.net/dongwq/comments/320224.html</wfw:comment><comments>http://www.blogjava.net/dongwq/archive/2010/05/06/320224.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongwq/comments/commentRss/320224.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongwq/services/trackbacks/320224.html</trackback:ping><description><![CDATA[<p>H.264中的NAL技术<br />
<br />
NAL技术</p>
<p>1.NAL概述<br />
NAL全称Network Abstract Layer, 即网络抽象层。<br />
在H.264/AVC视频编码标准中，整个系统框架被分为了两个层面：视频编码层面（VCL）和网络抽象层面（NAL）。其中，前者负责有效表示视频数据的内容，而后者则负责格式化数据并提供头信息，以保证数据适合各种信道和存储介质上的传输。<br />
现实中的传输系统是多样化的，其可靠性，服务质量，封装方式等特征各不相同，NAL这一概念的提出提供了一个视频编码器和传输系统的友好接口，使得编码后的视频数据能够有效地在各种不同的网络环境中传输。</p>
<p>2.NAL单元<br />
NAL单元是NAL的基本语法结构，它包含一个字节的头信息和一系列来自VCL的称为原始字节序列载荷（RBSP）的字节流。头信息中包含着一个可否丢弃的指示标记，标识着该NAL单元的丢弃能否引起错误扩散，一般，如果NAL单元中的信息不用于构建参考图像，则认为可以将其丢弃；最后包含的是NAL单元的类型信息，暗示着其内含有效载荷的内容。<br />
送到解码器端的NAL单元必须遵守严格的顺序，如果应用程序接收到的NAL单元处于乱序，则必须提供一种恢复其正确顺序的方法。</p>
<p>3.NAL实现编解码器与传输网络的结合<br />
NAL提供了一个编解码器与传输网络的通用接口，而对于不同的网络环境，具体的实现方案是不同的。对于基于流的传输系统如H.320、MPEG等，需要按照解码顺序组织NAL单元，并为每个NAL单元增加若干比特字节对齐的前缀以形成字节流；对于RTP/UDP/IP系统，则可以直接将编码器输出的NAL单元作为RTP的有效载荷；而对于同时提供多个逻辑信道的传输系统，我们甚至可以根据重要性将不同类型的NAL单元在不同服务质量的信道中传输[2]。</p>
<p>4.结论<br />
为了实现编解码器良好的网络适应性，需要做两方面的工作：第一、在Codec中将NAL这一技术完整而有效的实现；第二、在遵循H.264/AVC NAL规范的前提下设计针对不同网络的最佳传输方案。如果实现了以上两个目标，所实现的就不仅仅是一种视频编解码技术，而是一套适用范围很广的多媒体传输方案，该方案适用于如视频会议，数据存储，电视广播，流媒体，无线通信，远程监控等多种领域。</p>
<p>NALU类型</p>
<p>标识NAL单元中的RBSP数据类型，其中，nal_unit_type为1， 2， 3， 4， 5及12的NAL单元称为VCL的NAL单元，其他类型的NAL单元为非VCL的NAL单元。</p>
<p>0：未规定<br />
1：非IDR图像中不采用数据划分的片段<br />
2：非IDR图像中A类数据划分片段<br />
3：非IDR图像中B类数据划分片段<br />
4：非IDR图像中C类数据划分片段<br />
5：IDR图像的片段<br />
6：补充增强信息 (SEI)<br />
7：序列参数集<br />
8：图像参数集<br />
9：分割符<br />
10：序列结束符<br />
11：流结束符<br />
12：填充数据<br />
13 &#8211; 23：保留<br />
24 &#8211; 31：未规定</p>
<p>NALU的顺序要求</p>
<p>H.264/AVC标准对送到解码器的NAL单元顺序是有严格要求的，如果NAL单元的顺序是混乱的，必须将其重新依照规范组织后送入解码器，否则解码器不能够正确解码。</p>
<p>1.序列参数集NAL单元必须在传送所有以此参数集为参考的其他NAL单元之前传送，不过允许这些NAL单元中间出现重复的序列参数集NAL单元。所谓重复的详细解释为：序列参数集NAL单元都有其专门的标识，如果两个序列参数集NAL单元的标识相同，就可以认为后一个只不过是前一个的拷贝，而非新的序列参数集。<br />
2.图像参数集NAL单元必须在所有以此参数集为参考的其他NAL单元之先，不过允许这些NAL单元中间出现重复的图像参数集NAL单元，这一点与上述的序列参数集NAL单元是相同的。<br />
3.不同基本编码图像中的片段（slice）单元和数据划分片段（data partition）单元在顺序上不可以相互交叉，即不允许属于某一基本编码图像的一系列片段（slice）单元和数据划分片段（data partition）单元中忽然出现另一个基本编码图像的片段（slice）单元片段和数据划分片段（data partition）单元。<br />
4.参考图像的影响：如果一幅图像以另一幅图像为参考，则属于前者的所有片段（slice）单元和数据划分片段（data partition）单元必须在属于后者的片段和数据划分片段之后，无论是基本编码图像还是冗余编码图像都必须遵守这个规则<br />
5.基本编码图像的所有片段（slice）单元和数据划分片段（data partition）单元必须在属于相应冗余编码图像的片段（slice）单元和数据划分片段（data partition）单元之前。<br />
6.如果数据流中出现了连续的无参考基本编码图像，则图像序号小的在前面。<br />
7.如果arbitrary_slice_order_allowed_flag置为1，一个基本编码图像中的片段（slice）单元和数据划分片段（data partition）单元的顺序是任意的，如果arbitrary_slice_order_allowed_flag置为零，则要按照片段中第一个宏块的位置来确定片段的顺序，若使用数据划分，则A类数据划分片段在B类数据划分片段之前，B类数据划分片段在C类数据划分片段之前，而且对应不同片段的数据划分片段不能相互交叉，也不能与没有数据划分的片段相互交叉。<br />
8.如果存在SEI（补充增强信息） 单元的话，它必须在它所对应的基本编码图像的片段（slice）单元和数据划分片段（data partition）单元之前，并同时必须紧接在上一个基本编码图像的所有片段（slice）单元和数据划分片段（data partition）单元后边。假如SEI属于多个基本编码图像，其顺序仅以第一个基本编码图像为参照。<br />
9.如果存在图像分割符的话，它必须在所有SEI 单元、基本编码图像的所有片段slice）单元和数据划分片段（data partition）单元之前，并且紧接着上一个基本编码图像那些NAL单元。<br />
10.如果存在序列结束符，且序列结束符后还有图像，则该图像必须是IDR（即时解码器刷新）图像。序列结束符的位置应当在属于这个IDR图像的分割符、SEI 单元等数据之前，且紧接着前面那些图像的NAL单元。如果序列结束符后没有图像了，那么它的就在比特流中所有图像数据之后。<br />
11.流结束符在比特流中的最后。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：file:///D:/新建文件夹/桌面/H_264中的NAL技术%20-%20Bolt%20的专栏%20-%20CSDN博客.htm</p><img src ="http://www.blogjava.net/dongwq/aggbug/320224.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongwq/" target="_blank">小强摩羯座</a> 2010-05-06 17:58 <a href="http://www.blogjava.net/dongwq/archive/2010/05/06/320224.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>