﻿<?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>博客园-开源CLI核心探索团队</title><link>http://sscli.cnblogs.com</link><description>致力于对.Net最核心技术的研究。倾力打造研究CLR,PAL,JIT等的高品质文章。

倾力对以下项目进行研究：Rotor,Mono,Singularity,WRK</description><language>zh-cn</language><lastBuildDate>Thu, 24 Jul 2008 09:18:20 GMT</lastBuildDate><pubDate>Thu, 24 Jul 2008 09:18:20 GMT</pubDate><ttl>60</ttl><item><title>CLR系列：大型对象堆</title><link>http://www.cnblogs.com/gjcn/archive/2008/07/23/1248587.html</link><dc:creator>gjcn</dc:creator><author>gjcn</author><pubDate>Wed, 23 Jul 2008 01:46:00 GMT</pubDate><guid>http://www.cnblogs.com/gjcn/archive/2008/07/23/1248587.html</guid><description><![CDATA[<p>园子里有很多人已经对CLR的GC Heap有过激烈的讨论，里面有不少精华文章。但是既然是CLR系列，那么就不得不对GC Heap进行讲解。本文主要是对LOH<span style="font-family: 宋体">（</span>Large Object Heap<span style="font-family: 宋体">）讲解。</span><span style="font-family: 宋体"><span style="font-family: 宋体">在一个托管进程被创建以后，在托管进程的内存空间里面，包含了</span>System Domain<span style="font-family: 宋体">，</span>Shared Domain<span style="font-family: 宋体">，</span>Default Domain<span style="font-family: 宋体">，</span>Process<span style="font-family: 宋体">的</span>Heap<span style="font-family: 宋体">，</span>JIT Code heap（都包含在<font face="Verdana">LoaderHeap）</font><span style="font-family: 宋体">，</span>GC Heap<span style="font-family: 宋体">以及</span>LOH<span style="font-family: 宋体">。</span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体">CLR 垃圾回收器 (GC) 将对象分为大型、小型两类。如果是大型对象，与其相关的一些属性将比对象较小时显得更为重要。例如，压缩大型对象（将内存复制到堆上的其他位置）的费用相当高。我将讨论符合什么条件的对象才能称之为大型对象，如何回收这些大型对象，以及大型对象具备哪些性能意义。</span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><strong>大型对象堆</strong></span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体">.NET Framework 1.1 和 2.0 中，如果对象大于或等于 85,000 字节，将被视为大型对象。注意：<strong>此数字根据性能优化的结果确定</strong>。当对象分配请求传入后，如果符合该大小，便会将此对象分配给大型对象堆。为什么会这样呢？我们先看看NET 垃圾回收器的基础知识。</span></span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体">我们知道，.NET 垃圾回收器是分代回收器。它包含三代：第0代、第1代和第2代。之所以分代，是因为在良好调优的应用程序中，您可以在第0代清除大部分对象。每当触发一次垃圾回收，NET就首先扫描第0代，仍存在的对象将被放到第1代，当第1代放满后，会对第1代进行垃圾回收，仍存在的对象将被放到第2代，以此进行下去。但是，最后一代回收未处理的对象仍会被视为最后一代中的对象。从本质上讲，第1代是新对象区域与生存期较长的对象区域之间的缓冲区。回收任何一代，都会回收他以前的所有代。例如，执行第1代垃圾回收时，将同时回收第1代和第0代。执行第2代垃圾回收时，将回收整个堆。</span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体">加载 CLR 时，将分配两个初始堆栈段（一个用于小型对象，另一个用于大型对象），我将它们分别称为小型对象堆 (SOH) 和大型对象堆 (LOH)。然后，通过将托管对象置于任一托管堆栈段上来满足分配请求。如果对象小于 85,000 字节，则将其放在 SOH 段上；否则将其放在 LOH 段上。随着分配到各段上的对象越来越多，会以较小块的形式提交这些段。用户代码只能在第 0 代（小型对象）或 LOH（大型对象）中分配。只有垃圾回收器可以在第1代（通过提升第0代回收未处理的对象）和第2代（通过提升第1代和第2代回收未处理的对象）中&#8220;分配&#8221;对象。触发垃圾回收后，垃圾回收器将寻找存在的对象并将它们压缩。如果没有足够的可用空间来容纳大型对象分配请求，我会先尝试从操作系统获取更多段。如果失败，我将触发第 2 代垃圾回收以便释放一些空间。</span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体">如果大家还有所怀疑，可以看看下面windbg+sos<span style="font-family: 宋体">来看看一个用户态运行的程序的</span>GC Heap<span style="font-family: 宋体">里面都是些什么：</span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><span style="font-family: 宋体"><font face="Verdana">Number of GC Heaps: 1<br />
<strong>generation 0 starts at 0x013d1018<br />
generation 1 starts at 0x013d100c<br />
generation 2 starts at 0x013d1000<br />
</strong>ephemeral segment allocation context: none<br />
&nbsp;segment&nbsp;&nbsp;&nbsp; begin allocated&nbsp;&nbsp;&nbsp;&nbsp; size<br />
<strong>001b09f8 7a733370&nbsp; 7a754b98 0x00021828(137256)<br />
001b3fc0 7b463c40&nbsp; 7b47a744 0x00016b04(92932)<br />
0014df68 790d8620&nbsp; 790f7d8c 0x0001f76c(128876)<br />
013d0000 013d1000&nbsp; 01425ff4 0x00054ff4(348148)<br />
</strong>Large object heap starts at 0x023d1000<br />
&nbsp;segment&nbsp;&nbsp;&nbsp; begin allocated&nbsp;&nbsp;&nbsp;&nbsp; size<br />
<strong>023d0000 023d1000&nbsp; 023d8e00 0x00007e00(32256)<br />
</strong>Total Size&nbsp;&nbsp; 0xb488c(739468)<br />
------------------------------<br />
GC Heap Size&nbsp;&nbsp; 0xb488c(739468)<br />
我们一个<span lang="EN-US">GC Heap</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面有四个</span><span lang="EN-US">Heap Segment</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，紧接着</span><span lang="EN-US">Heap Segment</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的，是</span><span lang="EN-US">LOH</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。这些Generation<span style="font-family: 宋体">是保存在一个一个的</span><span lang="EN-US"><span lang="EN-US">Heap Segment</span></span><span style="font-family: 宋体">里面的。一个</span>Heap Segment<span style="font-family: 宋体">可以包含两个</span>Generation<span style="font-family: 宋体">或者三个，或者更多。而一个</span>Generation<span style="font-family: 宋体">可以跨越多个</span>Heap Segment<span style="font-family: 宋体">。<span style="font-family: 宋体">紧接着</span>GC Heap<span style="font-family: 宋体">的内存区域，就是</span>LOH<span style="font-family: 宋体">。在默认情况下，超过</span>85000byte<span style="font-family: 宋体">的对象就被保存到这里。</span></span></span></font></span></span></span></p>
<p><span style="font-family: 宋体"><span style="font-family: 宋体"><span style="font-family: 宋体"><font face="Verdana"></font></span></span></span><span style="font-family: 宋体"><span style="font-family: 宋体"><span style="font-family: 宋体"><font face="Verdana"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span style="font-family: 宋体"><span style="font-family: 宋体">&nbsp;</p>
<div class="ArticleTypeTitle" id="id0070017"><strong>何时回收大型对象</strong></div>
<div class="ArticleTypeTitle"><span class="ArticleInlineTitle">分配超出第 0 代或大型对象阈值</span></div>
<div class="ArticleTypeTitle"><span class="ArticleInlineTitle">调用 System.GC.Collect</span> 如果对第 2 代调用 GC.Collect,将立即回收 LOH 及其他托管堆。</div>
<div class="ArticleTypeTitle"><span class="ArticleInlineTitle">系统内存太低</span></div>
<div class="ArticleTypeTitle">&nbsp;</div>
<div class="ArticleTypeTitle"><strong>LOH 性能</strong></div>
<div class="ArticleTypeTitle">CLR选择扫过所有对象，扫描一遍来判断这个对象有没有对别的对象的引用。如果有的话，这一类对象就会存储在一起，而没有对其它对象引用的对象就会存在其余的另外一个区域。这样做是基于性能考虑的。</div>
<div class="ArticleTypeTitle">们来看一下回收成本。前面曾提到，LOH 和第2代将一起回收。如果超过两者中任何一个的阈值，都会触发第2代回收。如果由于第2代为 LOH 而触发了第2代回收，则第 2 代本身在垃圾回收后不一定会变得更小。因此，如果第2代中的数据不多，这将不是问题。但是，如果第2代很大，则触发多次第2代垃圾回收可能会产生性能问题。毫无疑问，如果仍继续分配和处理真正的大型对象，分配成本肯定会大幅增加。</div>
<div class="ArticleTypeTitle">我们可以看看上面的调试结果，我们可以看到</div>
<div class="ArticleTypeTitle">Large object heap starts at 0x023d1000<br />
&nbsp;segment&nbsp;&nbsp;&nbsp; begin allocated&nbsp;&nbsp;&nbsp;&nbsp; size<br />
<strong>023d0000 023d1000&nbsp; 023d8e00 0x00007e00(32256)</strong></div>
<div>您会看到 LOH 的总大小少于 85,000 个字节。为什么会这样？这是因为运行时本身实际使用LOH分配某些小于大型对象的对象。在看看下面的调试代码（LOH的内存段）</div>
<div><font face="Verdana">0:011&gt; !dumpheap -stat 023d1000&nbsp; 023d8e00 <br />
total 17 objects<br />
Statistics:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MT&nbsp;&nbsp;&nbsp; Count&nbsp;&nbsp;&nbsp; TotalSize Class Name<br />
0014c090&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 144&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Free<br />
7912d8f8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32112 System.Object[]<br />
Total 17 objects</font><br />
大型对象费用很高。由于 CLR 需要清除一些新分配大型对象的内存，以满足 CLR 清除所有新分配对象内存的保证，所以分配成本相当高。LOH 将与堆的其余部分一起回收，如果可以，建议重新使用大型对象以避免托管堆。LOH 上的特大对象通常是数组（很少会有非常大的实例对象）。如果数组元素包含很多引用，则成本将会很高。如果元素不包含任何引用，则根本无需处理此数组。最后，到目前为止，在回收过程中尚不能压缩 LOH，但不应依赖于此实现。因此，要确保某些内容未被GC移动，请始终将其固定起来。</div>
</span></span></span></font></span></span></span>
<img src ="http://sscli.cnblogs.comaggbug/1248587.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41276/" target="_blank">[新闻]浅析facebook的信息架构</a>]]></description></item><item><title>Windows Process内存组织结构及重要域解析</title><link>http://www.cnblogs.com/lbq1221119/archive/2008/07/22/1248706.html</link><dc:creator>lbq1221119</dc:creator><author>lbq1221119</author><pubDate>Tue, 22 Jul 2008 06:45:00 GMT</pubDate><guid>http://www.cnblogs.com/lbq1221119/archive/2008/07/22/1248706.html</guid><description><![CDATA[摘要: 最近恶补操作系统和一些底层的知识。遂写篇文章来说说从操作系统的角度来研究Process的一些结构，实现，Porcess的初始化，重要的结构体域的定义，代表的含义，如何组织起来的，等。还有在前段时间研究托管的static字段到底在内存中如何组织的时候，遇到的handle table不熟悉的问题。 一个xp里面的Process，是由几个Eprocess，执行体进程块来表示的。这个Eprocess里面不&nbsp;&nbsp;<a href='http://www.cnblogs.com/lbq1221119/archive/2008/07/22/1248706.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1248706.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41275/" target="_blank">[新闻]Mozilla将于本周五发布Firefox 3.1第一个预览版</a>]]></description></item><item><title>并行思维 [I]</title><link>http://www.cnblogs.com/lucifer1982/archive/2008/07/19/1246508.html</link><dc:creator>Angel Lucifer</dc:creator><author>Angel Lucifer</author><pubDate>Sat, 19 Jul 2008 03:24:00 GMT</pubDate><guid>http://www.cnblogs.com/lucifer1982/archive/2008/07/19/1246508.html</guid><description><![CDATA[摘要: 每个软件开发人员都不得不面对并行编程。以前以及现在，我们在完成任务时，首先会考虑选择最佳算法，实现语言等。但现在我们必须首先考虑任务的内在并行性。而这反过来又会影响我们对算法和实现的抉择。如果试着在最后考虑并行，还不如不要思考并行。程序也不能很好的工作。&nbsp;&nbsp;<a href='http://www.cnblogs.com/lucifer1982/archive/2008/07/19/1246508.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1246508.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41274/" target="_blank">[新闻]瑞星将向个人用户免费1年</a>]]></description></item><item><title>CLR系列：窥视HashTable</title><link>http://www.cnblogs.com/gjcn/archive/2008/07/07/1234560.html</link><dc:creator>gjcn</dc:creator><author>gjcn</author><pubDate>Mon, 07 Jul 2008 01:59:00 GMT</pubDate><guid>http://www.cnblogs.com/gjcn/archive/2008/07/07/1234560.html</guid><description><![CDATA[<strong>哈希表(Hashtable)简述</strong><br />
我想大家对<strong>Hashtable</strong>很熟悉，平时在工作中使用的也是比较多的，现在都是3.5了，<strong>Dictionary</strong> 的出现已经可以替代Hashtable，但是我还是想对这个Net框架使用较多的对象(举个例子：Net的CLR处理一个程序集的字符串就是采用HashTable存储在System Domain)讲解一下，因为很多新的技术都是建立在老的技术和思想上的。<br />
在.NET Framework中，Hashtable是System.Collections命名空间提供的一个容器，用于处理和表现类似key/value的键值对，其中key通常可用来快速查找，同时key是区分大小写；value用于存储对应于key的值。Hashtable中key/value键值对均为 object类型，所以Hashtable可以支持任何类型的key/value键值对.<br />
<br />
<strong>例子</strong><br />
<div class="cnblogs_code"><img id="Code_Closed_Image_103613" onclick="this.style.display='none'; Code_Closed_Text_103613.style.display='none'; Code_Open_Image_103613.style.display='inline'; Code_Open_Text_103613.style.display='inline';" height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" /><img id="Code_Open_Image_103613" style="display: none" onclick="this.style.display='none'; Code_Open_Text_103613.style.display='none'; Code_Closed_Image_103613.style.display='inline'; Code_Closed_Text_103613.style.display='inline';" height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" /><span id="Code_Closed_Text_103613" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">Code</span><span id="Code_Open_Text_103613" style="display: none"><br />
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080">&nbsp;1</span><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">Hashtable&nbsp;ht&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Hashtable();<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;m&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;m&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">;&nbsp;m</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;ht.Add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;cuskey(m),&nbsp;m);<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ht.ContainsKey(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;cuskey(</span><span style="color: #800080">3</span><span style="color: #000000">)))<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_127_169_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_127_169_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_127_169_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_127_169_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_127_169_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_127_169_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_127_169_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_127_169_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_127_169_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_127_169_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">find!</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_181_230_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_181_230_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_181_230_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_181_230_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_181_230_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_181_230_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_181_230_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_181_230_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_181_230_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_181_230_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">can't&nbsp;find!</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />ht.Clear();<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />MyTest&nbsp;key1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MyTest(</span><span style="color: #800080">10</span><span style="color: #000000">);<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />ht.Add(key1,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Key1</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(ht.ContainsKey(key1))<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_324_402_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_324_402_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_324_402_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_324_402_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_324_402_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_324_402_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_324_402_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_324_402_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span id="Codehighlighter1_324_402_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_324_402_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Is&nbsp;key1&nbsp;contained&nbsp;in&nbsp;hashtable?&nbsp;{0}</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img id="Codehighlighter1_414_494_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_414_494_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_414_494_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_414_494_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_414_494_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_414_494_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_414_494_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_414_494_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_414_494_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_414_494_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Is&nbsp;key1&nbsp;contained&nbsp;in&nbsp;hashtable?&nbsp;{0}</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />key1.KeyNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">11</span><span style="color: #000000">;<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;isContained&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ht.ContainsKey(key1);<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Is&nbsp;key1&nbsp;contained&nbsp;in&nbsp;hashtable?&nbsp;{0}</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;isContained);<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />MyTest&nbsp;key2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MyTest(</span><span style="color: #800080">10</span><span style="color: #000000">);<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />ht.Add(key2,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">key2</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Hashtable&nbsp;counts:</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;ht.Count);<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />MyTest&nbsp;key3&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MyTest(</span><span style="color: #800080">15</span><span style="color: #000000">);<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />ht.Add(key3,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">key3</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Hashtable&nbsp;counts:</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;ht.Count);<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">MyTest&nbsp;key4&nbsp;=&nbsp;new&nbsp;MyTest(10);<br />
</span><span style="color: #008080">37</span><span style="color: #008000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">ht.Add(key4,&nbsp;"key4");&nbsp;</span></span></div>
<p>先不做解释，看看结果。<br />
<img height="92" alt="" src="http://www.cnblogs.com/images/cnblogs_com/gjcn/hashtable1.JPG" width="315" border="0" /><br />
在我没有给出自定义类<font face="Verdana">MyTest和</font><font face="Verdana">cuskey的时候，如果你能猜测出<font face="Verdana">MyTest和</font><font face="Verdana">cuskey大概</font>代码以及为什么的话，你可以省略<br />
下面的这段内容，^_^.下面给出<font face="Verdana">MyTest和</font><font face="Verdana">cuskey的</font>代码。<br />
</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_104805" onclick="this.style.display='none'; Code_Closed_Text_104805.style.display='none'; Code_Open_Image_104805.style.display='inline'; Code_Open_Text_104805.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"  alt="" /><img id="Code_Open_Image_104805" style="display: none" onclick="this.style.display='none'; Code_Open_Text_104805.style.display='none'; Code_Closed_Image_104805.style.display='inline'; Code_Closed_Text_104805.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"  alt="" /><span id="Code_Closed_Text_104805" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">Code</span><span id="Code_Open_Text_104805" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MyTest<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_25_497_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_25_497_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_25_497_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_25_497_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_25_497_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_25_497_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_25_497_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_25_497_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_25_497_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_25_497_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;KeyNumber<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_64_154_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_64_154_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_64_154_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_64_154_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_64_154_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_64_154_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_64_154_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_64_154_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_64_154_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_64_154_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_94_144_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_94_144_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_94_144_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_94_144_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_94_144_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_94_144_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_94_144_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_94_144_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_94_144_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_94_144_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;value;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;keyNumber&nbsp;;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;MyTest(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;num)<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img id="Codehighlighter1_228_268_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_228_268_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_228_268_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_228_268_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_228_268_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_228_268_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_228_268_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_228_268_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_228_268_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_228_268_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;num;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;GetHashCode()<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img id="Codehighlighter1_320_365_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_320_365_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_320_365_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_320_365_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_320_365_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_320_365_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_320_365_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_320_365_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_320_365_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_320_365_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;keyNumber&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">;<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">override</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Equals(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;obj)<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img id="Codehighlighter1_423_491_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_423_491_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_423_491_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_423_491_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_423_491_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_423_491_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_423_491_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_423_491_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_423_491_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_423_491_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;keyNumber&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;((MyTest)obj).keyNumber;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;cuskey<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img id="Codehighlighter1_520_764_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_520_764_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_520_764_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_520_764_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_520_764_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_520_764_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_520_764_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_520_764_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_520_764_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_520_764_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;keyNumber;<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;KeyNumber<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img id="Codehighlighter1_590_680_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_590_680_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_590_680_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_590_680_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_590_680_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_590_680_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_590_680_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_590_680_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_590_680_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_590_680_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img id="Codehighlighter1_620_670_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_620_670_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_620_670_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_620_670_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_620_670_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_620_670_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_620_670_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_620_670_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_620_670_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_620_670_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;value;<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;cuskey(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n)<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img id="Codehighlighter1_718_758_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_718_758_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_718_758_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_718_758_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_718_758_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_718_758_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_718_758_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_718_758_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_718_758_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_718_758_Open_Text"><span style="color: #000000">{&nbsp;<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyNumber&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n;&nbsp;<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></span></div>
<p>好了，当大家看完这两个自定义的类后，我想很大部分人能通过这两个类的区别可以判断出为什么上面的显示结果会是这样的，下面我俩讲解一下。<br />
<font face="Verdana">MyTest和</font><font face="Verdana">cuskey</font>的最大的区别就在于<font face="Verdana">MyTest重写了<font face="Verdana">GetHashCode()方法，而<font face="Verdana">cuskey</font>没有重写<font face="Verdana">GetHashCode()方法</font>，我们都知道net的类型最后都是要继承Object类了，也就是说<font face="Verdana">cuskey</font>是使用Object的<font face="Verdana">GetHashCode()方法，它的每个实例的hashcode的算法都是继承自Object，而<font face="Verdana">MyTest重写了<font face="Verdana">GetHashCode()方法</font></font>，因此<font face="Verdana">MyTest</font>的每个实例的hashcode的算法都是来自重写后的算法。<br />
如上所说，<font face="Verdana">cuskey</font>的每个实例的hashcode是不一样的(Object的<font face="Verdana">GetHashCode()所采用的算法大家有兴趣可以看看</font>)，而<font face="Verdana">MyTest</font>的每个实例的hashcode的算法是依赖其成员<font face="Verdana">keyNumber</font>的值，因此只要<font face="Verdana">keyNumber</font>的值相同，我们就认为其hashcode相同。以上我们对这两个自定义的类进行分析，下面我们回到HashTable上。<br />
最开始我们说HashTable用于处理和表现类似key/value的键值对，Hashtable 对象由包含集合元素的存储桶组成。存储桶是 Hashtable 中各元素的虚拟子组，与大多数集合中进行的搜索和检索相比，存储桶可令搜索和检索更为便捷。每一存储桶都与一个哈希代码关联，该哈希代码是使用哈希函数生成的并基于该元素的键。哈希函数是基于键返回数值哈希代码的算法。键是正被存储的对象的某一属性的值。哈希函数必须始终为相同的键返回相同的哈希代码。Hashtable 中用作元素的每一对象必须能够使用<font face="Verdana">GetHashCode()</font>方法的实现为其自身生成哈希代码。在将一个对象添加到 HashTable时，它被存储在存储桶中，该存储桶与匹配该对象的哈希代码的哈希代码关联。在 HashTable内搜索一个值时，将为该值生成哈希代码，并且搜索与该哈希代码关联的存储桶。我们这里<font face="Verdana">MyTest和</font><font face="Verdana">cuskey的<font face="Verdana">GetHashCode()</font>方法的实现原理不同，直接导致查找的结果不同。<br />
这样上面的例子就不难解释了，注意<font face="Verdana">key4的那两句运行的话是回报错的哦，应该很简单，就是已经包含这样的key。</font></font></font></font></font></p>
<p></font>HashTable是个很重要的数据结构，里面哈希函数的实现是最重要的。大家有时间可以研究一下，参考《数据结构》。<br />
</p>
<div class="cnblogs_code"><span style="color: #008080">1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;m&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;m&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">5</span><span style="color: #000000">;&nbsp;m</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ht.Add(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;cuskey(m),&nbsp;m);<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img id="Codehighlighter1_58_244_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_58_244_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_58_244_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_58_244_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_58_244_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_58_244_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_58_244_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_58_244_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_58_244_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_58_244_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">[{Collections.cuskey}]:1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{Collections.cuskey}]:&nbsp;4&nbsp;&nbsp;[{Collections.cuskey}]:2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{Collections.cuskey}]:3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[{Collections.cuskey}]:&nbsp;0&nbsp;&nbsp;<br />
</span><span style="color: #008080">4</span><span style="color: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span></div>
<p>看看上面的代码，注释部分就是存储在HashTable的顺序，为什么与insert的顺序不同呢？待续。。。</p>
<p>&nbsp;</p>
 <img src ="http://sscli.cnblogs.comaggbug/1234560.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41273/" target="_blank">[新闻]中国互联网历史上最伟大的产品TOP10（二）</a>]]></description></item><item><title>数据结构 : Hash Table [II]</title><link>http://www.cnblogs.com/lucifer1982/archive/2008/07/03/1234431.html</link><dc:creator>Angel Lucifer</dc:creator><author>Angel Lucifer</author><pubDate>Wed, 02 Jul 2008 21:35:00 GMT</pubDate><guid>http://www.cnblogs.com/lucifer1982/archive/2008/07/03/1234431.html</guid><description><![CDATA[摘要: Hash Table 给我们带来了 O(1) 的插入，删除和查找性能。 <br>我们应当如何使用？ <br>它实现的原理是什么？ <br>又该如何实现呢？ <br>这篇文章将尝试着对其做出解答。&nbsp;&nbsp;<a href='http://www.cnblogs.com/lucifer1982/archive/2008/07/03/1234431.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1234431.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41271/" target="_blank">[新闻]盖茨官方否认天价租楼看奥运 纯属地产商炒作</a>]]></description></item><item><title>ValueTpye boxing及虚方法重写及CallVirt指令实现解析</title><link>http://www.cnblogs.com/lbq1221119/archive/2008/06/24/1229074.html</link><dc:creator>lbq1221119</dc:creator><author>lbq1221119</author><pubDate>Tue, 24 Jun 2008 08:59:00 GMT</pubDate><guid>http://www.cnblogs.com/lbq1221119/archive/2008/06/24/1229074.html</guid><description><![CDATA[摘要: 问题的提出，是源自Justin提出的一个case里面的一个问题，讨论了n久没得到一个答案，昨天justin周一早上一起来就又回忆起了这个问题，看来一直把这个问题放在脑子里面没有放下，佩服啊佩服 ^_^ 遂决定深入研究一番，下面是问题的提出：Boxed value typeIn C#, the value type instance having pure user data is resided &nbsp;&nbsp;<a href='http://www.cnblogs.com/lbq1221119/archive/2008/06/24/1229074.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1229074.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41270/" target="_blank">[新闻]2008年7月24日IT博客精选</a>]]></description></item><item><title>数据结构 : Hash Table [I]</title><link>http://www.cnblogs.com/lucifer1982/archive/2008/06/18/1224319.html</link><dc:creator>Angel Lucifer</dc:creator><author>Angel Lucifer</author><pubDate>Tue, 17 Jun 2008 16:46:00 GMT</pubDate><guid>http://www.cnblogs.com/lucifer1982/archive/2008/06/18/1224319.html</guid><description><![CDATA[摘要: Hash Table 给我们带来了 O(1) 的插入，删除和查找性能。<br>我们应当如何使用？<br>它实现的原理是什么？<br>又该如何实现呢？<br>这篇文章将尝试着对其做出解答。&nbsp;&nbsp;<a href='http://www.cnblogs.com/lucifer1982/archive/2008/06/18/1224319.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1224319.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41269/" target="_blank">[新闻]TOM在线与Joost正式组建合资公司</a>]]></description></item><item><title>WinDbg+SOS：Web服务器High CPU Hang（100%）实例分析</title><link>http://www.cnblogs.com/lbq1221119/archive/2008/06/17/1224301.html</link><dc:creator>lbq1221119</dc:creator><author>lbq1221119</author><pubDate>Tue, 17 Jun 2008 15:36:00 GMT</pubDate><guid>http://www.cnblogs.com/lbq1221119/archive/2008/06/17/1224301.html</guid><description><![CDATA[摘要: 下午，msn上面一个朋友发了一个dump文件过来，说是Web服务器的CPU使用率在100%，找不到问题在什么地方，让帮忙看看，遂让把dump文件传过来，找找问题出在哪儿。 Framework2.0，Windows 2k的OS。 加载了Dump文件之后，接着加载2.0版本的SOS扩展调试模块： .load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\S&nbsp;&nbsp;<a href='http://www.cnblogs.com/lbq1221119/archive/2008/06/17/1224301.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1224301.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41268/" target="_blank">[新闻]财富:谷歌副总裁称其新闻搜索值1亿美元</a>]]></description></item><item><title>数据结构 : 堆之外传</title><link>http://www.cnblogs.com/lucifer1982/archive/2008/06/13/1218559.html</link><dc:creator>Angel Lucifer</dc:creator><author>Angel Lucifer</author><pubDate>Thu, 12 Jun 2008 19:23:00 GMT</pubDate><guid>http://www.cnblogs.com/lucifer1982/archive/2008/06/13/1218559.html</guid><description><![CDATA[摘要: 优先级队列是仅允许访问最小项的基本数据结构。<br>这篇文章将讨论支持优先级队列数据结构的一种实现，即著名的二叉堆（Binary Heap）。<br>如无特别提及，本文均简称其为堆。<br>堆支持最坏情况对对数时间的新项插入和最小项删除，而具体实现则使用我们最熟知的数组。&nbsp;&nbsp;<a href='http://www.cnblogs.com/lucifer1982/archive/2008/06/13/1218559.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1218559.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41267/" target="_blank">[新闻]Ubuntu创始人呼吁开发Linux桌面软件对抗苹果</a>]]></description></item><item><title>并发数据结构 : SpinWait</title><link>http://www.cnblogs.com/lucifer1982/archive/2008/06/01/1211471.html</link><dc:creator>Angel Lucifer</dc:creator><author>Angel Lucifer</author><pubDate>Sat, 31 May 2008 18:20:00 GMT</pubDate><guid>http://www.cnblogs.com/lucifer1982/archive/2008/06/01/1211471.html</guid><description><![CDATA[摘要: 老实说，没有哪个开发人员愿意在其编码时还要考虑线程同步。更糟糕的情况是，编写线程同步代码一点也不好玩。稍一不慎，就会导致共享资源状态不一致，从而引发程序未预期行为。此外，当我们添加线程同步代码时还会导致程序运行变慢，损害性能和可伸缩性。从这点上来看，线程同步简直一无是处。可惜，这也是现实生活中必要的一部分。尤其在多核CPU成为主流的今天。&nbsp;&nbsp;<a href='http://www.cnblogs.com/lucifer1982/archive/2008/06/01/1211471.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1211471.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41266/" target="_blank">[新闻]央视国际联手微软打造数字奥运媒体平台</a>]]></description></item><item><title>在RedHat Enterprise 4 上安装 Mono1.9 （四） </title><link>http://www.cnblogs.com/xingzhixp/archive/2008/05/29/monorhel44.html</link><dc:creator>行知</dc:creator><author>行知</author><pubDate>Thu, 29 May 2008 12:14:00 GMT</pubDate><guid>http://www.cnblogs.com/xingzhixp/archive/2008/05/29/monorhel44.html</guid><description><![CDATA[摘要: 这篇文章介绍了Oracle Instant client在linux上的安装和配置，并且说明Mono和Oracle数据互连互通的问题。&nbsp;&nbsp;<a href='http://www.cnblogs.com/xingzhixp/archive/2008/05/29/monorhel44.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1210237.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41265/" target="_blank">[新闻]Google在线百科工具Knol今日正式上线</a>]]></description></item><item><title>在RedHat Enterprise 4 上安装 Mono1.9 （三）</title><link>http://www.cnblogs.com/xingzhixp/archive/2008/05/26/monorhel43.html</link><dc:creator>行知</dc:creator><author>行知</author><pubDate>Mon, 26 May 2008 15:53:00 GMT</pubDate><guid>http://www.cnblogs.com/xingzhixp/archive/2008/05/26/monorhel43.html</guid><description><![CDATA[摘要: 今天很顺利的移植我们的一个BS系统到Linux。主要的功能可以实现，但是也有一些问题。&nbsp;&nbsp;<a href='http://www.cnblogs.com/xingzhixp/archive/2008/05/26/monorhel43.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1208024.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41264/" target="_blank">[新闻]马云致信阿里巴巴全体员工号召准备过冬</a>]]></description></item><item><title>宝刀不老：Flash歌曲播放网站MP3地址隐藏机制完全破解</title><link>http://www.cnblogs.com/lbq1221119/archive/2008/05/24/1206724.html</link><dc:creator>lbq1221119</dc:creator><author>lbq1221119</author><pubDate>Sat, 24 May 2008 15:36:00 GMT</pubDate><guid>http://www.cnblogs.com/lbq1221119/archive/2008/05/24/1206724.html</guid><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">晚上，小落</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">给推荐了一首非常好听的</SPAN><SPAN lang=EN-US>Folk</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">名谣，说是网上很难找到的。:)给了一个地址：</SPAN><SPAN lang=EN-US><A href="http://www.neocha.com/naivete/music!1657.html">http://www.neocha.com/naivete/music!1657.html</A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">听了之后，很是喜欢这种风格。然后</SPAN><SPAN lang=EN-US>baidu</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了一个下载地址发给她，说是这个</SPAN><SPAN lang=EN-US>flash</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>MP3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的地址，后来非要让我如何找到的</SPAN><SPAN lang=EN-US>….</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">冂冏囧</SPAN><SPAN lang=EN-US>….</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只好拾起尘封了</SPAN><SPAN lang=EN-US>n</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">久的</SPAN><SPAN lang=EN-US>hack</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术</SPAN><SPAN lang=EN-US>…</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首先查看</SPAN><SPAN lang=EN-US>Page Source</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，找到相关的一段：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US>&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"><SPAN lang=EN-US>codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="280" height="277" id="musicMovie" align="middle"&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; mso-para-margin-left: 4.0gd"><SPAN lang=EN-US>&lt;param name="movie" </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt; mso-para-margin-left: 4.0gd"><SPAN lang=EN-US style="COLOR: blue">value="/-/flash/music_player_dq.v28.swf?id=1657&amp;un=naivete"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;param name="quality" value="high"&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;param name="wmode" value="transparent"&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;embed src="/-/flash/music_player_dq.v28.swf?id=1657&amp;un=naivete" quality="high"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: 21pt; mso-para-margin-left: 4.0gd"><SPAN lang=EN-US>wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; mso-para-margin-left: 6.0gd"><SPAN lang=EN-US>type="application/x-shockwave-flash" width="280" height="277" </SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; mso-para-margin-left: 6.0gd"><SPAN lang=EN-US>name="musicMovie"&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US>&lt;/embed&gt;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US>&lt;/object&gt;<SPAN style="mso-tab-count: 1"> </SPAN></SPAN></P><PRE><SPAN lang=EN-US><FONT face=宋体><SPAN style="mso-tab-count: 11">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;/<SPAN class=end-tag>object</SPAN>&gt;</FONT></SPAN></PRE>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初步猜想，恩，</SPAN><SPAN lang=EN-US>MP3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的相关的信息保存在一个</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件里面，只需要找到这个</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，然后找到里面的</SPAN><SPAN lang=EN-US>mp3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的对应地址就</SPAN><SPAN lang=EN-US>ok</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。这也是类似的网站经常使用的技术。。。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据上面的</SPAN><SPAN lang=EN-US>object</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的信息，拼起来了这个地址然后打开：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><A href="http://www.neocha.com/-/flash/music_player_dq.v28.swf?id=1657&amp;un=naivete">http://www.neocha.com/-/flash/music_player_dq.v28.swf?id=1657&amp;un=naivete</A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">恩，这个是一个</SPAN><SPAN lang=EN-US>flash</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，初步思路是获取到这个</SPAN><SPAN lang=EN-US>flash</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，然后反编译一下，看看是读取的哪个地方的</SPAN><SPAN lang=EN-US>MP3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>URL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">就</SPAN><SPAN lang=EN-US>ok</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">了。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">抄起迅雷，添加下载信息，直接填上这个链接，把这个</SPAN><SPAN lang=EN-US>flash</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下载下来。下载之后得到这个文件名的东西：</SPAN><SPAN lang=EN-US>music_player_dq.widget.v26.swf</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">抄起闪客精灵，反编译之</SPAN><SPAN lang=EN-US>…</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后查看一共</SPAN><SPAN lang=EN-US>21</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个动作的</SPAN><SPAN lang=EN-US>Script</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">脚本。。。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功夫不负有心人，在名称为</SPAN><SPAN lang=EN-US>sprite64</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的动作脚本中发现了比较敏感的东西：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>function loadXMl()</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>myxml = new com.makeit.xmlClass("music_playlist.xml");<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>var _l2 = new Object();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>function xmlComplete(albumArr, musicArray, parameterArr)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>com.makeit.musicDocument.thisObj.albumArr = albumArr.slice();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>com.makeit.musicDocument.thisObj.musicArray = musicArray.slice();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>com.makeit.musicDocument.thisObj.parameterObj = parameterArr;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>com.makeit.musicDocument.thisObj.setFunc();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} // End of the function</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>myxml.addListener(albumArr);</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>} // End of the function</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">啊哈，</SPAN><SPAN lang=EN-US>Load Xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。而且</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的名称都有了，恩，立马蹭蹭蹭的构造了几个</SPAN><SPAN lang=EN-US>xml</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的路径：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><A href="http://www.neocha.com/naivete/music_playlist.xml">http://www.neocha.com/naivete/music_playlist.xml</A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><A href="http://www.neocha.com/-/flash/">http://www.neocha.com/-/flash/</A>music_playlist.xml<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><A href="http://www.neocha.com/-/xml/music_playlist.xml">http://www.neocha.com/-/xml/music_playlist.xml</A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue">….<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">啥都没有。。</SPAN><SPAN lang=EN-US>sad</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。。不泄馁，继续寻寻觅觅，终于，在这个动作的下一个动作里面发现了感兴趣的东西：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>function loadXml()</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>static function onLoad(success)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (success)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>com.makeit.xmlClass.thisObj.parseAlbum_fun();</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} // end if</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} // End of the function</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (_root.id == undefined)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>id = "3378";<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} // end if</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>if (_root.un == undefined)</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>un = "banana_monkey";<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>} // end if</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>myxml.load("http://www.neocha.com/-/xml/music_player.jsp?id=" + _root.id + <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue">"&amp;un=" + _root.un + "&amp;a=" + Math.random() * 9999);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>} // End of the function</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">看到这里俺就开始得意了，胜利就在眼前了，迅速构造一地址：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue">http://www.neocha.com/-/xml/music_player.jsp?id=3378&amp;un= banana_monkey&amp;a=9999<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</SPAN><SPAN lang=EN-US style="COLOR: black">IE</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开去，结果很差很失望，打不开，找不到这个地址。恩，转变思路，这个</SPAN><SPAN lang=EN-US style="COLOR: black">jsp</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件应该是负责后台的某些逻辑处理的，关掉</SPAN><SPAN lang=EN-US style="COLOR: black">IE</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，迅雷上。</SPAN><SPAN lang=EN-US style="COLOR: black"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">果然，出现重大转机，下载得到的文件打开如下：</SPAN><SPAN lang=EN-US style="COLOR: black"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black">&lt;?xml version='1.0' encoding='UTF-8'?&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black">&lt;music-player&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA">&lt;albums&gt;<SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;album&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;album-id&gt;0&lt;/album-id&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;album-title&gt;</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未分类</SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA">&amp;nbsp;&lt;/album-title&gt;<SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;album-picture&gt;http://www.neocha.com/-/res/banana_monkey/20080414131625686093_t.jpg&lt;/album-picture&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;album-link&gt;http://www.neocha.com/banana_monkey/record!0.html&lt;/album-link&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=EN-US style="COLOR: black">&lt;musics&gt;<SPAN style="mso-tab-count: 4">&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; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-id&gt;3378&lt;/music-id&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-title&gt;Baby in Red (Lovely Version)&lt;/music-title&gt;<SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-picture&gt;http://www.neocha.com/-/res/banana_monkey/20080414131625686093_o.jpg&lt;/music-picture&gt;<SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=EN-US style="COLOR: blue"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-file&gt;http://www1.neocha.com:90/-/res/banana_monkey/20080414131625702094.mp3&lt;/music-file&gt;<SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-link&gt;http://www.neocha.com/banana_monkey/music!3378.html&lt;/music-link&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-artist&gt;Banana Monkey&amp;nbsp;&lt;/music-artist&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-album&gt;</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">未分类</SPAN><SPAN lang=EN-US style="COLOR: black">&amp;nbsp;&lt;/music-album&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-corp&gt;&amp;nbsp;&lt;/music-corp&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-publish&gt;&amp;nbsp;&lt;/music-publish&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-genres&gt;Rock</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">摇滚</SPAN><SPAN lang=EN-US style="COLOR: black">,8-Bit8</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">比特</SPAN><SPAN lang=EN-US style="COLOR: black">&amp;nbsp;&lt;/music-genres&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-comment-cnt&gt;0&lt;/music-comment-cnt&gt;<SPAN style="mso-tab-count: 5">&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; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-comment-url&gt;http://www.neocha.com/banana_monkey/music!3378.html#comment&lt;/music-comment-url&gt;<SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: black">&lt;music-favorite-cnt&gt;0&lt;/music-favorite-cnt&gt;<SPAN style="mso-tab-count: 4">&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; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-favorite-url&gt;http://www.neocha.com/banana_monkey/music!3378.html&lt;/music-favorite-url&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-vote-cnt&gt;0&lt;/music-vote-cnt&gt;<SPAN style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-vote-url&gt;http://www.neocha.com/banana_monkey/music!3378.html&lt;/music-vote-url&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;music-favorited&gt;2&lt;/music-favorited&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: black">&lt;/music&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;/musics&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;/album&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;/albums&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;username&gt;banana_monkey&lt;/username&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA">&lt;user-url&gt;&amp;nbsp;&lt;/user-url&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=EN-US style="COLOR: black">&lt;user-picture&gt;&amp;nbsp;&lt;/user-picture&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="COLOR: black"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA">&lt;default-album-id&gt;0&lt;/default-album-id&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;!-- </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">默认播放的专辑</SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"> --&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;auto-start&gt;1&lt;/auto-start&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;!-- 1</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">自动</SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"> 0 </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">手动</SPAN><SPAN style="COLOR: black; mso-ansi-language: DA"> </SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">播放</SPAN><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA">--&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;color1&gt;#000000&lt;/color1&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;color2&gt;#999999&lt;/color2&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;color3&gt;#FFFF00&lt;/color3&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>&lt;color4&gt;#FFFF00&lt;/color4&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=DA style="COLOR: black; mso-ansi-language: DA"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">&lt;/music-player&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">&lt;script src="http://www.neocha.com/-/js/urchin.js" type="text/javascript"&gt;&lt;/script&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">&lt;script type="text/javascript"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">_uacct = "UA-828246-1";<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">urchinTracker();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black">&lt;/script&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">看到没，看到</SPAN><SPAN lang=EN-US style="COLOR: black">MP3</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个后缀的时候，第一感觉找到了。</SPAN><SPAN lang=EN-US style="COLOR: black"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不过很遗憾，下载了这首</SPAN><SPAN lang=EN-US style="COLOR: black">MP3</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之后发现，是一首</SPAN><SPAN lang=EN-US style="COLOR: black">Rock…<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">感觉世界一下灭了。。这个时候决定转变思路。。</SPAN><SPAN lang=EN-US style="COLOR: black"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; mso-para-margin-left: 2.0gd"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">抄起嗅探工具，好多年前的</SPAN><SPAN lang=EN-US style="COLOR: black">winsock</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也不在身边了，唉，只好问</SPAN><SPAN lang=EN-US style="COLOR: black">liunice</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">要一个</SPAN><SPAN lang=EN-US style="COLOR: black">ie</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的插件，装了起来</SPAN><SPAN lang=EN-US style="COLOR: black">….<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">看来又要分析</SPAN><SPAN lang=EN-US style="COLOR: black">IE</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的数据包了</SPAN><SPAN lang=EN-US style="COLOR: black">…<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: black"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">安装插件的时候，仔细的看了下载的这个文件的格式，忽然灵光一现，</SPAN><SPAN lang=EN-US style="COLOR: blue">music</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签下面的不就是动作</SPAN><SPAN lang=EN-US style="COLOR: blue">script</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的好多的参数的么。。豁然开朗了：</SPAN><SPAN lang=EN-US style="COLOR: blue"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个文件就是上面的那个</SPAN><SPAN lang=EN-US style="COLOR: blue">jsp</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件根据参数读取数据库动态生成的</SPAN><SPAN lang=EN-US style="COLOR: blue">flash</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US style="COLOR: blue">MP3</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件地址的</SPAN><SPAN lang=EN-US style="COLOR: blue">xml</SPAN><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">配置文件。</SPAN><SPAN lang=EN-US style="COLOR: blue"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">找到了</SPAN><SPAN lang=EN-US>key Point</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: red">&lt;music-link&gt;http://www.neocha.com/banana_monkey/music!3378.html&lt;/music-link&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开这个链接，链接的格式是如此的熟悉，打开之后，出现了刚才的那个下载的熟悉的</SPAN><SPAN lang=EN-US>banana</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</SPAN><SPAN lang=EN-US>Rock</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</SPAN><SPAN lang=EN-US>oh yeah</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">！</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">搞定！</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回到开头的最开始安小落</SPAN><SPAN lang=EN-US>MM</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">发的</SPAN><SPAN lang=EN-US>URL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><A href="http://www.neocha.com/naivete/music!1657.html">http://www.neocha.com/naivete/music!1657.html</A></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">根据这个</SPAN><SPAN lang=EN-US>URL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来构造这首</SPAN><SPAN lang=EN-US>MP3</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: blue">http://www.neocha.com/-/xml/music_player.jsp?id=3378&amp;un= banana_monkey&amp;a=9999<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">两个地址相加，得到最终地址：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: red">http://www.neocha.com/-/xml/music_player.jsp?id=1657&amp;un=naivete&amp;a=9999<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">迅雷下载这个</SPAN><SPAN lang=EN-US>URL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在</SPAN><SPAN lang=EN-US>&lt;music-file&gt;</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标签找到了想要的东西：</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US style="COLOR: red">&lt;music-file&gt;http://www1.neocha.com:90/-/res/naivete/20071124214646754207.mp3&lt;/music-file&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">呵呵，剩下的事情，就是永久的拥有这首好听的“穿格子衬衫的</SPAN><SPAN lang=EN-US>teddy</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">熊”了。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">恩，还有，破解和这个网站整个的</SPAN><SPAN lang=EN-US>flash</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">播放音乐隐藏真实地址是如何实现的。。不过这不是主要目的。。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US>lbq1221119 5/24/2008 11:26:19 PM </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首发</SPAN><SPAN lang=EN-US>lbq1221119.cnblogs.com</SPAN></P><img src ="http://sscli.cnblogs.comaggbug/1206724.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41263/" target="_blank">[新闻]comScore 公布 6 月美国 TOP10 社会化网络排名</a>]]></description></item><item><title>在RedHat Enterprise 4 上安装 Mono1.9 （二）</title><link>http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel42.html</link><dc:creator>行知</dc:creator><author>行知</author><pubDate>Sat, 24 May 2008 10:00:00 GMT</pubDate><guid>http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel42.html</guid><description><![CDATA[摘要: 最近由于项目的需要，希望能够在Linux系统上面运行我们的.Net项目，因此作了一些移植的尝试。也希望能过和园子里的朋友一起分享移植和使用Mono的经验。这篇文章说明了Apache的配置过程。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel42.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1206506.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41262/" target="_blank">[新闻]万众期待 iPhone 3G 16GB上市两天破万</a>]]></description></item><item><title>在RedHat Enterprise 4 上安装 Mono1.9 （一）</title><link>http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel41.html</link><dc:creator>行知</dc:creator><author>行知</author><pubDate>Sat, 24 May 2008 09:14:00 GMT</pubDate><guid>http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel41.html</guid><description><![CDATA[摘要: 最近由于项目的需要，希望能够在Linux系统上面运行我们的.Net项目，因此作了一些移植的尝试。也希望能过和园子里的朋友一起分享移植和使用Mono的经验。&nbsp;&nbsp;<a href='http://www.cnblogs.com/xingzhixp/archive/2008/05/24/monorehel41.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1206487.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41261/" target="_blank">[新闻]张宝全正式声明中国版HD-DVD涉嫌盗用EVD技术</a>]]></description></item><item><title>《博客园精华集》，CLR/C#分册征求意见稿</title><link>http://www.cnblogs.com/anytao/archive/2008/05/20/lovechina_bestclr_content.html</link><dc:creator>Anytao</dc:creator><author>Anytao</author><pubDate>Mon, 19 May 2008 17:19:00 GMT</pubDate><guid>http://www.cnblogs.com/anytao/archive/2008/05/20/lovechina_bestclr_content.html</guid><description><![CDATA[摘要: 自《你必须知道的.NET》出版以来，已经有一个多月没有和大家近距离的在这里分享了，惭愧之余，很高兴收到《博客园精华集编委会》的邀请通知，而且从dudu得知，《博客园精华集》算是博客园的公益性活动。作为博客园的忠实粉丝，我没有任何理由拒绝这样的邀请，欣然成为编委会的一份子了。目前，我将和张子阳负责CLR/C#分册的主编工作，由读者到作者，由作者到编者，每次都是一个挑战，但是我会尽职做好每个角色，服务于大家。 <br>此次，《博客园精华集》肯定是博客园历史上举足轻重的一次尝试，汇集了中国最优秀技术人才的地方，应该为更多的技术人次提供有益的粮食，用dudu的话说，他要做“为程序员打杂的站长”。同样的道理，《博客园精华集》也要做“为程序员成长的手册”。关于《博客园精华集》的定位、编审以及出版，相信此后的一段时间都会逐步明晰，编委会的各个成员也将本着探索的角度不断丰富精华集的编审，这是我们的共同理想。&nbsp;&nbsp;<a href='http://www.cnblogs.com/anytao/archive/2008/05/20/lovechina_bestclr_content.html'>阅读全文</a><img src ="http://sscli.cnblogs.comaggbug/1202952.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41259/" target="_blank">[新闻]百度TV：高效率的“奥运事件眼球捕手”</a>]]></description></item><item><title>(纪念国殇).Net Hosting:托管远程线程插入及非托管dll线程插入实现</title><link>http://www.cnblogs.com/lbq1221119/archive/2008/05/19/1202533.html</link><dc:creator>lbq1221119</dc:creator><author>lbq1221119</author><pubDate>Mon, 19 May 2008 06:10:00 GMT</pubDate><guid>http://www.cnblogs.com/lbq1221119/archive/2008/05/19/1202533.html</guid><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">线程插入，在托管平台上面，是不能直接实现的。如果想通过托管平台在一个非托管的</SPAN><SPAN lang=EN-US>Process</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面插入执行一段托管代码，就需要在非托管</SPAN><SPAN lang=EN-US>Process</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面启动</SPAN><SPAN lang=EN-US>CLR</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。我们可以以此为突破口，通过直接调用</SPAN><SPAN lang=EN-US>CLR</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供的功能接口来执行托管代码。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最终效果，是实现了非托管平台下托管代码执行的混合型线程插入。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在开发</SPAN><SPAN lang=EN-US>CLR</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的时候，</SPAN><SPAN lang=EN-US>MS</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</SPAN><SPAN lang=EN-US>CLR</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作为一个</SPAN><SPAN lang=EN-US>COM</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务器放到了一个</SPAN><SPAN lang=EN-US>DLL</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-famil