﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-heavensay</title><link>http://www.blogjava.net/heavensay/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 02 May 2026 15:02:11 GMT</lastBuildDate><pubDate>Sat, 02 May 2026 15:02:11 GMT</pubDate><ttl>60</ttl><item><title>迟来的年终总结(2014-2015)</title><link>http://www.blogjava.net/heavensay/archive/2016/02/14/429315.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Sat, 13 Feb 2016 16:28:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2016/02/14/429315.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/429315.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2016/02/14/429315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/429315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/429315.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;正好2016年的春假结束了，趁这个时间总结一下前面两年的工作情况。<br />
&nbsp; &nbsp; 2014年之前一直做的是java后台开发，工作的内容整体感觉是不难的，平常也都有自我学习源码、框架之类的。2014-2015年这两年跟随移动互联网的潮流，转作了android开发，负责android团队。在一家公司一直做后台近3年，也的确对相同的业务没什么激情了，工作性质的转变还挺不错。回首这两年时间，心情到是有些复杂。<br />
&nbsp;&nbsp;&nbsp;&nbsp;2014年初刚转到android组的时候，对于android的了解是零；另外也是头一次管理团队，心里也是有些忐忑。进入android团队没2个月，恰逢android版本的整体升级(参考别组的产品代码来改造升级)，我自己拦了一部分核心业务来做。最初的想法是籍着这个升级的项目来了解andorid代码，顺便熟悉业务，之后就是暗无天日2个多月的忙碌。最后产品是出来了，但是发现对于android知识和业务的了解的还是不够，之间还一度感觉精神都抑郁了，想想也是够呛的。这两个月之前也算是对产品代码有了一定了解，另外对于团队间的运作和管理也有了一定的熟悉，磕磕碰碰的度过了最艰难的时期。这2个月的时间对我说，算是这两年中工作上最重要的一个时期。回过头来看，其实这两个月自己时间的安排不太合理，每天小组的琐事挺多，分去了我一半精力，另一半又赶产品升级的事；的确是有点顾此失彼。当时可能还是选择一些小模块来熟悉代码，会比较合理。<br />
&nbsp; &nbsp; 度过了最难的2个月后，工作和小组管理也步上正规。我们部门是b2b，公司内部的资源和分散，经常一个模块的功能，需要3,4个小组一起来处理。又经过好长时间，熟悉流程，并跟其他小组人来完善流程，也逐步融入团队，适应andorid小组的节奏。这个事在2015年还在不断的进行中。2014年中还是出过几件有意思的事，小组成员离职、与其他组人员沟通出问题遭投诉，android人员招聘等等，细节就不一一道来了。<br />
&nbsp; &nbsp; 2015年感觉相对2014年是平稳很多，毕竟适应了1年的小组节奏了。2015年工作主要在于项目管理和小组的管理上。每周组织小组成员的知识培训，制定代码规范，优化外部流程等等。这一年的出差倒是需要提一下，有过几次销售让出差说是给客户技术解答，最后发现一句话都不用说；后面出差的时候我都会再三确认出差的具体事由。总体来说去外面出差还是挺不错的，跟客户了解项目需求、技术解答等也是挺有意思、挺锻炼人的，如有时间多，还可以顺便在当地玩玩。<br />
&nbsp; &nbsp; 两年下来，可惜的是对于android的了解，只是个皮毛。2014兼顾开发和管理，对于andorid技术的专研不深也就算了；2015年其实有很多时间可以加深android的了解，可惜由于种种原因都没能花时间进去。这两年的收获也是不小，由一个纯粹的开发，到项目管理、团队管理的职责转变，也使自己的眼界开阔了不少；对于热门的移动行业也有一定的了解；andorid小组最初由7个人，一度达到15个人，跟随着小组一起成长。2016年工作又是有变动，重新回到后台开发，之后可能出差会多些，还要学学技术包装，哎感觉跟技术这条路背道而驰了。2016年已经起航，祝福自己顺利吧!<br />
&nbsp; &nbsp;&nbsp;<img src ="http://www.blogjava.net/heavensay/aggbug/429315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2016-02-14 00:28 <a href="http://www.blogjava.net/heavensay/archive/2016/02/14/429315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery分析纪要</title><link>http://www.blogjava.net/heavensay/archive/2013/10/29/405733.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Tue, 29 Oct 2013 12:18:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2013/10/29/405733.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/405733.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2013/10/29/405733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/405733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/405733.html</trackback:ping><description><![CDATA[&nbsp; &nbsp; &nbsp; &nbsp;本文是对jQuery源码分析的简单纪要。<br /><br /><strong style="font-size: 8pt;">jQuery相关对象内存图</strong><br /><img src="http://www.blogjava.net/images/blogjava_net/heavensay/web-front/jquery-structure.jpg" width="588" height="561" alt="" /><br /><br /><br />&nbsp; &nbsp;&nbsp;<strong>jQuery代码分析纪要：</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、 jQuery一加载进来，就执行匿名函数，进行jQuery的初始化工作，定义jQuery的功能，最后暴露出jQuery和$变量给用户使用。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->(<span style="color: #0000FF; ">function</span>(&nbsp;window,&nbsp;undefined&nbsp;)&nbsp;{<br /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />window.jQuery&nbsp;=&nbsp;window.$&nbsp;=&nbsp;jQuery<br />})(&nbsp;window&nbsp;);</div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、 jQuery功能扩展函数Extend<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->jQuery.extend&nbsp;=&nbsp;jQuery.fn.extend&nbsp;=&nbsp;<span style="color: #0000FF; ">function</span>()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />}</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery提供了2个供用户扩展的函数jQuery.extend和jQuery.fn.extend。</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.extend 用于扩展jQuery自身方法，如jQuery.ajax, jQuery.getJSON等，jQuery.fn.extend则是用于扩展jQuery(...)的方法，从上面的内存图中可以看出，经过jQuery包装后的dom元素，在其原型链上会拥有jQuery.fn.extend扩展的方法。</div><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、 jQuery函数，就是我们平常$('#id')所执行的函数，返回包装过的dom元素<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Define&nbsp;a&nbsp;local&nbsp;copy&nbsp;of&nbsp;jQuery</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;jQuery&nbsp;=&nbsp;<span style="color: #0000FF; ">function</span>(&nbsp;selector,&nbsp;context&nbsp;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;The&nbsp;jQuery&nbsp;object&nbsp;is&nbsp;actually&nbsp;just&nbsp;the&nbsp;init&nbsp;constructor&nbsp;'enhanced'</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;jQuery.fn.init(&nbsp;selector,&nbsp;context,&nbsp;rootjQuery&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;},</div><img src ="http://www.blogjava.net/heavensay/aggbug/405733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2013-10-29 20:18 <a href="http://www.blogjava.net/heavensay/archive/2013/10/29/405733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring加载资源分析</title><link>http://www.blogjava.net/heavensay/archive/2013/10/28/405699.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Sun, 27 Oct 2013 16:12:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2013/10/28/405699.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/405699.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2013/10/28/405699.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/405699.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/405699.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这篇文档是对Spring加载和解析xml文件过程的分析&nbsp;&nbsp;<a href='http://www.blogjava.net/heavensay/archive/2013/10/28/405699.html'>阅读全文</a><img src ="http://www.blogjava.net/heavensay/aggbug/405699.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2013-10-28 00:12 <a href="http://www.blogjava.net/heavensay/archive/2013/10/28/405699.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Js中Prototype、__proto__、Constructor、Object、Function关系介绍</title><link>http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Sun, 20 Oct 2013 15:47:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/405440.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/405440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/405440.html</trackback:ping><description><![CDATA[<div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; font-size: 14px; line-height: 21px;"><div><strong style="font-size: 14px; line-height: 21px;">一 &nbsp; &nbsp;<span style="font-size: 10.5pt; line-height: 1.5;">Prototype、__proto__与</span><span style="font-size: 10.5pt; line-height: 1.5;">Object、Function关系介绍<br /></span></strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function、Object：Js自带的函数对象。</div><div><span style="font-size: 10.5pt; line-height: 1.5;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">prototype,每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(Function.prototype函数对象是个例外，没有prototype属性)。</span></div><div><span style="font-size: 10.5pt; line-height: 1.5;">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">__proto__:</span><span style="font-size: 10.5pt; line-height: 1.5;">每个对象都有一个名为__proto__的内部隐藏属性，指向于它所对应的原型对象</span><span style="font-size: 10.5pt; line-height: 1.5;">(chrome、firefox中名称为__proto__，并且可以被访问到)。</span><span style="font-size: 10.5pt; line-height: 1.5;">原型链正是基于__proto__才得以形成(note：不是基于函数对象的属性prototype)。</span></div></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; font-size: 14px; line-height: 21px;"></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; font-size: 14px; line-height: 21px;">&nbsp; &nbsp; &nbsp; &nbsp;关于上面提到的函数对象，我们来看以下例子，来说明：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000FF; ">var</span>&nbsp;o1&nbsp;=&nbsp;{};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;o2&nbsp;=<span style="color: #0000FF; ">new</span>&nbsp;Object();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">function</span>&nbsp;f1(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;f2&nbsp;=&nbsp;<span style="color: #0000FF; ">function</span>(){}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;f3&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Function('str','console.log(str)');<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f3('aabb');&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;aabb</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Object:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Object);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Function:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Function);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;o1:'+<span style="color: #0000FF; ">typeof</span>&nbsp;o1);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">object</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;o2:'+<span style="color: #0000FF; ">typeof</span>&nbsp;o2);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">object</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;f1:'+<span style="color: #0000FF; ">typeof</span>&nbsp;f1);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;f2:'+<span style="color: #0000FF; ">typeof</span>&nbsp;f2);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;f3:'+<span style="color: #0000FF; ">typeof</span>&nbsp;f3);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span></div><ul style="font-size: 14px; line-height: 21px;"><li><span style="font-size: 10.5pt; line-height: 1.5;">通常我们认为o1、o2是对象，即普通对象；f1、f2、f3为函数。</span></li><li><span style="font-size: 10.5pt; line-height: 1.5;">但是其实函数也是对象，是由Function构造的，</span></li><li><span style="font-size: 10.5pt; line-height: 1.5;">f3这种写法就跟对象的创建的写法一样。</span><span style="font-size: 10.5pt; line-height: 1.5;">f1、f2最终也都像f3一样是有Function这个函数构造出来的</span></li><li><span style="font-size: 10.5pt; line-height: 1.5;">f1、f2、f3为函数对象，Function跟Object本身也是函数对象。</span></li></ul>&nbsp; &nbsp;&nbsp;<span style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">Js中每个对象(null除外)都和另一个对象相关联，</span><span style="font-size: 10.5pt; line-height: 1.5;">通过以下例子跟内存效果图来分析Function、Object、Prototype、__proto__对象</span><span style="font-size: 10.5pt; line-height: 1.5;">间的关系。</span><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">function</span>&nbsp;Animal(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;&nbsp;anim&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Animal();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('***********Animal&nbsp;anim&nbsp;proto*****************');<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Animal.prototype:'&nbsp;+<span style="color: #0000FF; ">typeof</span>&nbsp;Animal.prototype);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">object&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('anim.__proto__===Animal.prototype:'+(anim.__proto__===Animal.prototype));&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Animal.__proto__===Function.prototype:'+(Animal.__proto__===Function.prototype));&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Animal.prototype.__proto__===Object.prototype:'+(Animal.prototype.__proto__===Object.prototype));&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('***********Function&nbsp;proto*****************');<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Function.__proto__:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Function.__proto__);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype.prototype:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype.prototype);&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">undefined</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype.__proto__:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Function.prototype.__proto__);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">object</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.prototype===Function.__proto__:'+(Function.prototype===Function.__proto__));&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('***********Object&nbsp;proto*****************');<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Object.prototype:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Object.prototype);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">object</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('<span style="color: #0000FF; ">typeof</span>&nbsp;Object.__proto__:'+<span style="color: #0000FF; ">typeof</span>&nbsp;Object.__proto__);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">function</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Object.prototype.prototype:'+Object.prototype.prototype);&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">undefied</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Object.prototype.__proto__===<span style="color: #0000FF; ">null</span>:'+(Object.prototype.__proto__===<span style="color: #0000FF; ">null</span>));&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">null</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('***********Function&nbsp;Object&nbsp;&nbsp;proto关系*****************');<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.prototype===Object.__proto__:'+(Function.prototype===Object.__proto__));&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.__proto__===Object.__proto__:'+(Function.__proto__===Object.__proto__));&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.prototype.__proto__===Object.prototype:'+(Function.prototype.__proto__===Object.prototype));&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">********************&nbsp;系统定义的对象Array、Date&nbsp;***************************</span><span style="color: #008000; ">*/</span><br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('**************test&nbsp;Array、Date****************');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;array&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Array();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;date&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Date();<br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('array.__proto__===Array.prototype:'+(array.__proto__===Array.prototype));&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Array.__proto__===Function.prototype:'+(Array.__proto__===Function.prototype));&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('date.__proto__===Date.prototype:'+(date.__proto__===Date.prototype));&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Date.__proto__===Function.prototype:'+(Date.__proto__===Function.prototype));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span></div><br /><span style="font-size: 8pt; line-height: 1.5;"><strong>Function、Object、Prototype、__proto__内存关系图</strong></span><br /><img src="http://www.blogjava.net/images/blogjava_net/heavensay/web-front/8164530.png" width="631" height="643" alt="" /><br /><br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 14px; line-height: 21px;">上面的内存图跟堆栈结构可以参照文章</span><a href="http://www.cnblogs.com/fool/archive/2010/10/07/1845226.html" style="font-size: 14px; line-height: 21px;">Javascript_01_理解内存分配</a>。<br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 14px; line-height: 21px;">堆区图说明：</span><br /><img src="http://www.blogjava.net/images/blogjava_net/heavensay/web-front/35166462.png" width="353" height="237" alt="" />&nbsp;<br /><span style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp; &nbsp;</span><span style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 20px;">&nbsp; &nbsp;</span><span style="font-size: 14px; line-height: 21px;">Function.prototype函数对象图内部表示prototype属性的</span><span style="font-size: 10.5pt; line-height: 1.5;">红色虚框</span><span style="font-size: 10.5pt; line-height: 1.5;">，只是为了说明这个属性不存在。</span></div><div style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; font-size: 14px; line-height: 21px;"><br /><div style="font-size: 14px; line-height: 21px;"><span style="font-size: 10.5pt; line-height: 1.5;">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">&nbsp; &nbsp;&nbsp;</span><strong style="font-size: 10.5pt; line-height: 1.5;">通过上图Function、Object、Prototype关系图中，可以得出一下几点：</strong></div><div style="font-size: 14px; line-height: 21px;"><ol><li><span style="font-size: 14px; line-height: 21px;">所有对象所有对象，包括函数对象的原型链最终都指向了Object.prototype，而Object.prototype.__proto__===null，原型链至此结束。</span></li><li><span style="font-size: 14px; line-height: 21px;">Animal.prototype是一个普通对象。</span></li><li><span style="font-size: 14px; line-height: 21px;">Object是一个函数对象，也是Function构造的，Object.prototype是一个普通对象。</span></li><li><span style="font-size: 14px; line-height: 21px;">Object.prototype.__type__指向null。</span></li><li><span style="font-size: 14px; line-height: 21px;">Function.prototype是一个函数对象，前面说函数对象都有一个显示的prototype属性，但是Function.prototype却没有prototype属性，即Function.prototype.prototype===undefined，所有Function.prototype函数对象是一个特例，没有prototype属性。</span></li><li><span style="font-size: 14px; line-height: 21px;">Object虽是Function构造的一个函数对象，但是Object.prototype没有指向Function.prototype，即Object.prototype!==Function.prototype。</span></li></ol></div><strong style="font-size: 14px; line-height: 21px;"><br />二 &nbsp; &nbsp;Prototype跟Constructor关系</strong><strong style="font-size: 10.5pt; line-height: 1.5;">介绍</strong><br /><div style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 JavaScript 中，每个函数对象都有名为&#8220;prototype&#8221;的属性<span style="font-size: 10.5pt; line-height: 1.5;">(上面提到过Function.prototype函数对象是个例外，没有prototype属性)</span><span style="font-size: 10.5pt; line-height: 1.5;">，用于引用原型对象。此原型对象又有名为&#8220;constructor&#8221;的属性，它反过来引用函数本身。这是一种循环引用（i.e.&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">Animal.prototype.constructor===Animal）。</span></div><div style="font-size: 14px; line-height: 21px;"></div><div style="font-size: 14px; line-height: 21px;"><span style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp;&nbsp;</span><span style="font-size: 10.5pt; line-height: 1.5;">通过以下例子跟内存效果图来分析Prototype、constructor</span><span style="font-size: 10.5pt; line-height: 1.5;">间的关系。</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&nbsp; &nbsp; console.log('**************constructor****************');&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('anim.constructor===Animal:'+(anim.constructor===Animal))&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Animal===Animal.prototype.constructor:'+(Animal===Animal.prototype.constructor))&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Animal.constructor===Function.prototype.constructor:'+(Animal.constructor===Function.prototype.constructor));&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.prototype.constructor===Function:'+(Function.prototype.constructor===Function));&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Function.constructor===Function.prototype.constructor:'+(Function.constructor===Function.prototype.constructor));&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span><br />&nbsp;&nbsp;&nbsp;&nbsp;console.log('Object.prototype.constructor===Object:'+(Object.prototype.constructor===Object));&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;console.log('Object.constructor====Function:'+(Object.constructor===Function));&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">true</span></div><br /><strong style="font-size: 14px; line-height: 21px;"><span data-wiz-span="data-wiz-span" style="font-size: 8pt;">&nbsp;prototype、constructor内存关系图(</span><span style="font-size: 8pt; line-height: 1.5;">在Function、Object、Prototype关系图上加入constructor元素</span><span style="font-size: 8pt; line-height: 1.5;">)：</span></strong><br /><img src="http://www.blogjava.net/images/blogjava_net/heavensay/web-front/8199006.png" width="627" height="646" alt="" /><br /><br /><div style="font-size: 14px; line-height: 21px;">&nbsp; &nbsp; &nbsp; &nbsp; 上图中，红色箭头表示函数对象的原型的constructor所指向的对象。</div><div style="font-size: 14px; line-height: 21px;"><div><ol><li><span style="font-size: 14px; line-height: 21px;">注意Object.constructor===Function；本身Object就是Function函数构造出来的 &nbsp; &nbsp; &nbsp; &nbsp;</span></li><li><span style="font-size: 10.5pt; line-height: 1.5;">如何查找一个对象的constructor，就是在该对象的原型链上寻找碰到的第一个constructor属性所指向的对象。</span></li></ol></div><span style="font-size: 14px; line-height: 25px; font-family: Verdana, Arial, Helvetica, sans-serif;"><div></div><div><strong>参考：</strong></div><div><a href="http://www.cnblogs.com/fool/category/264215.html" style="font-family: 'Microsoft YaHei UI', 'Microsoft YaHei', SimSun, 'Segoe UI', Tahoma, Helvetica, sans-serif, 'Microsoft YaHei', Georgia, Helvetica, Arial, sans-serif, 宋体, PMingLiU, serif; font-size: 10.5pt; line-height: 1.5;">http://www.cnblogs.com/fool/category/264215.html</a>&nbsp;(javascript原理介绍)</div></span><span style="font-size: 14px; line-height: 25px; font-family: Verdana, Arial, Helvetica, sans-serif;"><div><a href="http://www.libuchao.com/2012/05/14/prototypes-in-javascript/">http://www.libuchao.com/2012/05/14/prototypes-in-javascript/</a>&nbsp;(JavaScript 的原型对象 Prototype)</div><div><a href="http://rockyuse.iteye.com/blog/1426510">http://rockyuse.iteye.com/blog/1426510</a>&nbsp;(理解js中的原型链，prototype与__proto__的关系)</div></span></div><br /><br /><br /></div><img src ="http://www.blogjava.net/heavensay/aggbug/405440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2013-10-20 23:47 <a href="http://www.blogjava.net/heavensay/archive/2013/10/20/405440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMX分析3-MXBean及OpenMBean</title><link>http://www.blogjava.net/heavensay/archive/2012/11/27/388202.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Mon, 26 Nov 2012 16:39:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2012/11/27/388202.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/388202.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2012/11/27/388202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/388202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/388202.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp; &nbsp; &nbsp;MXBean跟标准MBean很像，标准MBean需要实现XXXXMBean这样命名的接口，而MXBean则需要实现XXXXMXBean这样命名的接口，也可以在接口上使用注解@MXBean，而不用强制使用XXXMXBean这样的命名格式。但是MXBean有点在于它可以供任何的client，包括remote client访问相关属性和执行相关操作。...&nbsp;&nbsp;<a href='http://www.blogjava.net/heavensay/archive/2012/11/27/388202.html'>阅读全文</a><img src ="http://www.blogjava.net/heavensay/aggbug/388202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2012-11-27 00:39 <a href="http://www.blogjava.net/heavensay/archive/2012/11/27/388202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>class卸载、热替换和Tomcat的热部署的分析</title><link>http://www.blogjava.net/heavensay/archive/2012/11/07/389685.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Wed, 07 Nov 2012 14:29:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2012/11/07/389685.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/389685.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2012/11/07/389685.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/389685.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/389685.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp; &nbsp;这篇文章主要是分析Tomcat中关于热部署和JSP更新替换的原理，在此之前先介绍class的热替换和class的卸载的原理。一 class的热替换ClassLoader中重要的方法loadClass &nbsp; &nbsp; &nbsp; ClassLoader.loadClass(...) 是ClassLoader的入口点。当一个类没有指明用...&nbsp;&nbsp;<a href='http://www.blogjava.net/heavensay/archive/2012/11/07/389685.html'>阅读全文</a><img src ="http://www.blogjava.net/heavensay/aggbug/389685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2012-11-07 22:29 <a href="http://www.blogjava.net/heavensay/archive/2012/11/07/389685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMX分析2-Monitor</title><link>http://www.blogjava.net/heavensay/archive/2012/10/17/387562.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Tue, 16 Oct 2012 16:04:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2012/10/17/387562.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/387562.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2012/10/17/387562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/387562.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/387562.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JMX Monitor主要用于监控MBeanServer注册的MBeans属性值得变化，在属性的值达到阈值的时候发送消息。 JMX agent需要实现Monitor功能。&nbsp;&nbsp;<a href='http://www.blogjava.net/heavensay/archive/2012/10/17/387562.html'>阅读全文</a><img src ="http://www.blogjava.net/heavensay/aggbug/387562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2012-10-17 00:04 <a href="http://www.blogjava.net/heavensay/archive/2012/10/17/387562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JMX分析1-MBean的实现</title><link>http://www.blogjava.net/heavensay/archive/2012/09/24/386308.html</link><dc:creator>heavensay</dc:creator><author>heavensay</author><pubDate>Mon, 24 Sep 2012 00:33:00 GMT</pubDate><guid>http://www.blogjava.net/heavensay/archive/2012/09/24/386308.html</guid><wfw:comment>http://www.blogjava.net/heavensay/comments/386308.html</wfw:comment><comments>http://www.blogjava.net/heavensay/archive/2012/09/24/386308.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/heavensay/comments/commentRss/386308.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/heavensay/services/trackbacks/386308.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp; &nbsp; 本文只是JDK7中JMX在本地，MBeanServer管理MBeans的默认实现的探索学习，没有涉及JMX Remote。&nbsp; &nbsp; &nbsp; JMX 使用了 Java Bean 模式来传递信息。一般说来，JMX 使用有名的 MBean，其内部包含了数据信息，这些信息可能是：应用程序配置信息、模块信息、系统信息、统计信息等。另外，MBe...&nbsp;&nbsp;<a href='http://www.blogjava.net/heavensay/archive/2012/09/24/386308.html'>阅读全文</a><img src ="http://www.blogjava.net/heavensay/aggbug/386308.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/heavensay/" target="_blank">heavensay</a> 2012-09-24 08:33 <a href="http://www.blogjava.net/heavensay/archive/2012/09/24/386308.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>