﻿<?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-DZM.528</title><link>http://www.blogjava.net/duanzhimin528/</link><description>Life is a voyage, not a destination.</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 14:28:03 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 14:28:03 GMT</pubDate><ttl>60</ttl><item><title>[转]代理模式 - 静态代理与动态代理</title><link>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343358.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 21 Jan 2011 17:07:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343358.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/343358.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343358.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/343358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/343358.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 动态代理与普通的代理相比较，最大的好处是接口中声明的所有方法都被转移到一个集中的方法中处理（invoke），这样，在接口方法数量比较多的时候，我们可以进行灵活处理，而不需要像静态代理那样每一个方法进行中转。 <br>动态代理类只能代理接口，代理类都需要实现InvocationHandler类，实现invoke方法。该invoke方法就是调用被代理接口的所有方法时需要调用的，该invoke方法返回的值是被代理接口的一个实现类 &nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343358.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/343358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2011-01-22 01:07 <a href="http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中ThreadLocal的设计与使用</title><link>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343357.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 21 Jan 2011 16:48:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343357.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/343357.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/343357.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/343357.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ThreadLocal并不能替代同步机制，两者面向的问题领域不同。同步机制是为了同步多个线程对相同资源的并发访问，是为了多个线程之间进行通信的有效方式；而ThreadLocal是隔离多个线程的数据共享，从根本上就不在多个线程之间共享资源（变量），这样当然不需要对多个线程进行同步了。所以，如果你需要进行多个线程之间进行通信，则使用同步机制；如果需要隔离多个线程之间的共享冲突，可以使用ThreadLocal，这将极大地简化你的程序，使程序更加易读、简洁。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343357.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/343357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2011-01-22 00:48 <a href="http://www.blogjava.net/duanzhimin528/archive/2011/01/22/343357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式解读 - 策略模式</title><link>http://www.blogjava.net/duanzhimin528/archive/2011/01/21/343335.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 21 Jan 2011 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2011/01/21/343335.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/343335.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2011/01/21/343335.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/343335.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/343335.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 继承，可以实现静态代码的复用；组合，可以实现代码的弹性维护；使用组合代替继承，可以使代码更好地适应软件开发完后的需求变化。<br>策略模式的本质：少用继承，多用组合&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2011/01/21/343335.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/343335.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2011-01-21 15:47 <a href="http://www.blogjava.net/duanzhimin528/archive/2011/01/21/343335.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DATE类学习总结(CALENDAR DATE 字符串 相互转换 格式化)</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/12/06/339904.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 06 Dec 2010 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/12/06/339904.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/339904.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/12/06/339904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/339904.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/339904.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: DATE类学习总结(CALENDAR DATE 字符串 相互转换 格式化)&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/12/06/339904.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/339904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-12-06 16:20 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/12/06/339904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tsung安装与使用</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/09/01/330582.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 01 Sep 2010 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/09/01/330582.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/330582.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/09/01/330582.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/330582.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/330582.html</trackback:ping><description><![CDATA[
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;">
				<span class="Apple-style-span" style="font-family: Verdana,Geneva,Arial,Helvetica,sans-serif; font-size: 13px;">Tsung，压力测试的好工具。<br />安装过程：<br />1.获取tsung 的源码。http://tsung.erlang-projects.org/<br />2.安装依赖 erlang(从源码编译 erlang 写的程序) gnuplot perl5(如果想看 report 中的图形，就要装这个)<br />apt-get install erlang erlang-src gnuplot perl5 我用的是Ubuntu 8 OS.<br />3.编译安装<br />./configure<br />make<br />sudo make install<br /><br />安装完成之后的 tsung 运行脚本在 /usr/bin/tsung ，在系统 path 之中，可以直接运行。<br /><br /><p style="margin: 0px 0px 14px;"><strong>设置</strong></p><p style="margin: 0px 0px 14px;">从 /usr/share/doc/tsung/examples 中挑一两个例子拷贝到 ~/.tsung/tsung.xml 作为配置文件。我只需要 http 测试，所以：</p><div><div>cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml</div></div><p style="margin: 0px 0px 14px;">tsung 采用了巧妙的 proxy 方式来“录制”测试脚本。具体来说，就是建立一个本机的 http proxy 默认使用 8090 端口，在配好 firefox 使用 localhost 8090 作为代理之后(推荐 foxyproxy 插件)，所有“流经”这个 proxy 的 http 动作都会被记录下来，测试时可以“回放”这些步骤来产生请求。</p><div><div>tsung rocorder<br />tsung stop_recorder</div></div><p style="margin: 0px 0px 14px;">“录制”完了，会得到一个 ~/.tsung/tsung_recorderXXXXXXXXXX.xml 文件，这就是测试时回回放的脚本。</p><p style="margin: 0px 0px 14px;">将这个脚本加到 tsung.xml 之中</p><div><div>gedit ~/.tsung/tsung.xml</div></div><p style="margin: 0px 0px 14px;">就像这样</p><div><div><span style="color: olive;">&lt;</span><span style="color: gray;">!</span><span style="color: rgb(0, 0, 139);">DOCTYPE</span><span style="color: rgb(0, 0, 139);">tsung</span><span style="color: rgb(0, 0, 139);">SYSTEM</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">/usr/share/tsung/tsung-1.0.dtd</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: gray;"><span class="Apple-converted-space"> </span>[<br /> &lt;!</span><span style="color: rgb(0, 0, 139);">ENTITY</span><span style="color: rgb(0, 0, 139);">mysession1</span><span style="color: rgb(0, 0, 139);">SYSTEM</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br />]&gt;<br />...<br /></span><span style="color: olive;">&lt;</span><span style="color: green;">sessions</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: navy;">&amp;mysession1;</span><span style="color: gray;"><br /></span><span style="color: olive;">&lt;/</span><span style="color: green;">sessions</span><span style="color: olive;">&gt;</span></div></div><p style="margin: 0px 0px 14px;">对配置稍作调整</p><div><div><span style="color: olive;">&lt;</span><span style="color: green;">monitoring</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br />    </span><span style="color: olive;">&lt;</span><span style="color: green;">monitor</span><span style="color: rgb(0, 0, 139);">host</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">localhost</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: rgb(0, 0, 139);">type</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">erlang</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: olive;">&gt;&lt;/</span><span style="color: green;">monitor</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;/</span><span style="color: green;">monitoring</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: rgb(255, 165, 0);">&lt;!-- 需要配置到 localhost 无须密码的 ssh 登录(ssh via rsa_key)，开启了这个配置可以，获得目标机器的 cpu 和 ram 消耗情况 --&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;</span><span style="color: green;">load</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br />  <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;</span><span style="color: green;">arrivalphase</span><span style="color: rgb(0, 0, 139);">phase</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">1</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: rgb(0, 0, 139);">duration</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">1</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: rgb(0, 0, 139);">unit</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">minute</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br />    <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;</span><span style="color: green;">users</span><span style="color: rgb(0, 0, 139);">interarrival</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">2</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: rgb(0, 0, 139);">unit</span><span style="color: gray;">=</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: red;">second</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: olive;">&gt;&lt;/</span><span style="color: green;">users</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br />  <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;/</span><span style="color: green;">arrivalphase</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: olive;">&lt;/</span><span style="color: green;">load</span><span style="color: olive;">&gt;</span><span style="color: gray;"><br /> <span class="Apple-converted-space"> </span></span><span style="color: rgb(255, 165, 0);">&lt;!-- 第1阶段1分钟(你可以自己多搞几个阶段)，其中每2秒新建一个用户，每个用户都会完整执行 session 的测试脚本，最高并发约为 30 个，个人认为这个“逐渐加压”的方法比 ab xxxx 的“突然加压”要慢一些，但更科学一点 --&gt;</span></div></div><p style="margin: 0px 0px 14px;"><strong>运行</strong></p><p style="margin: 0px 0px 14px;">准备好了，加压运行。</p><div><div>tsung start</div></div><p style="margin: 0px 0px 14px;">运行完，在 ~/.tsung/log 目录会生成一个以时间命名的目录，进入这个目录</p><div><div>cd ~/.tsung/log/xxxxx<br />/usr/lib/tsung/bin/tsung_stats.pl （有时可能是 /usr/local/lib/tsung/bin/tsung_stats.pl)<br /></div></div><p style="margin: 0px 0px 14px;">生成 html 的压力测试报告</p><div><div>firefox report.html</div></div>除了 http 以外 tsung 还可以压很多东西，比如：jabber, postgreSQL 还可以写插件来给任何你想要测试的东西加压.</span>
		</span>
<img src ="http://www.blogjava.net/duanzhimin528/aggbug/330582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-09-01 15:23 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/09/01/330582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何从本地计算机向ssh服务器上传文件</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Fri, 30 Jul 2010 02:23:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/327537.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/327537.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/327537.html</trackback:ping><description><![CDATA[<div id="logPanel" class="Content-body" style="margin-top: 8px; margin-bottom: 8px;  overflow-x: hidden; overflow-y: hidden; text-align: left; width: 662px; line-height: 18px; ">
<div align="center" style="margin-top: 5px; margin-bottom: 20px; ">
由于使用ssh，我们无法使用简单的拖拽或者复制粘贴操作对本地计算机和ssh服务器上的文件进行交流。我们需要用到scp命令行。
</div>
<div class="UBBPanel codePanel" style="border-left-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #fcf9ef; ">
<div class="UBBTitle" style="font-weight: bold; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; background-image: url(http://jefftan.cn/blog/skins/Vista/ubbback.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7efd6; background-position: 400px 0px; background-repeat: no-repeat no-repeat; ">程序代码</div>
<div class="UBBContent" style="padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; line-height: 19px; ">scp &lt;本地文件名&gt; &lt;用户名&gt;@&lt;ssh服务器地址&gt;:&lt;上传保存路径即文件名&gt;</div>
</div>
<br />
<br />
举例以说明。如果希望将当前目录下的a.txt文件上传到ssh服务器上test文件夹并改名为b.txt，其中ssh服务器网址为127.0.0.1，用户名admin。代码如下：<br />
<br />
<div class="UBBPanel codePanel" style="border-left-color: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #fcf9ef; ">
<div class="UBBTitle" style="font-weight: bold; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; background-image: url(http://jefftan.cn/blog/skins/Vista/ubbback.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7efd6; background-position: 400px 0px; background-repeat: no-repeat no-repeat; ">程序代码</div>
<div class="UBBContent" style="padding-top: 6px; padding-right: 6px; padding-bottom: 6px; padding-left: 6px; line-height: 19px; ">scp a.txt admin@127.0.0.1:./test/b.txt</div>
</div>
<br />
<br />
<a href="http://jefftan.cn/download" target="_blank" style="color: #444444; ">下载</a>也很简单，只需要将&#8220;本地文件名&#8221;和后面服务器的信息对调即可。&nbsp;</div>

<img src ="http://www.blogjava.net/duanzhimin528/aggbug/327537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-30 10:23 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/30/327537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库为什么要添加连接池</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/26/327152.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 26 Jul 2010 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/26/327152.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/327152.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/26/327152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/327152.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/327152.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 到此，jdbc连接mysql数据的工作已经完成了，但是这里我突然想出了一个问题：为什么所有的数据在大负载的情况下都要用连接池？&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/07/26/327152.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/327152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-26 16:34 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/26/327152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 小例子：如何使用 Enum</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/19/326576.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Mon, 19 Jul 2010 14:51:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/19/326576.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/326576.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/19/326576.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/326576.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/326576.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Java 在 1.5 以前，常量是个头疼的问题。因为一些参数只能取那么几个值，而从参数类型上又看不出来有哪些值可以取。从 1.5 开始 Java 引进了 Enum 枚举类型，并根据 Java 自身的特点将其进行了强化。实际上现在所有的常量都可以通过 Enum 来定义了。下面是一个例子，演示了 Enum 的基本用法，以及如何向 Enum 类型加入自定义属性。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/07/19/326576.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/326576.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-19 22:51 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/19/326576.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openfire3.6.3插件开发方法</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326146.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 14 Jul 2010 14:53:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326146.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/326146.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/326146.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/326146.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: openfire3.6.3插件开发方法说明： 作用:初始化时在控制台打印测试消息。 开发环境：winxp/myeclipse6.5/jdk1.5&1.6/mysql5.0/openfire3.6.3 QQ群：28588322 (openfire专题研究小组)   开发步骤： 1. 布署openfire3.6.3源码（请参考openfire3.6.3导入ec...&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326146.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/326146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-14 22:53 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个项目看java TCP/IP Socket编程(1.3版)[转]</title><link>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326140.html</link><dc:creator>DZM.528</dc:creator><author>DZM.528</author><pubDate>Wed, 14 Jul 2010 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326140.html</guid><wfw:comment>http://www.blogjava.net/duanzhimin528/comments/326140.html</wfw:comment><comments>http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/duanzhimin528/comments/commentRss/326140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/duanzhimin528/services/trackbacks/326140.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Socket 是程序与网络间的一种接口，大部分网络应用程序都是点对点的，所谓点就是服务器端和客户端所执行的程序。Socket是用来接收和传送分组的一个端点。 <br>java的Socket编程要用到java.net包，最常用的是net包下的6个类：InetAddress(互联网协议 (IP) 地址)类，Socket(套接字)类，ServerSocket(套接字服务器)类，DatagramSocket(发送和接收数据报包的套接字)类，DatagramPacket(数据报包)类，MulticastSocket(多播数据报套接字类用于发送和接收 IP 多播包)类，其中InetAddress、Socket、ServerSocket类是属于TCP面向连接协议，DatagramSocket、DatagramPacket和MulticastSocket类则属于UDP非连接协议的传送类。&nbsp;&nbsp;<a href='http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326140.html'>阅读全文</a><img src ="http://www.blogjava.net/duanzhimin528/aggbug/326140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/duanzhimin528/" target="_blank">DZM.528</a> 2010-07-14 22:10 <a href="http://www.blogjava.net/duanzhimin528/archive/2010/07/14/326140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>