﻿<?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/colorfire/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:10:51 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:10:51 GMT</pubDate><ttl>60</ttl><item><title>利用反射打印测试JavaBean</title><link>http://www.blogjava.net/colorfire/archive/2011/10/12/361068.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Wed, 12 Oct 2011 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/10/12/361068.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/361068.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/10/12/361068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/361068.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/361068.html</trackback:ping><description><![CDATA[/**<br />&nbsp; * 测试方法<br />&nbsp; * <br />&nbsp; * @param obj<br />&nbsp; * @return<br />&nbsp; */<br />&nbsp;public static StringBuffer testPOJO(Object obj) {<br />&nbsp;&nbsp;Class cls = obj.getClass();<br />&nbsp;&nbsp;Field[] fields = cls.getDeclaredFields();<br />&nbsp;&nbsp;StringBuffer resultBuf = new StringBuffer();<br />&nbsp;&nbsp;try {<br />&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; fields.length; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;String fieldName = fields[i].getName();<br />&nbsp;&nbsp;&nbsp;&nbsp;Class fieldType = fields[i].getType();<br />&nbsp;&nbsp;&nbsp;&nbsp;Method method;<br />&nbsp;&nbsp;&nbsp;&nbsp;if (fieldType.equals(boolean.class)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method = cls.getMethod("is" + genMethodName(fieldName));<br />&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method = cls.getMethod("get" + genMethodName(fieldName));<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Object res;<br />&nbsp;&nbsp;&nbsp;&nbsp;if ((res = method.invoke(obj)) != null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String result = res.toString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultBuf.append("[" + fieldName + "] = " + result + "\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultBuf.append("[" + fieldName + "] = NULL \n");<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;} catch (Exception e) {<br />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return resultBuf;<br />&nbsp;}<br />&nbsp;<br />&nbsp;public static String genMethodName(String fieldName) {<br />&nbsp;&nbsp;String firstWord = fieldName.substring(0, 1);<br />&nbsp;&nbsp;String others = fieldName.substring(1, fieldName.length());<br />&nbsp;&nbsp;return firstWord.toUpperCase() + others;<br />&nbsp;}<img src ="http://www.blogjava.net/colorfire/aggbug/361068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-10-12 16:34 <a href="http://www.blogjava.net/colorfire/archive/2011/10/12/361068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转 淘宝2011.9.21校园招聘会笔试题</title><link>http://www.blogjava.net/colorfire/archive/2011/10/10/360355.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Mon, 10 Oct 2011 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/10/10/360355.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/360355.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/10/10/360355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/360355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/360355.html</trackback:ping><description><![CDATA[<font size="2">原链接 <a href="http://blog.csdn.net/hackbuteer1/article/details/6823329">http://blog.csdn.net/hackbuteer1/article/details/6823329</a><br /><br />一、单选题<br />1、我们有很多瓶无色的液体，其中有一瓶是毒药，其它都是蒸馏水，实验的小白鼠喝了以后会在5分钟后死亡，而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠，请问一下，我们用这五只小白鼠，5分钟的时间，能够检测多少瓶液体的成分（C）<br />A、5瓶&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; B、6瓶&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<strong><span style="color: #ff0000">C、31瓶</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、32瓶<br /><br />2、若某链表最常用的操作是在最后一个结点之后插入一个结点和删除最后一个结点，则采用（）存储方式最节省时间？<br />A、单链表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、带头结点的非循环双链表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="color: #ff0000">C、带头节点的双循环链表</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、循环链表<br /><br />3、如果需要对磁盘上的1000W条记录构建索引，你认为下面哪种数据结构来存储索引最合适？（）<br />A、Hash Table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、AVL-Tree&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<strong><span style="color: #ff0000">C、B-Tree</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、List<br /><br />4、可用来检测一个web服务器是否正常工作的命令是（）<br /></font>
<p><span style="font-size: 13px">A、ping&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、tracert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: #ff0000">C、telnet</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、ftp</span></p>
<p><span style="font-size: 13px"><span style="font-size: 13px">只有C可以测试Web主机的网页服务器是否工作正常，假设该服务器的网页服务器使用的是默认端口，则可以使用命令telnet hostname 80 来测试其是否工作。</span></span><br /></p><span style="font-size: 13px">5、下面哪个操作是Windows独有的I/O技术（）<br />A、Select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、Poll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="color: #ff0000">C、IOCP</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、Epoll<br /><br />6、IPV6地址包含了（）位<br />A、16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C、64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: #ff0000">D、128<br /></span></strong><br />7、数据库里建索引常用的数据结构是（）<br />A、链表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、队列&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<strong><span style="color: #ff0000">C、树</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D、哈希表<br /><br />8、在公司局域网上ping www.taobao.com没有涉及到的网络协议是（）<br /></span>
<p><span style="font-size: 13px">A、ARP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B、DNS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: #ff0000"> C、TCP</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;D、ICMP</span></p>
<p sizset="31" sizcache="1"><span style="font-size: 13px" sizset="31" sizcache="1"><span style="font-size: 13px" sizset="31" sizcache="1">DNS是将域名<a href="http://www.taobao.com/"><font color="#336699">www.taobao.com</font></a>映射成主机的IP地址，ARP是将IP地址映射成物理地址，ICMP是报文控制协议，由路由器发送给执行ping命令的主机，而一个ping命令并不会建立一条TCP连接，故没有涉及TCP协议。</span></span><br /></p><span style="font-size: 13px">二、填空题<br />1、http属于（应用层）协议，ICMP属于（网络层）协议。<br />2、深度为k的完全二叉树至少有<span style="color: #3333ff">（2^(k-1)）</span>个结点，至多有（<span style="color: #3333ff">2^k-1</span>）个结点。<br />3、字节为6位的二进制有符号整数，其最小值是（-32）。<br /></span>
<p><span style="font-size: 13px">4、设有28盏灯，拟公用一个电源，则至少需有4插头的接线板数（<span style="color: #3333ff">9</span>）个。</span></p>
<p><span style="font-size: 13px"><span style="font-size: 13px">第一个板4个口，此后每增加1个板会消耗1个原来的口，总的只增加3个口，故N个接线板能提供 1+3*N个电源口</span></span>。<br /></p><span style="font-size: 13px">三、综合题<br />1、有一颗结构如下的树，对其做镜像反转后如下，请写出能实现该功能的代码。注意：请勿对该树做任何假设，它不一定是平衡树，也不一定有序。<br />&nbsp; 1 1<br />&nbsp; / | \ / | \<br />&nbsp; 2 3 4 4 3 2<br />&nbsp; /|\ /\ | | / \ / | \<br />&nbsp; 6 5 7 8 9 10 10 9 8 7 5 6<br /></span>
<p><span style="font-size: 13px">&nbsp;<span style="font-size: 13px">&nbsp;答：以孩子、兄弟的存储结构来存储这棵树，使之成为一颗二叉树，然后对二叉树进行链表的转换。</span></span></p>
<p>&nbsp;</p>
<div class="dp-highlighter bg_cpp" sizset="32" sizcache="1">
<div class="bar" sizset="32" sizcache="1">
<div class="tools" sizset="32" sizcache="1"><a class="ViewSource" title="view plain" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">view plain</a><a class="CopyToClipboard" title="copy to clipboard" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">copy to clipboard</a><a class="PrintSource" title="print" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">print</a><a class="About" title="?" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">?</a></div></div>
<ol class="dp-cpp"><li class="alt"><span class="keyword">typedef</span><span>&nbsp;</span><span class="keyword">struct</span><span>&nbsp;TreeNode&nbsp;&nbsp;</span></li><li><span>{&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="datatypes"><strong><font color="#2e8b57">int</font></strong></span><span>&nbsp;data;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">struct</span><span>&nbsp;TreeNode&nbsp;*firstchild;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">struct</span><span>&nbsp;TreeNode&nbsp;*nextsibling;&nbsp;&nbsp;</span></span></li><li><span>}TreeNode,*Tree;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span></span><span class="keyword">void</span><span>&nbsp;MirrorTree(Tree&nbsp;root)&nbsp;&nbsp;</span></span></li><li class="alt"><span>{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(!root)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(root-&gt;firstchild)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tree&nbsp;p=root-&gt;firstchild;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tree&nbsp;cur=p-&gt;nextsibling;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;nextsibling=NULL;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>(cur)&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tree&nbsp;curnext=cur-&gt;nextsibling;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur-&gt;nextsibling=p;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>(p-&gt;firstchild)&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MirrorTree(p);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p=cur;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur=curnext;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root-&gt;firstchild=p;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span></span><span class="datatypes"><strong><font color="#2e8b57">int</font></strong></span><span>&nbsp;main(</span><span class="keyword">void</span><span>)&nbsp;&nbsp;</span></span></li><li class="alt"><span>{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;TreeNode&nbsp;*root=(TreeNode&nbsp;*)malloc(</span><span class="keyword">sizeof</span><span>(TreeNode));&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;Init();&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;MirrorTree(root);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;OutPut();&nbsp;&nbsp;</span></li><li><span>}&nbsp;&nbsp;</span></li></ol></div><textarea style="display: none" class="cpp" readOnly name="code">typedef struct TreeNode
{
	int data;
	struct TreeNode *firstchild;
	struct TreeNode *nextsibling;
}TreeNode,*Tree;

void MirrorTree(Tree root)
{
	if(!root)
		return ;
	if(root-&gt;firstchild)
	{
		Tree p=root-&gt;firstchild;
		Tree cur=p-&gt;nextsibling;
		p-&gt;nextsibling=NULL;
		while(cur)
		{
			Tree curnext=cur-&gt;nextsibling;
			cur-&gt;nextsibling=p;
			if(p-&gt;firstchild)
				MirrorTree(p);
			p=cur;
			cur=curnext;
		}
		root-&gt;firstchild=p;
	}
}

int main(void)
{
	TreeNode *root=(TreeNode *)malloc(sizeof(TreeNode));
	Init();
	MirrorTree(root);
	OutPut();
}</textarea>2、假设某个网站每天有超过10亿次的页面访问量，出于安全考虑，网站会记录访问客户端访问的ip地址和对应的时间，如果现在已经记录了1000亿条数据，想统计一个指定时间段内的区域ip地址访问量，那么这些数据应该按照何种方式来组织，才能尽快满足上面的统计需求呢，设计完方案后，并指出该方案的优缺点，比如在什么情况下，可能会非常慢？<br />
<p>&nbsp;</p><span style="font-size: 13px">答：用B+树来组织，非叶子节点存储（某个时间点，页面访问量），叶子节点是访问的IP地址。这个方案的优点是查询某个时间段内的IP访问量很快，但是要统计某个IP的访问次数或是上次访问时间就不得不遍历整个树的叶子节点。</span><span style="font-size: 13px">答：</span> 
<p><span style="font-size: 13px">或者可以建立二级索引，分别是时间和地点来建立索引。</span></p>四、附加题<br />1、写出C语言的地址对齐宏ALIGN（PALGNBYTES），其中P是要对齐的地址，ALIGNBYTES是要对齐的字节数（2的N次方），比如说：ALIGN(13,16)=16<br />
<div class="dp-highlighter bg_cpp" sizset="36" sizcache="1">
<div class="bar" sizset="36" sizcache="1">
<div class="tools" sizset="36" sizcache="1"><a class="ViewSource" title="view plain" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">view plain</a><a class="CopyToClipboard" title="copy to clipboard" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">copy to clipboard</a><a class="PrintSource" title="print" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">print</a><a class="About" title="?" href="http://blog.csdn.net/hackbuteer1/article/details/6823329#">?</a></div></div>
<ol class="dp-cpp"><li class="alt"><span>ALIGN(P,ALIGNBYTES)&nbsp;(&nbsp;(</span><span class="keyword">void</span><span>*)(&nbsp;((unsigned&nbsp;</span><span class="datatypes"><strong><font color="#2e8b57">long</font></strong></span><span>)P+ALIGNBYTES-1)&amp;~(ALIGNBYTES-1)&nbsp;)&nbsp;)&nbsp;&nbsp;</span></li></ol></div><textarea style="display: none" class="cpp" readOnly name="code">ALIGN(P,ALIGNBYTES) ( (void*)( ((unsigned long)P+ALIGNBYTES-1)&amp;~(ALIGNBYTES-1) ) )

</textarea>2、在高性能服务器的代码中经常会看到类似这样的代码：<br />typedef union<br />{<br />&nbsp; erts_smp_rwmtx_t rwmtx;<br />&nbsp; byte cache_line_align_[ERTS_ALC_CACHE_LINE_ALIGN_SIZE(sizeof(erts_smp_rwmtx_t))];<br />}erts_meta_main_tab_lock_t;<br /><br />erts_meta_main_tab_lock_t main_tab_lock[16];<br /><br />请问其中用来填充的cache_line_align的作用是？<br /><br />3、在现代web服务系统的设计中，为了减轻源站的压力，通常采用分布式缓存技术，其原理如下图所示，前端的分配器将针对不同内容的用户请求分配给不同的缓存服务器向用户提供服务。<br />&nbsp; 分配器<br />&nbsp; / | \<br />&nbsp; 缓存 缓存 ...缓存<br />&nbsp; 服务器1 服务器2 ...服务器n<br /><br />1）请问如何设置分配策略，可以保证充分利用每个缓存服务器的存储空间（每个内容只在一个缓存服务器有副本）<br /><br />2）当部分缓存服务器故障，或是因为系统扩容，导致缓存服务器的数量动态减少或增加时，你的分配策略是否可以保证较小的缓存文件重分配的开销，如果不能，如何改进？<br /><br />3）当各个缓存服务器的存储空间存在差异时（如有4个缓存服务器，存储空间比为4：9：15：7），如何改进你的策略，按照如上的比例将内容调度到缓存服务器？<br /><img src ="http://www.blogjava.net/colorfire/aggbug/360355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-10-10 10:19 <a href="http://www.blogjava.net/colorfire/archive/2011/10/10/360355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>safari 地址栏中url两遍</title><link>http://www.blogjava.net/colorfire/archive/2011/05/18/350528.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Wed, 18 May 2011 14:36:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/05/18/350528.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/350528.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/05/18/350528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/350528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/350528.html</trackback:ping><description><![CDATA[环境：mac os 10.6.6，safari 5.0.5<br />
<br />
现象：<br />
在地址栏中输入url提交后，地址栏中地址竟然又被复制一次。
e.g 输入http://www.baidu.com/回车提交变为http://www.baidu.comwww.baidu.com，而以数字结尾的例如http://sparklet.net/?p=207则访问正常。<br />
<br />
问题解决：<br />
该问题实际是由于代理导致，之前使用web代理上网，后来web服务器我给关掉了，但代理忘记改回来，结果导致这种奇怪现象。不知道是不是safari的bug。<br />
总结：blogjava的文档输入太难用了，分类也不方便。<img src ="http://www.blogjava.net/colorfire/aggbug/350528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-05-18 22:36 <a href="http://www.blogjava.net/colorfire/archive/2011/05/18/350528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>zz码字-电信行业体制内</title><link>http://www.blogjava.net/colorfire/archive/2011/04/18/348502.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Mon, 18 Apr 2011 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/04/18/348502.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/348502.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/04/18/348502.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/348502.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/348502.html</trackback:ping><description><![CDATA[第一段：回顾历史 <br />
&nbsp;&nbsp; &nbsp; 先说几个例子： <br />
&nbsp;&nbsp; &nbsp; 80年达大家忙着找后门进国企的时候，庆幸找个铁饭碗的时候，全国有几人会想到10年 <br />
后国企就大规模破产； <br />
&nbsp;&nbsp; &nbsp; 90年代大家忙着往北电等外企跑的时候，觉得无比光荣有面子，全国有几人会想到10年 <br />
后北电挂了，华为的收入一骑绝尘； <br />
&nbsp;&nbsp; &nbsp; 90年代末大家觉得运营商特别体面，收入特高的时候，有几人会想到过不了几年有个玩 <br />
意叫全员营销？每年离职的人越来越多？ <br />
&nbsp;&nbsp; &nbsp; 21世纪初大家觉得事业单位还不错的时候，觉得起码还算稳定，全国有几人会想到几年 <br />
后事业单位改制就愈演愈烈？编制逐步取消，退休制度改革，垄断收入逐步减少，市场竞争 <br />
压力逐步加大； <br />
&nbsp;&nbsp; &nbsp; 2010左右大家疯了一般地考公务员，以为肯定必须是个金饭碗，全国有几人会注意到， <br />
很多地方的公务员聘任制已经悄然开始了。 <br />
&nbsp;&nbsp; &nbsp; 很多事情，我们想起来可能都不太可能，但是他曾经发生过——80年代大批人辞去公职 <br />
下海，90年代初我国政府财政濒临破产，公务员的工资是打白条，国务院都在裁员。曾经糖 <br />
烟酒公司比烟草公司高几个档次，曾经粮食局是很多地方政府里为数不多的发得出工资的单 <br />
位。曾经大家觉得去了海关就可以到处捞黑钱，曾经大家觉得运营商是个让人眼红的金饭碗 <br />
&#8230;&#8230;上述这些事情发生转变一般不超过10年 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 中国数百年来的战略眼光第一人，太祖，在1945年的最大的奋斗目标就是能搞个联合政 <br />
府，让tg能参政就心满意足了。这逆天第一人都没想到4年之后他就成为本朝太祖了。所以 <br />
，我们不应该妄加判断未来会一定会怎样怎样，政府一定不会对公务员等体制内动手。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
———————————————————————————————————————— <br />
第二段：以通信业为鉴，看历史变迁对通信业体制内外的影响 <br />
&nbsp;&nbsp; &nbsp; 以史为镜吧，我们看看曾经90年代极为风光的体制内运营商的变迁，在20年前，地方电 <br />
信一般是当地数得上的好地方了，很多公务员也眼馋的地方。20年了，请看变迁情况。 <br />
&nbsp;&nbsp;<br />
1.历史及现状： <br />
&nbsp;&nbsp; &nbsp; 中国的通信业是较早实现对内，对外开放的行业。在最开始，最爽的不是爱立信的员工 <br />
，虽说当时爱立信收入不低，但是跟运营商比也就半斤八两，在地方地位也高，那时候也不 <br />
存在指标问题，都是对方求着办事。 <br />
&nbsp;&nbsp; &nbsp; 在本世纪初，随着市场的进一步开放，竞争不断加剧，固网运营商为对付移动推出小灵 <br />
通，南网通北电信在对手地盘大打固网价格战，员工的收入是一年不如一年，指标是一年高 <br />
过一年，全员营销也是那时候出来的。不过那时候还好，起码收入高于付出。 <br />
&nbsp;&nbsp; &nbsp; 到了近几年，上面下的指标太高，搞的大家只能靠做假指标了（各位运营商同仁都知道 <br />
，不管是市场的还是网络的，假指标已经全面铺开了），至于说收入——欢迎论坛上这几年 <br />
所在运营商没降薪的兄弟姐妹们举手。活多钱少必加班，升职无望加薪没盼，鸡肋的工作天 <br />
天还得做。 <br />
&nbsp;&nbsp; &nbsp; 我们再举一个例子：设计院，运营商的三产，这些都是曾经的银饭碗，现在呢？各个地 <br />
方设计院除了四大院之外还有哪个红火的？收入、工作在当地还能称得上体面吗？ <br />
&nbsp;&nbsp; &nbsp; 与此相对的是，这几年设备商的收入，尤其是一线设备商的收入节节增高，我就不多评 <br />
价了。在06年，我写《通信行业求职宝典》的时候，我提了两个观点——1.看好华为；2.如 <br />
果这两年能进移动抓紧进，再过两年就没必要了。如果合适华为，那时候进华为，就算是在 <br />
国内，20来万一年也该有了。那时候进移动，现在也该是个主管了，好歹不用自己天天去一 <br />
线干指标了。至于说现在过去，那不好说。 <br />
&nbsp;&nbsp;<br />
2. 简要分析: <br />
&nbsp;&nbsp; &nbsp; 最早，通信业的收益主要是依靠垄断地位带来的，跟个人能力无关。幸运的是，当这种 <br />
垄断被打破的时候，正好赶上了通信业高速发展的时候，行业有足够的容量来吸纳各色人等 <br />
，大家可以看到前几年被改革掉的设计院、三产在近几年都没有发生太大的冲突。但是一旦 <br />
当这个行业走下下坡路的时候，体制内的保护如果被打破，从业人员就面临巨大的风险。于 <br />
是大家可以看到近两年地方设计院改行的人越来越多，因为在继续做下去就饿死了，接触过 <br />
的一些副院长级的甚至都开始跳槽了。 <br />
&nbsp;&nbsp; &nbsp; 总体来说，越早被打开的行业，可能最开始会有一阵阵痛，但是后来肯定是幸福的。例 <br />
如运营商的人是幸福的，因为大家所在的企业已经初步脱离了体制内了，运营商的很多技术 <br />
人员技术水平不错，设备商愿意接受，市场人员跳出来去其它公司做市场也不错。我们现在 <br />
已经可以看到，几家运营商内部相互挖墙脚的情况已经慢慢开始了，运营商也开始初步引入 <br />
很多设备商的人。在以前，你能想到去了移动之后跳槽到电信？ <br />
&nbsp;&nbsp; &nbsp;而且更关键的是：运营商的年轻人现在都还有能力，年老的人基本位置都稳定，在这种 <br />
情况运营商逐步脱离体制内，对于大家都是个好事情。想想，万一你40岁的时候，市场竞争 <br />
忽然加剧，你坐惯了20年的办公室，忽然要去搞16个小时的校园促销。。。。。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
3. 看其它事业单位、体制内的行业： <br />
&nbsp;&nbsp; &nbsp;运营商的现状，只是很多体制内的一个缩影，这个缩影在近几年可以用来被很多事业单 <br />
位参考，例如出版社、医院、学校、报社等，在不久的未来，这个缩影也会被很多公务员所 <br />
参考。大家都会走过一段工作性价比降低，减员增效，然后逐步健康化的阶段。 <br />
&nbsp;&nbsp; &nbsp;在这可以举几个例子，有已经发生的，有未来将会发生的。 <br />
出版社、报社： <br />
&nbsp;&nbsp; &nbsp;出版社、报社过去那绝对是个铁饭碗，现在呢？穷的出版社一月发2、3K工资，在市场上 <br />
听不到声音，市场化的出版社有的编辑富的冒油，有人饿的要死，国内的出版行业基本已经 <br />
脱离了体制内。报社就更不用说了，除了一些党报，别的哪家还有体制内的影子?就算党报 <br />
，现在很多地方的党报也已早不如当年的红火了。 <br />
医生： <br />
&nbsp;&nbsp; &nbsp;未来，我们会看到医生的现状会大幅改变，现在的现状是医院基于体制内和体制外游走 <br />
，搞的又国企又市场化，导致底层累死，管理层爽呆，其实就是运营商前两年的缩影。再过 <br />
3、4年，下一轮医疗改革真正开始的时候，我们会看到跳槽、裁员、创业会成为医院的常态 <br />
，有能力的医生收入会大幅提高，出入行的医生也不会像现在这样承担很多变态的任务，但 <br />
是对于服务态度、责任心的要求肯定也会提高很多。 <br />
学校： <br />
&nbsp;&nbsp; &nbsp;再举一个例子，学校，现在的幼儿教育由于早些年政府退出的早，导致现在的幼儿园教 <br />
育发展的比中小学发展的快多了。大家不用光看上幼儿园难、贵，但是对比中小学的僵化程 <br />
度，应该说幼儿教育的质量已经一骑绝尘了，比什么中小学、高校的教育强了好几倍。至于 <br />
说收入，很多地方小学老师的收入可真比不上幼儿园老师的收入。高中教育由于政府不负担 <br />
，很多地方开展的也比初高中教育好多了，当然教师的工作强度肯定也大了很多。 <br />
&nbsp;&nbsp; &nbsp;至于说高校的改革，可能要很久很久，毕竟盖大学太费钱了。。。 <br />
———————————————————————————————————————— <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;第三段：细看运营商、公务员变迁的幕后——剩余价值的分配取决于生产关系 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 我国是一个&#8220;民主集中制&#8221;的体制，这也是我国生产关系的一个特点，民主咱不讨论， <br />
不过集中倒是很常见。权力、资源控制在一小部分企业和人手中，，虽说这两年在改善，但 <br />
是改善的步伐这两年是越来越小。 <br />
&nbsp;&nbsp; &nbsp; 这也造成了一个浮在表面的现象——公务员、央企的部分员工性价比远高于那些不占据 <br />
资源的行业。但这其实只是一个表象，实际上我国的资源、权力不是集中在政府、央企中， <br />
而是集中在某一小群人中。这是一个非常明显的金字塔结构。 <br />
&nbsp;&nbsp; &nbsp; 这种生产关系，是体制内幸福或痛苦的根源。 <br />
&nbsp;&nbsp;<br />
1.行业、企业的兴衰难确定： <br />
&nbsp;&nbsp; &nbsp;某个部委、行业、央企的兴衰甚至只是因为某几个人的争夺，只是因为某一个人的失败 <br />
或者得势，虽然这一个人的背后是一群人乃至百万、千万人的利益，但是他败了大家就败了 <br />
，他赢了大家就赢了。 <br />
&nbsp;&nbsp; &nbsp;这样的例子在中国有很多，已经确定了像糖烟酒公司和烟草局，粮食局和中储粮，联通 <br />
和网通，几大发电集团，不确定的像电监会和电网，工信部和某部委。败了，从上到下所占 <br />
据的权力、资源逐步被剥夺走，胜了，鸡犬升天。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp;运营商最早的改革来自哪？？？？？？？？？？很多年轻的byr都不知道，第一波真正的 <br />
改革来自各个部委对于电信业高额利润的垂涎！原来的邮电总局扛不住这种压力。联通为什 <br />
么叫联通？是因为十几个部委、央企联合成立的，所以叫联合通信，是一批电信圈外的人对 <br />
电信圈蛋糕的逼抢。当时大家也不太会玩游戏规则，哪知道成立个什么银监会之类的，邮电 <br />
总局一直在被动接招，电信业一步步地沦为各类人等洗钱地方。 <br />
&nbsp;&nbsp; &nbsp;还可以举的一个例子是：原联通和网通的合并，这个是个非常具有代表性的案例了，跟 <br />
论坛里很多人的老板的老板甚至直系老板都有关系。如果老板是原联通的，那么整个省里面 <br />
联通的都爽了，如果是原网通的，呵呵，那么网通的自然。。。 <br />
&nbsp;&nbsp; &nbsp;现在电网很红火，那是赶上想分拆的时候遭遇了电力短缺、冰灾、美国大停电等事件（ <br />
NND，冰灾的时候明显体现的是通信业的三家重复建设对于通信的保障作用，非得被人家电 <br />
网说成得一家来做才能保障用电安全），现在又赶上换届，再加上既得利益集团的强大。如 <br />
果有一天，国网的领导保不住外人对于电网的垂涎，最终被拆分，那么电网行业就会重演电 <br />
信业走过的老路。别说啥电网不会被拆分，本地网不适合重复建设，这是胡扯，当年拆分电 <br />
信的时候也这么说，连那么激进的阚凯力老师都说本地网得保留，是门槛。结果现在南方县 <br />
城里面联通、移动的宽带铺的火热朝天。大家的工资也降得本冷到底。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp;记住，上述事情跟你个人，跟你所在团队等无关，只跟你们公司、行业的几个人有关系 <br />
。 <br />
&nbsp;&nbsp;<br />
2.个人前途发展 <br />
&nbsp;&nbsp; &nbsp;体制内的特性决定资源倾斜在上层，因此导致了领导的首要事情是取得他的领导的认可 <br />
，这样才能要到更多的资源。这样自己才有前途。而非体制内，一个市场化的地方，领导要 <br />
考虑的是如何激活员工的活力，让员工努力地为他从客户那获得资源。 <br />
&nbsp;&nbsp; &nbsp;这是体制内领导对待员工和他领导的不同态度的根本原因。这也可以解释，为什么某些 <br />
看似市场化的企业，如IBM等，大家为啥绕着领导转的原因，因为在这些企业，员工的作用 <br />
不是最重要的，最重要的是你的老板能给你批下来什么样的折扣，这导致你这个单子能成还 <br />
是不能成。 <br />
&nbsp;&nbsp; &nbsp;再举个例子，CMCC利润、收入年年增加，员工薪水月月降薪，王建宙宁赠友邦，不予家 <br />
奴。因为家奴影响不了他的升迁，友邦影响他的位置，于是我们看到卓望、12580等一个个 <br />
洗钱工具的诞生，看到全国各地B类员工的离职率都开始持续上升。 <br />
&nbsp;&nbsp; &nbsp;国网的降薪搞了好几年了，员工不同意，有个P用，老大需要搞定的是他老大的意见。很 <br />
可能某次突然降薪只是因为某人看到一篇新闻，随口跟国网老大提起了这事，国网老大就把 <br />
这个P当作谕旨去执行了。 <br />
&nbsp;&nbsp; &nbsp;你在体制内的前途完全寄托在你的领导身上，而你的领导的前途也完全寄托在他的领导 <br />
身上，你是凭借喝酒、干活、拍马屁、文体等哪项能上位，完全取决于你的领导的喜好。当 <br />
然，现在领导选拔看能力的越来越多了。 <br />
&nbsp;&nbsp;<br />
3. 升迁 <br />
&nbsp;&nbsp; &nbsp;上一个可以解释你未来如何升迁。你的大部分工作，依靠的还是上面领导的支持，依靠 <br />
的是上层的资源倾斜。今年能否完成指标，最重要的并不是下面员工的能力。CMCC的都知道 <br />
，要想哪个业务大发展，列入今年的KPI指标就行了，12580不就靠这个吗。 <br />
&nbsp;&nbsp; &nbsp;而领导的喜好是不好琢磨的，再说，万一换个领导怎么办？当然，我们可喜地看到，注 <br />
重业绩的领导越来越多了。 <br />
&nbsp;&nbsp;<br />
4. 收入： <br />
&nbsp;&nbsp; &nbsp;不谈公司好坏，不谈前途，不谈行业是否兴衰。在同样的情况下，收入也很不确定。由 <br />
于历史原因，体制内的工资一直未能市场化，工资都不高，主要是靠奖金、补贴等活。这带 <br />
来一个结果是员工的收入非常不稳定，员工今年的收入完全看老板敢不敢发钱，而不是看公 <br />
司、部门、个人的业绩如何。 <br />
&nbsp;&nbsp; &nbsp;BMCC，李跃来了大家都爽了一把，ZJMCC，大家都得骂娘。同样是税务，上海的税务部门 <br />
底层员工真是得用清廉、辛苦来形容了。 <br />
&nbsp;&nbsp;<br />
灰色收入： <br />
&nbsp;&nbsp; &nbsp;前几天职版有个帖子说某省直的公务员收入，lx很多兄弟回帖说这是实情，很多围观的 <br />
群众表示存在众多灰色收入等。我想说的是： <br />
第一，你有足够的权力才有灰色收入。你手里一年就100万预算，你能拿多少灰色收入？收 <br />
了你还得孝敬上面。有花钱权力的公务员才占公务员队伍的百分之几？ <br />
第二，就算有，你敢拿吗？我开公司两年了，遭遇过好几任税务工商，有熟的大家私下聊到 <br />
，除非特高（几百万的）或者特少的（给盒月饼），否则谁敢拿，为了几万丢掉饭碗，不值 <br />
。底层公务员等压力现在还是很大的，一个底层员工哪敢咋样，大家都想着到了处长那一级 <br />
就敢钱，但是到了处长那一级又有他的顾虑，又想接着再往上去。谁都有谁的顾虑，有机会 <br />
拿黑钱的还是少数。 <br />
&nbsp;&nbsp;<br />
历史背景： <br />
&nbsp;&nbsp; &nbsp;90年年代初期地方公务员都快发不出工资了，也就是因为90年代后期政府发明了卖地财 <br />
政，这几年公务员才跟着沾光。近几年中央公务员明显不如地方公务员收入高，不就是因为 <br />
卖地财政吗？ <br />
&nbsp;&nbsp; &nbsp;年轻的师弟师妹们可以翻翻历史资料，找老人问问，问问这几年公务员热门单位的变迁 <br />
，或者看看近二十年大型贪污案件高发的部门就知道了。 <br />
&nbsp;&nbsp; &nbsp;最早哪最热门？海关、税务，因为当时国家能收上来钱的就这几个地方，出事率也最高 <br />
。现在呢？海关、税务是被看的最死的。接着受贿案出事最高的就变成了国土局等部门。 <br />
&nbsp;&nbsp; &nbsp; 收入是很不透明且难以估量的，未来一旦卖地财政破产，行政收费取消，地方公务员的 <br />
收益很难保障。 <br />
&nbsp;&nbsp;<br />
5.压力： <br />
&nbsp;&nbsp; &nbsp; 任务指标非正常化，超高、没有必要的指标到处都是。 <br />
&nbsp;&nbsp; &nbsp; 体制内并不是一个以股东收益、市场效率为导向的地方，而是以政治为导向的一个地方 <br />
，因此很多指标是只能提高不能降低，不管这个指标是否合理。因此做假指标是各个地方最 <br />
常见的情况。不管是哪，大家面临的共同事情就是研究如何造假指标，上面的领导也心知肚 <br />
明。 <br />
&nbsp;&nbsp; &nbsp; 这导致大家的压力来源很不正常，有些地方可能1、2年都很轻松，但是可能换了个领导 <br />
之后，下的都是一些非常指标，生活会变得异常充实。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
————————————————————————————————————————— <br />
&nbsp;&nbsp;<br />
第四段：展望未来，风险与机遇——生产力决定生产关系 &nbsp; <br />
&nbsp;&nbsp; &nbsp;说了上面这么多，并不是说体制内完全不好，只是列举一些风险，希望大家别总是听信 <br />
水木那些&#8220;我同学、我亲戚、我朋友&#8221;的言论，多去了解事情的历史，背后的原因，未来的 <br />
走向，而不是盯着眼前那么短暂的几年时光。在过去的二十年里，绝大部分体制内一旦被推 <br />
向市场，就基本走向了衰败，垄断保护带来的绝对不会是高效。因此事业单位和央企的前途 <br />
都不会那么清晰。 <br />
&nbsp;&nbsp; &nbsp; 而对于公务员而言，收益到底未来会怎样？我不好做太多的评判，生产关系改革并不是 <br />
论坛讨论的内容，我真写了就该被删楼了，只方便就下面几点评述一下。 <br />
&nbsp;&nbsp;<br />
1、收益： <br />
&nbsp;&nbsp; &nbsp; 公务员其实也只是一份职业，警察等都只是一种职业，这份职业的优越性取决于从业人 <br />
员掌控的资源和受管制的内容。财务部、税务、海关等都是大家认为能掌控很多资源的地方 <br />
，但是现在他们受到的管制、监管却极为严格。虽然这种监管是来自上层，而不是来自人民 <br />
，但是也导致了绝大部分底层员工获得高额收益的机会是少数的。除非你掌控的资源不受监 <br />
管。 <br />
&nbsp;&nbsp;<br />
2、职业化： <br />
&nbsp;&nbsp; &nbsp; 这几年去税务、工商、公安局、法院办事，我发现很多地方职业化了许多，基本都是公 <br />
事公办，敲诈、态度不好等现象基本不存在——当然，前提是你没有特别大的油水。当然， <br />
二三线城市可能不是这个样子。 <br />
&nbsp;&nbsp; &nbsp; 政治改革的不断深化，最起码让大部分公务员比以前像个职业人士了。 <br />
&nbsp;&nbsp;<br />
3、稳定性： <br />
&nbsp;&nbsp; &nbsp; 央企、事业单位的稳定性很快就会跟企业一样了——最起码对于新人而言。公务员的稳 <br />
定性鄙人不好评价，但是由于政府会一直存在，因此这种职业的稳定性还是会很高的，最起 <br />
码应该会比绝大部分行业都稳定。 <br />
&nbsp;&nbsp; &nbsp; 不过前提是你熟练掌握相关的技能，不会被裁掉，不管这种技能是做报表、喝酒、还是拍 <br />
马屁。 <br />
&nbsp;&nbsp; &nbsp; 当有一天财政破产的时候，政府依然会裁员的，这种事情在8、90年代就发生过了，因 <br />
此不用担心未来不会发生，因此还是得干好这份职业该干的事情。 <br />
&nbsp;&nbsp;<br />
4、上升空间： <br />
&nbsp;&nbsp; &nbsp; 这个不用说了，太难了。坑少人多，如果上面没人，自己没料的就别想了。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
———————————————————————————————————————— <br />
第五段：第一份工作如何尽力地去把控自己的命运 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 我在《通信行业求职宝典：猎头视角》里面提出过几个观点，想做什么，能做什么，该 <br />
做什么。从理论上讲，找个合适的工作最好，求稳定的找稳定的，求高薪的找高薪的，求事业的做事业，可问题是大部分人<br />
<br />
看不懂自己要做啥 <br />
，还有一部分人知道自己要做啥，但是不知道这个行业、企业前途如何。 <br />
&nbsp;&nbsp; &nbsp; 因此这里，我们谈谈如何尽量控制自己的命运——完全把控是不可能的，太祖太宗美国 <br />
总统联合国主席也做不到。 <br />
&nbsp;&nbsp;<br />
1、伴随你命运的东西： <br />
&nbsp;&nbsp; &nbsp; 首先说一个大的话题，职业生涯中，跟你相关的是哪几点？我一般从以下几方面衡量一 <br />
个人：人格、能力、知识体系及其它方面。 <br />
a.人格 <br />
&nbsp;&nbsp; &nbsp; 这是一个心理学名词，主要是指人所具有的与他人相区别的独特而稳定的思维方式和行 <br />
为风格。说的通俗、简单一些，就是你的性格、做 <br />
&nbsp;&nbsp;<br />
事习惯。 <br />
&nbsp;&nbsp; &nbsp; 人格很难改，毕竟是二十多年形成的，我们只能说扬长避短，尽量去改善、规范自己不 <br />
好的地方。 <br />
b.能力 <br />
&nbsp;&nbsp; &nbsp; 这个主要是指学习、沟通、管理等能力。这个大家可能觉得虚，其实，呵呵，不多说了 <br />
，稍微专业的HR、leader都比较容易评判这些能力。 <br />
c.知识体系 <br />
&nbsp;&nbsp; &nbsp; 这个就是跟你工作等相关的东西了，例如通信知识、开发语言掌握等。 <br />
d.其它方面 <br />
&nbsp;&nbsp; &nbsp; 这个包含很多内容，口碑、人脉、品味等。 <br />
&nbsp;&nbsp;<br />
2、如何掌控命运 <br />
&nbsp;&nbsp; &nbsp; 第一份工作对于大部分人而言是职业生涯最重要的起点，不要相信先择业后就业这种说 <br />
法，这是荒谬的。你工作几年后，你的上述四方面能力基本定型了，跳槽的时候，大家首先 <br />
就是通过你之前的工作经验来评判你，因此你找第一份工作的时候，必须要考虑到上面那四 <br />
个方面的内容培养问题。 <br />
&nbsp;&nbsp;<br />
a.尽量找一个适合自己人格的行业 <br />
&nbsp;&nbsp; &nbsp; 尽量做自己适合做，想做的事情。这个很难，第一大部分人不知道自己适合做什么，第 <br />
二大部分人不知道有哪些行业、职业。我的建议是先做排除法，然后再做选择法。先确定自 <br />
己绝对不适合做什么，在去在剩下的里面挑。 <br />
&nbsp;&nbsp; &nbsp; 另外，这些行业、职业一定要自己全面了解之后再决定。很多时候你觉得你适合做的职 <br />
业，当你真正做了之后会发现根本不是那么回事。 <br />
b、找一个技能短期内快速提升能力的职业、行业；找一个技能会长久提升的行业 &nbsp;<br />
&nbsp;&nbsp; &nbsp; 如果真找到想做的职业、行业了，那么找一个合适的起点，找一个地方能让你这些技能 <br />
快速提升的地方，以便1、2年后就能跟同行们拉开差距。 <br />
&nbsp;&nbsp; &nbsp; 这个起点可能是大公司，也可能是小公司，这个跟你所在的行业、你所缺的东西、你职 <br />
业相关，比如说你做销售，那么在华为可能比在某些外企好，因为很多外企的销售其实就是 <br />
在忙着处理内部流程，写邮件，而不是忙着如何谈单子谈项目。你做技术，可能IBM好，有 <br />
可能某个小公司好，因为IBM可能让你养成好的职业习惯、素养，但是也可能荒废了你的快 <br />
速学习、抗压能力，小公司可能做事不规范，但是可能你能力提高的很快。 <br />
c、知识的积累有用的行业 <br />
&nbsp;&nbsp; &nbsp;你的大部分技能在工作4、5年后就基本定型了，某些组织、管理能力可能在10年左右定 <br />
型，但是你的知识不会，你的收入、职位会随着你的知识、口碑等的上升而上升。 <br />
&nbsp;&nbsp; &nbsp; 应该找一个你N年前掌握的知识对你现在工作还会有用的行业，进入知识的积累会一直 <br />
给你带来增值的行业。这样的行业，人员的收入才会不断地增值，而不是贬值，当你体力老去的时候，行业的新入者才不会<br />
<br />
很快替代你。你才会越来越吃香，越老越轻松，例如医生、某些行业顾问等。 <br />
&nbsp;&nbsp; &nbsp; 例如一些sap的顾问为啥前几年这么吃香，一方面是因为需求量暴增，另外一方面是因 <br />
为他们积累的知识不是短期内能速成的，你必须熟悉这个行业的情况、流程后才能去所sap <br />
顾问。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 在这里，我很反感某些人说的&#8220;不要进入那种40岁了还要不断学习的行业&#8221;，小朋友可 <br />
以反过来想想，如果一个人40岁的时候不需要学习了，那么对于公司而言，40岁的人跟50的 <br />
岁人掌握的东西是一样的，那么公司是不是该考虑换个成本低的，年轻点的？ <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 我们需要避免的是那种40岁的时候，之前积累的知识完全无用的工作，而不是说不需要 <br />
你学习的工作。如果一份工作，不需要你学习了，那么意味着你的收入到头了，不会增长了， <br />
你的工作也很容易被更年轻的人替代了。 <br />
d、其它方面的培养 <br />
&nbsp;&nbsp; &nbsp;这个对你们而言，最要紧的就是做好现在能做的每一件事情。 <br />
&nbsp;&nbsp;<br />
3、其它该规避的 <br />
a、行业风险 <br />
&nbsp;&nbsp; &nbsp; 尽量不要进入一个在走下坡路的行业，如传统的单机硬件、软件公司，这些公司慢慢会 <br />
走向没落，你可能在这里会养成良好的职业相关，但是用不了多少年，你还是需要跳槽。与 <br />
其这样，不如当时就进入一个较为新兴的行业。 <br />
&nbsp;&nbsp; &nbsp; 大体可以说几个大家较为常去的行业：对于通信口，无线》有线，设备商》运营商》设 <br />
计院，对于计算机，互联网》传统软件》传统硬件，这里的互联网是一个宽泛的互联网概念 <br />
，包括B/S架构等的软件开发等。 <br />
&nbsp;&nbsp; &nbsp; 当然，上述只是一个宽泛的概念，指的是同level的公司，并不是说去一个某三线的设 <br />
备商强于去CMCC HQ。 <br />
b、公司内部风险 <br />
&nbsp;&nbsp; &nbsp; 很多公司进去的时候不确定你去什么部门，这类公司尽量避免去或者去之前谈妥，尤其 <br />
是一些公司可能产品线很多，万一你去了之后被分到一个快垮掉的产品线，你哭都来不及。 <br />
c、再补充讲一下体制内 <br />
&nbsp;&nbsp; &nbsp; 公务员是一份稳定的职业，是一个国家难起缺失的职业，只不过是这个机构臃肿还是精 <br />
干的问题，工作强度高还是低，收益高还是低的问题，我之前说了很多了，不重复了。 <br />
&nbsp;&nbsp; &nbsp; 但是某些企业、事业单位的未来的存续、前景是很值得质疑。 <br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; &nbsp; 最后说的是，找工作很容易，找好工作也很容易，努努力，每天刻苦15小时（留9个小 <br />
时给大家吃饭睡觉运动洗澡），去个想去的公司做想做的事情总能做到的，但是这只是人生 <br />
的起点，以后的路想过的舒服，还需要继续努力。<br />
<br />
<img src ="http://www.blogjava.net/colorfire/aggbug/348502.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-04-18 16:17 <a href="http://www.blogjava.net/colorfire/archive/2011/04/18/348502.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 数据对象测试方法</title><link>http://www.blogjava.net/colorfire/archive/2011/04/14/348305.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Thu, 14 Apr 2011 09:06:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/04/14/348305.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/348305.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/04/14/348305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/348305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/348305.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_0_43_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_43_Open_Text.style.display='none'; Codehighlighter1_0_43_Closed_Image.style.display='inline'; Codehighlighter1_0_43_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_0_43_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_0_43_Closed_Text.style.display='none'; Codehighlighter1_0_43_Open_Image.style.display='inline'; Codehighlighter1_0_43_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_0_43_Closed_Text">/**&nbsp;*/</span><span id="Codehighlighter1_0_43_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;测试方法<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;obj<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_94_884_Open_Image" onclick="this.style.display='none'; Codehighlighter1_94_884_Open_Text.style.display='none'; Codehighlighter1_94_884_Closed_Image.style.display='inline'; Codehighlighter1_94_884_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_94_884_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_94_884_Closed_Text.style.display='none'; Codehighlighter1_94_884_Open_Image.style.display='inline'; Codehighlighter1_94_884_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;StringBuffer&nbsp;testPOJO(Object&nbsp;obj)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_94_884_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_94_884_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;cls&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;obj.getClass();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field[]&nbsp;fields&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cls.getDeclaredFields();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;resultBuf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer();<br />
<img id="Codehighlighter1_223_811_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_811_Open_Text.style.display='none'; Codehighlighter1_223_811_Closed_Image.style.display='inline'; Codehighlighter1_223_811_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_223_811_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_223_811_Closed_Text.style.display='none'; Codehighlighter1_223_811_Open_Image.style.display='inline'; Codehighlighter1_223_811_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_223_811_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_223_811_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_268_807_Open_Image" onclick="this.style.display='none'; Codehighlighter1_268_807_Open_Text.style.display='none'; Codehighlighter1_268_807_Closed_Image.style.display='inline'; Codehighlighter1_268_807_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_268_807_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_268_807_Closed_Text.style.display='none'; Codehighlighter1_268_807_Open_Image.style.display='inline'; Codehighlighter1_268_807_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;fields.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_268_807_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_268_807_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fieldName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fields[i].getName();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;fieldType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fields[i].getType();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method&nbsp;method;<br />
<img id="Codehighlighter1_417_485_Open_Image" onclick="this.style.display='none'; Codehighlighter1_417_485_Open_Text.style.display='none'; Codehighlighter1_417_485_Closed_Image.style.display='inline'; Codehighlighter1_417_485_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_417_485_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_417_485_Closed_Text.style.display='none'; Codehighlighter1_417_485_Open_Image.style.display='inline'; Codehighlighter1_417_485_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(fieldType.equals(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">.</span><span style="color: #0000ff">class</span><span style="color: #000000">))&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_417_485_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_417_485_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cls.getMethod(</span><span style="color: #000000">"</span><span style="color: #000000">is</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;genMethodName(fieldName));<br />
<img id="Codehighlighter1_492_561_Open_Image" onclick="this.style.display='none'; Codehighlighter1_492_561_Open_Text.style.display='none'; Codehighlighter1_492_561_Closed_Image.style.display='inline'; Codehighlighter1_492_561_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_492_561_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_492_561_Closed_Text.style.display='none'; Codehighlighter1_492_561_Open_Image.style.display='inline'; Codehighlighter1_492_561_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_492_561_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_492_561_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cls.getMethod(</span><span style="color: #000000">"</span><span style="color: #000000">get</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;genMethodName(fieldName));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;res;<br />
<img id="Codehighlighter1_623_732_Open_Image" onclick="this.style.display='none'; Codehighlighter1_623_732_Open_Text.style.display='none'; Codehighlighter1_623_732_Closed_Image.style.display='inline'; Codehighlighter1_623_732_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_623_732_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_623_732_Closed_Text.style.display='none'; Codehighlighter1_623_732_Open_Image.style.display='inline'; Codehighlighter1_623_732_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;method.invoke(obj))&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_623_732_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_623_732_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;res.toString();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultBuf.append(</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fieldName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">]&nbsp;=&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;result&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_739_802_Open_Image" onclick="this.style.display='none'; Codehighlighter1_739_802_Open_Text.style.display='none'; Codehighlighter1_739_802_Closed_Image.style.display='inline'; Codehighlighter1_739_802_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_739_802_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_739_802_Closed_Text.style.display='none'; Codehighlighter1_739_802_Open_Image.style.display='inline'; Codehighlighter1_739_802_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_739_802_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_739_802_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultBuf.append(</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;fieldName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">]&nbsp;=&nbsp;NULL&nbsp;\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_833_861_Open_Image" onclick="this.style.display='none'; Codehighlighter1_833_861_Open_Text.style.display='none'; Codehighlighter1_833_861_Closed_Image.style.display='inline'; Codehighlighter1_833_861_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_833_861_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_833_861_Closed_Text.style.display='none'; Codehighlighter1_833_861_Open_Image.style.display='inline'; Codehighlighter1_833_861_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_833_861_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_833_861_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;resultBuf;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.blogjava.net/colorfire/aggbug/348305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-04-14 17:06 <a href="http://www.blogjava.net/colorfire/archive/2011/04/14/348305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[aws]亚马逊云计算体验1</title><link>http://www.blogjava.net/colorfire/archive/2011/03/15/346292.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Tue, 15 Mar 2011 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/03/15/346292.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/346292.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/03/15/346292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/346292.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/346292.html</trackback:ping><description><![CDATA[<p>前些天，刚注册了AWS，EC2服务免费体验一年，配置也不错，这便宜好大。<br />
<br />
昨天来公司登陆时发现，公司屏蔽了22端口，无奈，回家把端口改掉吧。<br />
顺便将默认只能raskey登陆方式，改掉，重新配置ssh一下。<br />
<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">&nbsp;1.&nbsp;关于&nbsp;SSH&nbsp;Server&nbsp;的整体设定，包含使用的&nbsp;port&nbsp;啦，以及使用的密码演算方式</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">Port&nbsp;</span><span style="color: #800000">22</span><span style="color: #000000">　　　　　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;SSH&nbsp;预设使用&nbsp;22&nbsp;这个&nbsp;port，您也可以使用多的&nbsp;port&nbsp;！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;亦即重复使用&nbsp;port&nbsp;这个设定项目即可！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">Protocol&nbsp;</span><span style="color: #800000">2</span><span style="color: #000000">,</span><span style="color: #800000">1</span><span style="color: #000000">　　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;选择的&nbsp;SSH&nbsp;协议版本，可以是&nbsp;1&nbsp;也可以是&nbsp;2&nbsp;，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;如果要同时支持两者，就必须要使用&nbsp;2,1&nbsp;这个分隔了！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#ListenAddress&nbsp;0.0.0.0　　&nbsp;#&nbsp;监听的主机适配卡！举个例子来说，如果您有两个&nbsp;IP，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;分别是&nbsp;192.168.0.100&nbsp;及&nbsp;192.168.2.20&nbsp;，那么只想要<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;开放&nbsp;192.168.0.100&nbsp;时，就可以写如同下面的样式：</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">ListenAddress&nbsp;</span><span style="color: #800000">192.168</span><span style="color: #000000">.</span><span style="color: #800000">0.100</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;只监听来自&nbsp;192.168.0.100&nbsp;这个&nbsp;IP&nbsp;的SSH联机。<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;如果不使用设定的话，则预设所有接口均接受&nbsp;SSH</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PidFile&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">var</span><span style="color: #000000">/</span><span style="color: #000000">run</span><span style="color: #000000">/</span><span style="color: #000000">sshd</span><span style="color: #000000">.</span><span style="color: #000000">pid　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;可以放置&nbsp;SSHD&nbsp;这个&nbsp;PID&nbsp;的档案！左列为默认值</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">LoginGraceTime&nbsp;</span><span style="color: #800000">600</span><span style="color: #000000">　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;当使用者连上&nbsp;SSH&nbsp;server&nbsp;之后，会出现输入密码的画面，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;在该画面中，在多久时间内没有成功连上&nbsp;SSH&nbsp;server&nbsp;，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;就断线！时间为秒！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">Compression&nbsp;yes　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;是否可以使用压缩指令？当然可以啰！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;2.&nbsp;说明主机的&nbsp;Private&nbsp;Key&nbsp;放置的档案，预设使用下面的档案即可！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">HostKey&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">ssh</span><span style="color: #000000">/</span><span style="color: #000000">ssh_host_key　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;SSH&nbsp;version&nbsp;1&nbsp;使用的私钥</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">HostKey&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">ssh</span><span style="color: #000000">/</span><span style="color: #000000">ssh_host_rsa_key　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;SSH&nbsp;version&nbsp;2&nbsp;使用的&nbsp;RSA&nbsp;私钥</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">HostKey&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">ssh</span><span style="color: #000000">/</span><span style="color: #000000">ssh_host_dsa_key　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;SSH&nbsp;version&nbsp;2&nbsp;使用的&nbsp;DSA&nbsp;私钥<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;2.1&nbsp;关于&nbsp;version&nbsp;1&nbsp;的一些设定！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">KeyRegenerationInterval&nbsp;</span><span style="color: #800000">3600</span><span style="color: #000000">　&nbsp;　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;由前面联机的说明可以知道，&nbsp;version&nbsp;1&nbsp;会使用&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;server&nbsp;的&nbsp;Public&nbsp;Key&nbsp;，那么如果这个&nbsp;Public&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;Key&nbsp;被偷的话，岂不完蛋？所以需要每隔一段时间<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;来重新建立一次！这里的时间为秒！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">ServerKeyBits&nbsp;</span><span style="color: #800000">768</span><span style="color: #000000">&nbsp;　　　　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;没错！这个就是&nbsp;Server&nbsp;key&nbsp;的长度！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;3.&nbsp;关于登录文件的讯息数据放置与&nbsp;daemon&nbsp;的名称！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">SyslogFacility&nbsp;AUTH　　　　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;当有人使用&nbsp;SSH&nbsp;登入系统的时候，SSH会记录资<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;讯，这个信息要记录在什么&nbsp;daemon&nbsp;name&nbsp;底下？<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;预设是以&nbsp;AUTH&nbsp;来设定的，即是&nbsp;/var/log/secure<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;里面！什么？忘记了！回到&nbsp;Linux&nbsp;基础去翻一下<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;其它可用的&nbsp;daemon&nbsp;name&nbsp;为：DAEMON,USER,AUTH,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">LogLevel&nbsp;INFO　　　　　　　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;登录记录的等级！嘿嘿！任何讯息！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;同样的，忘记了就回去参考！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.&nbsp;安全设定项目！极重要！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.1&nbsp;登入设定部分</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PermitRootLogin&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">　　&nbsp;　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;是否允许&nbsp;root&nbsp;登入！预设是允许的，但是建议设定成&nbsp;no！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">UserLogin&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">　　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;在&nbsp;SSH&nbsp;底下本来就不接受&nbsp;login&nbsp;这个程序的登入！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">StrictModes&nbsp;yes　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;当使用者的&nbsp;host&nbsp;key&nbsp;改变之后，Server&nbsp;就不接受联机，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;可以抵挡部分的木马程序！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#RSAAuthentication&nbsp;yes　　&nbsp;#&nbsp;是否使用纯的&nbsp;RSA&nbsp;认证！？仅针对&nbsp;version&nbsp;1&nbsp;！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PubkeyAuthentication&nbsp;yes　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;是否允许&nbsp;Public&nbsp;Key&nbsp;？当然允许啦！只有&nbsp;version&nbsp;2</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">AuthorizedKeysFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">.</span><span style="color: #000000">ssh</span><span style="color: #000000">/</span><span style="color: #000000">authorized_keys<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;上面这个在设定若要使用不需要密码登入的账号时，那么那个<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;账号的存放档案所在档名！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.2&nbsp;认证部分</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">RhostsAuthentication&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;本机系统不止使用&nbsp;.rhosts&nbsp;，因为仅使用&nbsp;.rhosts&nbsp;太<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;不安全了，所以这里一定要设定为&nbsp;no&nbsp;！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">IgnoreRhosts&nbsp;yes　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;是否取消使用&nbsp;~/.ssh/.rhosts&nbsp;来做为认证！当然是！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">RhostsRSAAuthentication&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;这个选项是专门给&nbsp;version&nbsp;1&nbsp;用的，使用&nbsp;rhosts&nbsp;档案在<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;/etc/hosts.equiv配合&nbsp;RSA&nbsp;演算方式来进行认证！不要使用</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">HostbasedAuthentication&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;这个项目与上面的项目类似，不过是给&nbsp;version&nbsp;2&nbsp;使用的！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">IgnoreUserKnownHosts&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;是否忽略家目录内的&nbsp;~/.ssh/known_hosts&nbsp;这个档案所记录<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;的主机内容？当然不要忽略，所以这里就是&nbsp;no&nbsp;啦！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PasswordAuthentication&nbsp;yes&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;密码验证当然是需要的！所以这里写&nbsp;yes&nbsp;啰！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PermitEmptyPasswords&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;若上面那一项如果设定为&nbsp;yes&nbsp;的话，这一项就最好设定<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　&nbsp;#&nbsp;为&nbsp;no&nbsp;，这个项目在是否允许以空的密码登入！当然不许！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">ChallengeResponseAuthentication&nbsp;yes&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;挑战任何的密码认证！所以，任何&nbsp;login.conf&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;规定的认证方式，均可适用！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#PAMAuthenticationViaKbdInt&nbsp;yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;是否启用其它的&nbsp;PAM&nbsp;模块！启用这个模块将会<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　　　　　　&nbsp;#&nbsp;导致&nbsp;PasswordAuthentication&nbsp;设定失效！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.3&nbsp;与&nbsp;Kerberos&nbsp;有关的参数设定！因为我们没有&nbsp;Kerberos&nbsp;主机，所以底下不用设定！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#KerberosAuthentication&nbsp;no<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#KerberosOrLocalPasswd&nbsp;yes<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#KerberosTicketCleanup&nbsp;yes<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#KerberosTgtPassing&nbsp;no<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.4&nbsp;底下是有关在&nbsp;X-Window&nbsp;底下使用的相关设定！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">X11Forwarding&nbsp;yes<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">#</span><span style="color: #008000">X11DisplayOffset&nbsp;10<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#X11UseLocalhost&nbsp;yes<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.5&nbsp;登入后的项目：</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PrintMotd&nbsp;</span><span style="color: #0000ff">no</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;登入后是否显示出一些信息呢？例如上次登入的时间、地点等<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;等，预设是&nbsp;yes&nbsp;，但是，如果为了安全，可以考虑改为&nbsp;no&nbsp;！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">PrintLastLog&nbsp;yes　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;显示上次登入的信息！可以啊！预设也是&nbsp;yes&nbsp;！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">KeepAlive&nbsp;yes　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;一般而言，如果设定这项目的话，那么&nbsp;SSH&nbsp;Server&nbsp;会传送<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;KeepAlive&nbsp;的讯息给&nbsp;Client&nbsp;端，以确保两者的联机正常！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;在这个情况下，任何一端死掉后，&nbsp;SSH&nbsp;可以立刻知道！而不会<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;有僵尸程序的发生！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">UsePrivilegeSeparation&nbsp;yes&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;使用者的权限设定项目！就设定为&nbsp;yes&nbsp;吧！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">MaxStartups&nbsp;</span><span style="color: #800000">10</span><span style="color: #000000">　　　　　　</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;同时允许几个尚未登入的联机画面？当我们连上&nbsp;SSH&nbsp;，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;但是尚未输入密码时，这个时候就是我们所谓的联机画面啦！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;在这个联机画面中，为了保护主机，所以需要设定最大值，<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;预设最多十个联机画面，而已经建立联机的不计算在这十个当中<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;4.6&nbsp;关于使用者抵挡的设定项目：</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">DenyUsers&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">　　　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;设定受抵挡的使用者名称，如果是全部的使用者，那就是全部<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />　　　　　　　　　　　　　#&nbsp;挡吧！若是部分使用者，可以将该账号填入！例如下列！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">DenyUsers&nbsp;test<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />DenyGroups&nbsp;test　　　　　&nbsp;</span><span style="color: #008000">#</span><span style="color: #008000">&nbsp;与&nbsp;DenyUsers&nbsp;相同！仅抵挡几个群组而已！<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />#&nbsp;5.&nbsp;关于&nbsp;SFTP&nbsp;服务的设定项目！</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">Subsystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sftp&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">usr</span><span style="color: #000000">/</span><span style="color: #000000">lib</span><span style="color: #000000">/</span><span style="color: #000000">ssh</span><span style="color: #000000">/</span><span style="color: #000000">sftp</span><span style="color: #000000">-</span><span style="color: #000000">server</span></div>
<br />
<br />
引用自：http://doc.licess.org/openssh/sshd_config.html
<img src ="http://www.blogjava.net/colorfire/aggbug/346292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-03-15 10:51 <a href="http://www.blogjava.net/colorfire/archive/2011/03/15/346292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>py2exe使用说明</title><link>http://www.blogjava.net/colorfire/archive/2011/03/04/345730.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Fri, 04 Mar 2011 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/03/04/345730.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/345730.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/03/04/345730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/345730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/345730.html</trackback:ping><description><![CDATA[<h1 class="ContentTitle"><strong>py2<font style="background-color: #00ffff">exe</font></strong></h1>
<h2 class="ContentAuthor">作者:zzj 日期:2006-07-0<span style="font-size: 11pt"><strong>一、简介</strong></span><br />
<br />
py2<font style="background-color: #00ffff">exe</font>是一个将python脚本转换成windows上的可独立执行的可执行程序(*.<font style="background-color: #00ffff">exe</font>)的工具，这样，你就可以不用装python而在windows系统上运行这个可执行程序。<br />
<br />
py2<font style="background-color: #00ffff">exe</font>已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com&nbsp;client和server,和其它的独立程序。py2<font style="background-color: #00ffff">exe</font>是发布在开源许可证下的。<br />
<br />
<span style="font-size: 11pt"><strong>二、安装py2<font style="background-color: #00ffff">exe</font></strong></span><br />
<br />
从<a href="http://prdownloads.sourceforge.net/py2exe" target="_blank">http://prdownloads.sourceforge.net/py2<font style="background-color: #00ffff">exe</font></a>下载并运行与你所安装的Python对应的py2<font style="background-color: #00ffff">exe</font>版本的installer，这将安装py2<font style="background-color: #00ffff">exe</font>和相应的例子；这些例子被安装在lib\site-packages\py2<font style="background-color: #00ffff">exe</font>\samples目录下。<br />
<br />
<span style="font-size: 11pt"><strong>三、py2<font style="background-color: #00ffff">exe</font>的用法</strong></span><br />
<br />
如果你有一个名为helloworld.py的python脚本，你想把它转换为运行在windows上的可执行程序，并运行在没有安装python的windows系统上，那么首先你应写一个用于发布程序的设置脚本例如mysetup.py，在其中的setup函数前插入语句import&nbsp;py2<font style="background-color: #00ffff">exe</font>&nbsp;。<br />
mysetup.py示例如下:<br />
#&nbsp;mysetup.py<br />
from&nbsp;distutils.core&nbsp;import&nbsp;setup<br />
import&nbsp;py2<font style="background-color: #00ffff">exe</font><br />
<br />
setup(console=["helloworld.py"])<br />
然后按下面的方法运行mysetup.py:<br />
python&nbsp;mysetup.py&nbsp;py2<font style="background-color: #00ffff">exe</font><br />
上面的命令执行后将产生一个名为dist的子目录，其中包含了helloworld.<font style="background-color: #00ffff">exe</font>,python24.dll,library.zip这些文件。<br />
如果你的helloworld.py脚本中用了已编译的C扩展模块，那么这些模块也会被拷贝在个子目录中，同样，所有的dll文件在运行时都是需要的，除了系统的dll文件。<br />
dist子目录中的文件包含了你的程序所必须的东西，你应将这个子目录中的所有内容一起发布。<br />
<br />
默认情况下，py2<font style="background-color: #00ffff">exe</font>在目录dist下创建以下这些必须的文件：<br />
1、一个或多个<font style="background-color: #00ffff">exe</font>文件。<br />
2、python##.dll。&nbsp;<br />
3、几个.pyd文件，它们是已编译的扩展名，它们是<font style="background-color: #00ffff">exe</font>文件所需要的；加上其它的.dll文件，这些.dll是.pyd所需要的。<br />
4、一个library.zip文件，它包含了已编译的纯的python模块如.pyc或.pyo<br />
上面的mysetup.py创建了一个控制台的helloword.<font style="background-color: #00ffff">exe</font>程序，如果你要创建一个图形用户界的程序，那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。<br />
<br />
py2<font style="background-color: #00ffff">exe</font>一次能够创建多个<font style="background-color: #00ffff">exe</font>文件，你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本，那么这是很有用的。<br />
运行下面个命令，将显示py2<font style="background-color: #00ffff">exe</font>命令的所有命令行标记。<br />
python&nbsp;mysetup.py&nbsp;py2<font style="background-color: #00ffff">exe</font>&nbsp;--help<br />
<br />
<span style="font-size: 11pt"><strong>四、指定额外的文件</strong></span><br />
一些应用程序在运行时需要额外的文件，诸如配置文件、字体、位图。<br />
如果在安装脚本中用data_files可选项指定了那些额外的文件，那么py2<font style="background-color: #00ffff">exe</font>能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir,&nbsp;files)列表，其中的files是这些额外的文件的列表。<br />
示例如下：<br />
#&nbsp;mysetup.py<br />
from&nbsp;distutils.core&nbsp;import&nbsp;setup<br />
import&nbsp;glob<br />
import&nbsp;py2<font style="background-color: #00ffff">exe</font><br />
<br />
setup(console=["helloworld.py"],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_files=[("bitmaps",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;["bm/large.gif",&nbsp;"bm/small.gif"]),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;("fonts",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glob.glob("fonts\\*.fnt"))],<br />
)<br />
说明：data_files选项将创建一个子目录dist\bitmaps，其中包含两个.gif文件；一个子目录dist\fonts，其中包含了所有的.fnt文件。<br />
<br />
<span style="font-size: 11pt"><strong>五、Windows&nbsp;NT&nbsp;services</strong></span><br />
<br />
你可以通过传递一个service关键字参数给setup函数来建造Windows&nbsp;NT&nbsp;services<br />
,这个service参数的值必须是一个Python模块名(包含一service类)的列表。<br />
示例如下：<br />
#&nbsp;mysetup.py<br />
from&nbsp;distutils.core&nbsp;import&nbsp;setup<br />
import&nbsp;py2<font style="background-color: #00ffff">exe</font><br />
<br />
setup(service=["MyService"])<br />
所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(<font style="background-color: #00ffff">exe</font>)后跟一-help参数来得到更多的帮助。<br />
<span style="font-size: 11pt"><strong>六、COM&nbsp;servers</strong></span><br />
<br />
你可以通过传递一个com_server&nbsp;关键字参数给setup函数来建造Windows&nbsp;NT&nbsp;services<br />
,这个service参数的值必须是一个Python模块名(包含一个或多个COM&nbsp;server&nbsp;类)的列表。<br />
示例如下：<br />
#&nbsp;mysetup.py<br />
from&nbsp;distutils.core&nbsp;import&nbsp;setup<br />
import&nbsp;py2<font style="background-color: #00ffff">exe</font><br />
<br />
setup(com_server=["win32com.server.interp"])<br />
默认情况下，DLL和<font style="background-color: #00ffff">EXE</font>&nbsp;servers被建造，你不需要它们的话你可以简单的删除它们。<br />
</h2>
<img src ="http://www.blogjava.net/colorfire/aggbug/345730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-03-04 16:39 <a href="http://www.blogjava.net/colorfire/archive/2011/03/04/345730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>人性的小船</title><link>http://www.blogjava.net/colorfire/archive/2011/02/23/344900.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Wed, 23 Feb 2011 04:36:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/02/23/344900.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/344900.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/02/23/344900.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/344900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/344900.html</trackback:ping><description><![CDATA[听到一个故事，10几个人在海上遇难，只有一个小船可以活命。船上什么也没有，所有人都因为几天没吃没喝而奄奄一息，但大家都坚持不喝海水，因为一旦喝了海水人脱水的速度会更快。<br />
但是有一个年轻人，几近虚脱，为了生存终于忍不住喝了海水。。。<br />
<br />
又过了几天，这一船人被救了。当他们被救上来的同时，发现那个喝海水的年轻人被割喉，血被吸干了。人吃人的消息不胫而走。<br />
一船人被带进法院。是杀人、是自救？是有罪、是无罪？是人治、是法制？每个人都该有自己的判断。<br />
<br />
最终一船人被判无罪释放。<br />
<br />
老爸说，人这一生无非就是提出问题，然后解决问题，以及做出选择。出现了问题，要面对它解决它，不能逃避。 
<img src ="http://www.blogjava.net/colorfire/aggbug/344900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-02-23 12:36 <a href="http://www.blogjava.net/colorfire/archive/2011/02/23/344900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>总结</title><link>http://www.blogjava.net/colorfire/archive/2011/01/04/342272.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Tue, 04 Jan 2011 06:01:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2011/01/04/342272.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/342272.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2011/01/04/342272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/342272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/342272.html</trackback:ping><description><![CDATA[2011年了，拿点什么来总结一下过去的2010呢？盘点一下自己这一年读过的书吧，以<br />
供自勉。<br />
<br />
总体感觉这一年看的书杂而不精，而且大多数的书囫囵吞枣，看完就忘了，工作中用到<br />
还得上网去查。大牛们帮看看，给一些指导吧（我09年本科毕业，对Java和Web方面有<br />
着比较强烈的兴趣，职业规划是成长为一名Java和web方面的技术专家）<br />
&nbsp;<br />
<br />
《数据结构（C语言版）》：内功心法类的书，考研时读过，现在想回头温习一下，当<br />
年辛辛苦苦看的，不能给丢的一干二净。<br />
《计算机网络（第4版）》：看了概述、传输层和应用层。跳出了TCP/IP协议栈的范畴<br />
来看网络基本原理。11年要重点阅读。<br />
&nbsp;<br />
<br />
《Java面向对象编程》：孙卫琴的书，通俗易懂，个人认为Java居家必备，恨学校当<br />
年没有选这本书作为教材。<br />
《Think in Java（第4版）》：先读了线程那一章，赶紧把简历上精通Java改为熟悉<br />
Java。接着读了一切皆是对象、接口、异常、RTTI章节，然后小心地把简历上熟悉<br />
Java改为熟练使用Java。11年要重点阅读。<br />
《设计模式：可复用面向对象软件的基础》：据说是设计模式的葵花宝典，可惜自己没<br />
练成。书很薄，只有200来页，字字珠玑，模式的定义都很精辟，另外把模式按性质的<br />
一个分类太妙了：creational,structural,behavioral。<br />
《Java与模式》：在这本书上找到了设计模式的感觉，通俗易懂。<br />
《敏捷软件开发原则、模式与实践》：冲着Robert大叔的名头去的，读了一遍，给我<br />
的感觉是看不懂、看不懂啊。不过附录A倒是让我学会了CGI，附录C中的讽刺小品很有<br />
意思。，大牛们都说每读一遍，感觉都不一样，11年再仔细揣摩吧。<br />
《UML精粹：标准对象语言简明指南（第3版）》：看完忘了，不记得内容了<br />
《UML for Java Programmers》：经典巨著，画UML图时，总参照这本书。书后咖<br />
啡机的例子，非常震撼。<br />
《领域驱动设计》：经典巨著，看了一点点，受益匪浅。11年要重点阅读。<br />
《软件架构设计》：看了一遍，理解不了，只是大概弄懂了几个概念，平台、框架、垂<br />
直架构、水平架构...以后再阅读吧<br />
&nbsp;<br />
<br />
《编程之美》：很有意思、开动脑筋的一本书，求职必备。<br />
《编程珠玑》：对我来说，有点难，读着很费劲，但应该能锻炼大脑吧。<br />
《并发的艺术》：很好的一本书，看到了一直想看的并发排序、并发搜索。<br />
&nbsp;<br />
<br />
《Head First HTML and CSS、HTMl》：简单流畅的一本书，但是内容有点过于简<br />
单了。<br />
《Eric Meryer谈CSS》：买书时，作为添头送的，不怎么样，仅仅看到了几个卖噱头<br />
的CSS技巧。<br />
《JavaScript语言精粹》：无愧于书名，JavaScript进阶必读。<br />
《PPK谈JavaScript》：谈的很到位，JavaScript语言核心、DOM、BOM、JSON...<br />
《JavaScript设计模式》：第一部分对JavaScript面向对象思想的讲解非常不错，<br />
真正的主题第二部分，列举了10几种模式，但对模式的讲解感觉很生硬，有生搬硬套之<br />
嫌，反正我是没掌握。<br />
《AJAX实战》：总体很一般的书，门户那一章倒是帮了不少忙，当时搞Portal，从这<br />
一章看了一些Portal的基本技术原理。<br />
《JQuery 实战》：很不错的一本书，简洁流畅，能让你的JQuery快速起步和有力奔<br />
跑。另外，附录中关于JavaScript语言本身的讲解，对我帮助很大。<br />
《Web应用程序性能测试指南 》：试图展开Web性能测试的理论体系和指导方法，不<br />
过，我的脑子或者说思维类型，对这种书完全接纳不了，看完觉得很空洞，没留下什么<br />
在我脑子里。<br />
《瞬间之美:Web 界面设计如何让用户心动》：同事在看，冲着书名，我也凑过去看了<br />
看，看的时候觉得挺好玩，完了就忘了，我思维类型实在不适合搞这个。<br />
《RESTful Web Services》：应该是自身水平问题，书里好多概念到现在都是似懂<br />
非懂，说不清、道不明的状态。但这本书倒是提醒我要重新认识和理解WEB和HTTP协<br />
议，问问自己，是否在项目中做到很好地分析资源，并使之符合HTTP的规范。<br />
&nbsp;<br />
<br />
《Struts2 in Action》：没有系统地看这本书，用到的时候翻翻，造成到现在也没<br />
系统掌握Struts2。<br />
《精通struts 2:web 2.0开发实战》：很不咋地的一本书，没营养，没内涵，准备当<br />
二手书卖了。<br />
《Spring In Action》：很好的一本in action书，也比较新，按照spring 2..5<br />
讲的。<br />
<br />
《Hibernate in Action（第2版）》：去年过生日时哥们送的，年初看了一遍，不<br />
少地方没看懂，尤其是事务控制那一块，因为背后的数据库事务理论不太了解，所以看<br />
着费劲。11年工作要用到Hibernate，要重点看这本书。<br />
&nbsp;<br />
《数据库系统概念》：看了，特想骂人，骂当年软院选书的老师，有些老师真是无良，<br />
为了那点利益，耽误了好多学生。无论是开发人员，还是DBA，无论是想搞关系数据<br />
库，还是NoSQL都很有必要读读这本书。<br />
《SQL应用重构》：上半年看的，没看懂，没有任何收获，11年有空的话，就再翻翻<br />
吧，看能不能发现点惊喜。<br />
《高性能MySQL》：Jolt Award获奖图书，看了前3章，非常棒。11年重点看。<br />
《MySQL技术内幕 InnoDB存储引擎》：很喜欢这本书，一个资深DBA的经验谈，行文<br />
功力还凑合，日后如果我写书的话，估计就是这个这种风格。11年重点看。<br />
《MySQL核心内幕》：感觉被Chinapub骗了，书评很好，但这本书实在是太烂了。当<br />
时我还推荐一哥们买了，现在那叫一个后悔啊。<br />
<br />
《UNIX和shell程序设计权威教程》：以后再也不买这种书了，完全扫盲贴的水平。对<br />
VI、Sed、AWK的讲解都是点到为止。<br />
&nbsp;<br />
<br />
《赢》：杰克&#183;韦尔奇的指引：&#8220;找到一份好工作，此后的人生不再是劳作&#8221;，&#8220;怎样选择<br />
一份新工作：薪水+5（人、机遇、主导权、工作内容、未来）&#8221;。打算再买几本送人。<br />
《德川家康》：比历史还真实的小说。读了前4本，当时经常陷入情节，读到凌晨2、3<br />
点，后来没时间读了，11年有空的话，很想再看看。<br />
<br />
《别跟我说你懂日本》：记得有一章的名字叫&#8220;走近她，了解她，原来如此&#8221;。<br />
《其实没有什么天才》<br />
《郎咸平说新帝国主义在中国》<br />
《亮剑》<br />
&nbsp;<br />
<br />
《诗经》：随手翻了翻，很美，看完就忘了。<br />
《拜伦 雪莱 济慈抒情诗精选集》<br />
<br />
<img src ="http://www.blogjava.net/colorfire/aggbug/342272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2011-01-04 14:01 <a href="http://www.blogjava.net/colorfire/archive/2011/01/04/342272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>批处理异常问题</title><link>http://www.blogjava.net/colorfire/archive/2010/12/17/341011.html</link><dc:creator>colorfire</dc:creator><author>colorfire</author><pubDate>Fri, 17 Dec 2010 09:51:00 GMT</pubDate><guid>http://www.blogjava.net/colorfire/archive/2010/12/17/341011.html</guid><wfw:comment>http://www.blogjava.net/colorfire/comments/341011.html</wfw:comment><comments>http://www.blogjava.net/colorfire/archive/2010/12/17/341011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/colorfire/comments/commentRss/341011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/colorfire/services/trackbacks/341011.html</trackback:ping><description><![CDATA[ibatis 批处理唯一性异常，执行到事务结束。<br />
<br />
循环第二次执行批处理时会将表锁死。 <br />
<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">SqlMapClient&nbsp;smc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getSqlMapClient();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;index&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_66_1006_Open_Image" onclick="this.style.display='none'; Codehighlighter1_66_1006_Open_Text.style.display='none'; Codehighlighter1_66_1006_Closed_Image.style.display='inline'; Codehighlighter1_66_1006_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_66_1006_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_66_1006_Closed_Text.style.display='none'; Codehighlighter1_66_1006_Open_Image.style.display='inline'; Codehighlighter1_66_1006_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_66_1006_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_66_1006_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.startTransaction();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.startBatch();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TCuBillfileChecks&nbsp;check&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TCuBillfileChecks();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check.setTaskname(taskName);<br />
<img id="Codehighlighter1_253_719_Open_Image" onclick="this.style.display='none'; Codehighlighter1_253_719_Open_Text.style.display='none'; Codehighlighter1_253_719_Closed_Image.style.display='inline'; Codehighlighter1_253_719_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_253_719_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_253_719_Closed_Text.style.display='none'; Codehighlighter1_253_719_Open_Image.style.display='inline'; Codehighlighter1_253_719_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;recordList.size();&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_253_719_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_253_719_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Record&nbsp;record&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;recordList.get(i);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;&nbsp;&nbsp;&nbsp;custInfo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pojoFactory.generatePojo(taskName,&nbsp;billMonth,&nbsp;record);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.insert(taskName&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.insert_custinfo</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;custInfo);<br />
<img id="Codehighlighter1_457_714_Open_Image" onclick="this.style.display='none'; Codehighlighter1_457_714_Open_Text.style.display='none'; Codehighlighter1_457_714_Closed_Image.style.display='inline'; Codehighlighter1_457_714_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_457_714_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_457_714_Closed_Text.style.display='none'; Codehighlighter1_457_714_Open_Image.style.display='inline'; Codehighlighter1_457_714_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(index&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;batchNum)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_457_714_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_457_714_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;记录断点</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check.setBillname(record.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">Source_FileName</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check.setFilenum(Integer.parseInt(record.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">RowNum</span><span style="color: #000000">"</span><span style="color: #000000">)));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.update(</span><span style="color: #000000">"</span><span style="color: #000000">T_CU_BILLFILE_CHECKS.updateByPrimaryKey</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;check);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.executeBatch();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check.setBillname(recordList.get(recordList.size()&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">).getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">Source_FileName</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check.setFilenum(Integer.parseInt(recordList.get(recordList.size()&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">).getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">RowNum</span><span style="color: #000000">"</span><span style="color: #000000">)));<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.update(</span><span style="color: #000000">"</span><span style="color: #000000">T_CU_BILLFILE_CHECKS.updateByPrimaryKey</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;check);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.executeBatch();<br />
<img id="Codehighlighter1_1028_1056_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1028_1056_Open_Text.style.display='none'; Codehighlighter1_1028_1056_Closed_Image.style.display='inline'; Codehighlighter1_1028_1056_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1028_1056_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1028_1056_Closed_Text.style.display='none'; Codehighlighter1_1028_1056_Open_Image.style.display='inline'; Codehighlighter1_1028_1056_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1028_1056_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1028_1056_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img id="Codehighlighter1_1066_1191_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1066_1191_Open_Text.style.display='none'; Codehighlighter1_1066_1191_Closed_Image.style.display='inline'; Codehighlighter1_1066_1191_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1066_1191_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1066_1191_Closed_Text.style.display='none'; Codehighlighter1_1066_1191_Open_Image.style.display='inline'; Codehighlighter1_1066_1191_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1066_1191_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1066_1191_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_1075_1135_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1075_1135_Open_Text.style.display='none'; Codehighlighter1_1075_1135_Closed_Image.style.display='inline'; Codehighlighter1_1075_1135_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1075_1135_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1075_1135_Closed_Text.style.display='none'; Codehighlighter1_1075_1135_Open_Image.style.display='inline'; Codehighlighter1_1075_1135_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1075_1135_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1075_1135_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.commitTransaction();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smc.endTransaction();<br />
<img id="Codehighlighter1_1157_1187_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1157_1187_Open_Text.style.display='none'; Codehighlighter1_1157_1187_Closed_Image.style.display='inline'; Codehighlighter1_1157_1187_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_1157_1187_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1157_1187_Closed_Text.style.display='none'; Codehighlighter1_1157_1187_Open_Image.style.display='inline'; Codehighlighter1_1157_1187_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1157_1187_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1157_1187_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.blogjava.net/colorfire/aggbug/341011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/colorfire/" target="_blank">colorfire</a> 2010-12-17 17:51 <a href="http://www.blogjava.net/colorfire/archive/2010/12/17/341011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>