<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>简单之美 &#187; Tag &#187; Java</title>
	<atom:link href="http://shiyanjun.cn/archives/tag/java/feed" rel="self" type="application/rss+xml" />
	<link>http://shiyanjun.cn</link>
	<description>简单之美，难得简单，享受简单的唯美。</description>
	<lastBuildDate>Wed, 04 Mar 2026 07:04:53 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>JVM 分代GC策略分析</title>
		<link>http://shiyanjun.cn/archives/397.html</link>
		<comments>http://shiyanjun.cn/archives/397.html#comments</comments>
		<pubDate>Sun, 15 Sep 2013 03:40:02 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[JVM]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=397</guid>
		<description><![CDATA[<p>
	我们以Sun HotSpot VM来进行分析，首先应该知道，如果我们没有指定任何GC策略的时候，JVM默认使用的GC策略。Java虚拟机是按照分代的方式来回收垃圾空间，我们应该知道，垃圾回收主要是针对堆（Heap）内存进行分代回收，将对内存可以分成新生代（Young Generation）、年老代（Tenured Generation）和永久代（Permanent Generation）三个部分。


	分代GC


	分代GC包括如下三代：



		新生代（Young Generation）
	


	新生代有划分为Eden、From Survivor和To Survivor三个部分，他们对应的内存空间的大小比例为8:1:1，也就是，为对象分配内存的时候，首先使用Eden空间，经过GC后，没有被回收的会首先进入From Survivor区域，任何时候，都会保持一个Survivorq区域（From Survivor或To Survivor）完全空闲，也就是说新生代的内存利用率最大为90%。From Survivor和To Survivor两个区域会根据GC的实际情况，进行互换，将From Survivor区域中的对象全部复制到To Survivor区域中，或者反过来，将To Survivor区域中的对象全部复制到From Survivor区域中。



		年老代（</p>]]></description>
	<p>
	我们以Sun HotSpot VM来进行分析，首先应该知道，如果我们没有指定任何GC策略的时候，JVM默认使用的GC策略。Java虚拟机是按照分代的方式来回收垃圾空间，我们应该知道，垃圾回收主要是针对堆（Heap）内存进行分代回收，将对内存可以分成新生代（Young Generation）、年老代（Tenured Generation）和永久代（Permanent Generation）三个部分。


	分代GC


	分代GC包括如下三代：



		新生代（Young Generation）
	


	新生代有划分为Eden、From Survivor和To Survivor三个部分，他们对应的内存空间的大小比例为8:1:1，也就是，为对象分配内存的时候，首先使用Eden空间，经过GC后，没有被回收的会首先进入From Survivor区域，任何时候，都会保持一个Survivorq区域（From Survivor或To Survivor）完全空闲，也就是说新生代的内存利用率最大为90%。From Survivor和To Survivor两个区域会根据GC的实际情况，进行互换，将From Survivor区域中的对象全部复制到To Survivor区域中，或者反过来，将To Survivor区域中的对象全部复制到From Survivor区域中。



		年老代（</p>			<content:encoded><![CDATA[<p>
	我们以Sun HotSpot VM来进行分析，首先应该知道，如果我们没有指定任何GC策略的时候，JVM默认使用的GC策略。Java虚拟机是按照分代的方式来回收垃圾空间，我们应该知道，垃圾回收主要是针对堆（Heap）内存进行分代回收，将对内存可以分成新生代（Young Generation）、年老代（Tenured Generation）和永久代（Permanent Generation）三个部分。


	分代GC


	分代GC包括如下三代：



		新生代（Young Generation）
	


	新生代有划分为Eden、From Survivor和To Survivor三个部分，他们对应的内存空间的大小比例为8:1:1，也就是，为对象分配内存的时候，首先使用Eden空间，经过GC后，没有被回收的会首先进入From Survivor区域，任何时候，都会保持一个Survivorq区域（From Survivor或To Survivor）完全空闲，也就是说新生代的内存利用率最大为90%。From Survivor和To Survivor两个区域会根据GC的实际情况，进行互换，将From Survivor区域中的对象全部复制到To Survivor区域中，或者反过来，将To Survivor区域中的对象全部复制到From Survivor区域中。



		年老代（</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/397.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用JRegex抽取网页信息</title>
		<link>http://shiyanjun.cn/archives/1.html</link>
		<comments>http://shiyanjun.cn/archives/1.html#comments</comments>
		<pubDate>Sat, 17 Aug 2013 22:14:03 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[JRegex]]></category>

		<guid isPermaLink="false">http://shirdrn.org/?p=1</guid>
		<description><![CDATA[<p>当网络爬虫将网页下载到磁盘上以后，需要对这些网页中的内容进行抽取，为索引做准备。一个网页中的数据大部分是HTML标签，索引肯定不会去索引这些标签。也就是说，这种信息是没有用处的信息，需要在抽取过程中过滤掉。另外，一个网页中一般会存在广告信息、锚文本信息，还有一些我们不感兴趣的信息，都被视为垃圾信息，如果不加考虑这些内容，抽取出来的信息不仅占用存储空间，而且在索引以后，为终端用户提供检索服务，用户检会索到很多无用的垃圾信息，势必影响用户的体验。
这里，针对论坛，采用配置模板的方式来实现信息的抽取。使用的工具可以到http://jregex.sourceforge.net上下载，JRegex是一个基于Java的正则库，可以通过在正则模板中指定待抽取信息的变量，在抽取过程中会将抽取到的信息赋给该变量，从而得到感兴趣的信息。而且，JRegex库支持多级分组匹配。
为了直观，假设，有一个论坛的一个网页的源代码形如：
将该网页代码文件保存为bbsPage.txt文件，准备进行处理。
现在，我们的目标是抽取标题、作者、时间、内容这些内容，当然，标题完全可以从TIT</p>]]></description>
	<p>当网络爬虫将网页下载到磁盘上以后，需要对这些网页中的内容进行抽取，为索引做准备。一个网页中的数据大部分是HTML标签，索引肯定不会去索引这些标签。也就是说，这种信息是没有用处的信息，需要在抽取过程中过滤掉。另外，一个网页中一般会存在广告信息、锚文本信息，还有一些我们不感兴趣的信息，都被视为垃圾信息，如果不加考虑这些内容，抽取出来的信息不仅占用存储空间，而且在索引以后，为终端用户提供检索服务，用户检会索到很多无用的垃圾信息，势必影响用户的体验。
这里，针对论坛，采用配置模板的方式来实现信息的抽取。使用的工具可以到http://jregex.sourceforge.net上下载，JRegex是一个基于Java的正则库，可以通过在正则模板中指定待抽取信息的变量，在抽取过程中会将抽取到的信息赋给该变量，从而得到感兴趣的信息。而且，JRegex库支持多级分组匹配。
为了直观，假设，有一个论坛的一个网页的源代码形如：

&lt;a id=&quot;anchor&quot;&gt;标题&lt;/a&gt;
&lt;cont&gt;
     &lt;author&gt;a1&lt;/author&gt;
     &lt;time&gt;2009&lt;/time</p>			<content:encoded><![CDATA[<p>当网络爬虫将网页下载到磁盘上以后，需要对这些网页中的内容进行抽取，为索引做准备。一个网页中的数据大部分是HTML标签，索引肯定不会去索引这些标签。也就是说，这种信息是没有用处的信息，需要在抽取过程中过滤掉。另外，一个网页中一般会存在广告信息、锚文本信息，还有一些我们不感兴趣的信息，都被视为垃圾信息，如果不加考虑这些内容，抽取出来的信息不仅占用存储空间，而且在索引以后，为终端用户提供检索服务，用户检会索到很多无用的垃圾信息，势必影响用户的体验。
这里，针对论坛，采用配置模板的方式来实现信息的抽取。使用的工具可以到http://jregex.sourceforge.net上下载，JRegex是一个基于Java的正则库，可以通过在正则模板中指定待抽取信息的变量，在抽取过程中会将抽取到的信息赋给该变量，从而得到感兴趣的信息。而且，JRegex库支持多级分组匹配。
为了直观，假设，有一个论坛的一个网页的源代码形如：
将该网页代码文件保存为bbsPage.txt文件，准备进行处理。
现在，我们的目标是抽取标题、作者、时间、内容这些内容，当然，标题完全可以从TIT</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
