﻿<?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-兼容并包，思想自由-文章分类-1.java基础(Java Foundation)</title><link>http://www.blogjava.net/Steven-Liu/category/8889.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:39:24 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:39:24 GMT</pubDate><ttl>60</ttl><item><title>new 一个对象的执行过程</title><link>http://www.blogjava.net/Steven-Liu/articles/37248.html</link><dc:creator>Steven Liu</dc:creator><author>Steven Liu</author><pubDate>Fri, 24 Mar 2006 09:50:00 GMT</pubDate><guid>http://www.blogjava.net/Steven-Liu/articles/37248.html</guid><wfw:comment>http://www.blogjava.net/Steven-Liu/comments/37248.html</wfw:comment><comments>http://www.blogjava.net/Steven-Liu/articles/37248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Steven-Liu/comments/commentRss/37248.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Steven-Liu/services/trackbacks/37248.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">new SubClass;<br />(1) </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">类型为<span lang="EN-US">SubClass</span>的一个对象首次创建时，或者<span lang="EN-US">SubClass</span>类的<span lang="EN-US">static </span>方法／<span lang="EN-US">static </span>字段首次访问时，<span lang="EN-US">Java </span>解释器</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">必须找到<span lang="EN-US">SubClass.class</span>（在事先设好的类路径里搜索）。<span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">(2) </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">找到<span lang="EN-US">SubClass.class </span>后（它会创建一个<span lang="EN-US">Class </span>对象），它的所有<span lang="EN-US">static </span>初始化模块都会运<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">行。因此，<span lang="EN-US">static </span>初始化仅发生一次——在<span lang="EN-US">Class </span>对象首次载入的时候。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">(3) </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">创建一个<span lang="EN-US">new SubClass()</span>时，<span lang="EN-US">SubClass</span>对象的构建进程首先会在内存堆（<span lang="EN-US">Heap</span>）里为一个<span lang="EN-US">SubClass </span>对象分配足够多的存</span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">储空间。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">(4) </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">这种存储空间会清为零，将<span lang="EN-US">SubClass</span>中的所有基本类型设为它们的默认值（零用于数字，以及<span lang="EN-US">boolean </span>和</span>
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">char </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的等价设定）。<br /></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span>(5) 调用基础类构建器。这个步骤会不断重复下去，首先得到构建的是分级结构的根部，然后是下一个衍生类，等等。直到抵达最深一层的衍生类SubClass。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span>(6) 按声明顺序调用成员初始化模块。<span lang="EN-US"><o:p></o:p></span></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align="left">
				<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">(7) </span>
				<span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">调用衍生构建器的主体。 </span>
		</p>
<img src ="http://www.blogjava.net/Steven-Liu/aggbug/37248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Steven-Liu/" target="_blank">Steven Liu</a> 2006-03-24 17:50 <a href="http://www.blogjava.net/Steven-Liu/articles/37248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>