<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>《java类加载器体系结构(含hotswap原理)》的评论</title>
	<atom:link href="http://kenwublog.com/structure-of-java-class-loader/feed" rel="self" type="application/rss+xml" />
	<link>http://kenwublog.com/structure-of-java-class-loader</link>
	<description>just another software engineer blog</description>
	<lastBuildDate>Tue, 08 May 2012 03:14:23 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>作者：T客网 ︱ Techpot &#187; Blog Archive &#187; 使用Memory Analyzer tool(MAT)分析内存泄漏（二）</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-32494</link>
		<dc:creator>T客网 ︱ Techpot &#187; Blog Archive &#187; 使用Memory Analyzer tool(MAT)分析内存泄漏（二）</dc:creator>
		<pubDate>Fri, 27 Jan 2012 12:22:54 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-32494</guid>
		<description>[...] 打开java_pid3023.hprof文件，注意看下图的Classes: 88.1k和Class Loader: 87.7k部分，从这点可看出class loader加载了大量的类。更进一步分析，点击上图中红框线圈起来的按钮，选择Java Basics——Class Loader Explorer功能。打开后能看到下图所示的界面，第一列是class loader名字；第二列是class loader已定义类(defined classes)的个数，这里要说一下已定义类和已加载类(loaded classes)了，当需要加载类的时候，相应的class loader会首先把请求委派给父class loader，只有当父class loader加载失败后，该class loader才会自己定义并加载类，这就是Java自己的“双亲委派加载链”结构；第三列是class loader所加载的类的实例数目。在Class Loader Explorer这里，能发现class loader是否加载了过多的类。另外，还有Duplicate Classes功能，也能协助分析重复加载的类，在此就不再截图了，可以肯定的是MyAbsClass被重复加载了N多次。最后其实MAT工具非常的强大，上面故弄玄虚的范例代码根本用不上MAT的其他分析功能，所以就不再描述了。其实对于OOM不只我列举的两种溢出错误，还有多种其他错误，但我想说的是，对于perm gen，如果实在找不出问题所在，建议使用JVM的-verbose参数，该参数会在后台打印出日志，可以用来查看哪个class loader加载了什么类，例：“[Loaded org.rosenjiang.test.MyAbsClass from org.rosenjiang.test.MyClassLoader]”。全文完。参考资料memoryanalyzer Blogjava类加载器体系结构ClassLoader [...]</description>
		<content:encoded><![CDATA[<p>[...] 打开java_pid3023.hprof文件，注意看下图的Classes: 88.1k和Class Loader: 87.7k部分，从这点可看出class loader加载了大量的类。更进一步分析，点击上图中红框线圈起来的按钮，选择Java Basics——Class Loader Explorer功能。打开后能看到下图所示的界面，第一列是class loader名字；第二列是class loader已定义类(defined classes)的个数，这里要说一下已定义类和已加载类(loaded classes)了，当需要加载类的时候，相应的class loader会首先把请求委派给父class loader，只有当父class loader加载失败后，该class loader才会自己定义并加载类，这就是Java自己的“双亲委派加载链”结构；第三列是class loader所加载的类的实例数目。在Class Loader Explorer这里，能发现class loader是否加载了过多的类。另外，还有Duplicate Classes功能，也能协助分析重复加载的类，在此就不再截图了，可以肯定的是MyAbsClass被重复加载了N多次。最后其实MAT工具非常的强大，上面故弄玄虚的范例代码根本用不上MAT的其他分析功能，所以就不再描述了。其实对于OOM不只我列举的两种溢出错误，还有多种其他错误，但我想说的是，对于perm gen，如果实在找不出问题所在，建议使用JVM的-verbose参数，该参数会在后台打印出日志，可以用来查看哪个class loader加载了什么类，例：“[Loaded org.rosenjiang.test.MyAbsClass from org.rosenjiang.test.MyClassLoader]”。全文完。参考资料memoryanalyzer Blogjava类加载器体系结构ClassLoader [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：Ken Wu</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-30404</link>
		<dc:creator>Ken Wu</dc:creator>
		<pubDate>Tue, 09 Nov 2010 13:03:27 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-30404</guid>
		<description>^_^</description>
		<content:encoded><![CDATA[<p>^_^</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：jeffey</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-30402</link>
		<dc:creator>jeffey</dc:creator>
		<pubDate>Mon, 08 Nov 2010 09:13:13 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-30402</guid>
		<description>刚开始没明白，为什么A.B应该是system classloader去load的，后来才发现，原来override的不是loadClass</description>
		<content:encoded><![CDATA[<p>刚开始没明白，为什么A.B应该是system classloader去load的，后来才发现，原来override的不是loadClass</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：34534</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-30124</link>
		<dc:creator>34534</dc:creator>
		<pubDate>Tue, 02 Mar 2010 07:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-30124</guid>
		<description>.......................</description>
		<content:encoded><![CDATA[<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：Ken Wu</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-29945</link>
		<dc:creator>Ken Wu</dc:creator>
		<pubDate>Thu, 14 Jan 2010 04:14:38 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-29945</guid>
		<description>哪块内容？可以加我msn，进一步交流！</description>
		<content:encoded><![CDATA[<p>哪块内容？可以加我msn，进一步交流！</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：zuozhengfeng</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-29944</link>
		<dc:creator>zuozhengfeng</dc:creator>
		<pubDate>Thu, 14 Jan 2010 03:34:16 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-29944</guid>
		<description>不是很理解啊！</description>
		<content:encoded><![CDATA[<p>不是很理解啊！</p>
]]></content:encoded>
	</item>
	<item>
		<title>作者：chenlb</title>
		<link>http://kenwublog.com/structure-of-java-class-loader/comment-page-1#comment-16471</link>
		<dc:creator>chenlb</dc:creator>
		<pubDate>Tue, 18 Aug 2009 09:36:09 +0000</pubDate>
		<guid isPermaLink="false">http://kenwublog.com/?p=403#comment-16471</guid>
		<description>好文，我有一篇 jvm 的博文，大量挪用了你的内容。

:)</description>
		<content:encoded><![CDATA[<p>好文，我有一篇 jvm 的博文，大量挪用了你的内容。</p>
<p> <img src='http://kenwublog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

