﻿<?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-Oo缘来是你oO-随笔分类-咖啡Java</title><link>http://www.blogjava.net/majianan/category/13113.html</link><description>&lt;br&gt;
&lt;div align=center &gt;
&lt;img width=200 height=50 src="http://www.blogjava.net/images/blogjava_net/majianan/14891/r_5858488902000cu2.gif" name="welcome"&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;script language="JavaScript"&gt;
&lt;!-- Begin
text = "人本是人，不必刻意去做人；世本是世，无须精心去处世；自然的才是快乐的。"; 
color1 = "blue"; 
color2 = "red"; fontsize = "2"; 
speed = 100; 
i = 0;
if (navigator.appName == "Netscape") {
document.write("&lt;layer id=a visibility=show&gt;&lt;/layer&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;");
}
else {
document.write("&lt;div id=a&gt;&lt;/div&gt;");
}
function changeCharColor() {
if (navigator.appName == "Netscape") {
document.a.document.write("&lt;center&gt;&lt;font face=arial size =" + fontsize + "&gt;&lt;font color=" + color1 + 
"&gt;");
for (var j = 0; j &lt; text.length; j++) {
if(j == i) {
document.a.document.write("&lt;font face=arial color=" + color2 + "&gt;" + Text.charAt(i) + "&lt;/font&gt;");
}
else {
document.a.document.write(text.charAt(j));
}
}
document.a.document.write('&lt;/font&gt;&lt;/font&gt;&lt;/center&gt;');
document.a.document.close();
}
if (navigator.appName == "Microsoft Internet Explorer") {
str = "&lt;center&gt;&lt;font face=arial size=" + fontsize + "&gt;&lt;font color=" + color1 + "&gt;";
for (var j = 0; j &lt; text.length; j++) {
if( j == i) {
str += "&lt;font face=arial color=" + color2 + "&gt;" + text.charAt(i) + "&lt;/font&gt;";
}
else {
str += text.charAt(j);
}
}
str += "&lt;/font&gt;&lt;/font&gt;&lt;/center&gt;";
a.innerHTML = str;
}
(i == text.length) ? i=0 : i++;
}
setInterval("changeCharColor()", speed);
// End --&gt;
&lt;/script&gt; 
</description><language>zh-cn</language><lastBuildDate>Mon, 24 Mar 2008 13:43:10 GMT</lastBuildDate><pubDate>Mon, 24 Mar 2008 13:43:10 GMT</pubDate><ttl>60</ttl><item><title>[原创]打印整型的二进制格式</title><link>http://www.blogjava.net/majianan/archive/2008/03/24/188166.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Mon, 24 Mar 2008 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2008/03/24/188166.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/188166.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2008/03/24/188166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/188166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/188166.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 打印整型的二进制格式&nbsp;&nbsp;<a href='http://www.blogjava.net/majianan/archive/2008/03/24/188166.html'>阅读全文</a><img src ="http://www.blogjava.net/majianan/aggbug/188166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2008-03-24 10:51 <a href="http://www.blogjava.net/majianan/archive/2008/03/24/188166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教你解决问题：Compilation error java.lang.OutOfMemoryError </title><link>http://www.blogjava.net/majianan/archive/2008/03/19/187181.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Wed, 19 Mar 2008 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2008/03/19/187181.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/187181.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2008/03/19/187181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/187181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/187181.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Compilation error java.lang.OutOfMemoryError 解决方法&nbsp;&nbsp;<a href='http://www.blogjava.net/majianan/archive/2008/03/19/187181.html'>阅读全文</a><img src ="http://www.blogjava.net/majianan/aggbug/187181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2008-03-19 10:39 <a href="http://www.blogjava.net/majianan/archive/2008/03/19/187181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 关键字 native 说明</title><link>http://www.blogjava.net/majianan/archive/2007/04/19/111967.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Thu, 19 Apr 2007 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2007/04/19/111967.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/111967.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2007/04/19/111967.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/111967.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/111967.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=center><span style="FONT-SIZE: 14pt">Java 关键字 <span style="COLOR: #0000ff">native</span> 说明</span><br><br><a href="http://www.blogjava.net/majianan">马嘉楠</a>&nbsp; 2007-04-19</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><br><br>如果想用非Java代码来编写程序，或者需要直接操纵硬件，此时，你可以编写本机方法(<span style="COLOR: #3366ff">native method</span>)。</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">native关键字就是用来声明本机方法(native method)的。一旦声明，这些本机方法可以在Java程序中被调用，就像调用其他Java方法一样。<br>&nbsp;&nbsp; <br>native method 用C/C++语言实现，并且被编译成DLL，这些函数的实现体在DLL中，在Java中本机方法体只是一个分号。</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">例如向操作系统请求机器的CPU编号方法，如下：</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public native int getCPUID();<br></p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><br>native method 以可以被重载或者覆盖，也可以是final, static, synchronized, public, protected, private 的。但是本机方法不能声明为abstract或者strictfp类型。<br><br><br><br></p>
<img src ="http://www.blogjava.net/majianan/aggbug/111967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2007-04-19 16:02 <a href="http://www.blogjava.net/majianan/archive/2007/04/19/111967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>蛇行填数</title><link>http://www.blogjava.net/majianan/archive/2006/11/09/80075.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Thu, 09 Nov 2006 05:24:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/11/09/80075.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/80075.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/11/09/80075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/80075.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/80075.html</trackback:ping><description><![CDATA[
		<font face="Verdana" size="2">
				<font size="3">                                              <font color="#000080">蛇行填数</font><br /></font>
				<br />显示效果如下：<br /><br /></font>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">3</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">4</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">    <br /><br /></span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">5</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">8</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">    <br /><br /></span>
								<span style="COLOR: #000000">6</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">7</span>
								<span style="COLOR: #000000">      </span>
								<span style="COLOR: #000000">9</span>
						</font>
				</font>
		</div>
		<br />
		<br />
		<br />
		<p align="right">
				<font face="Verdana" size="2">
				</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #0000ff">
						<font face="Verdana" size="2">package</font>
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> Test;<br /><br /></span>
								<span style="COLOR: #0000ff">import</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> java.io.BufferedReader;<br /></span>
								<span style="COLOR: #0000ff">import</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> java.io.IOException;<br /></span>
								<span style="COLOR: #0000ff">import</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> java.io.InputStreamReader;<br /><br /></span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">class</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> Main {<br />    </span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">static</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">void</span>
								<span style="COLOR: #000000"> main(String[] args) </span>
								<span style="COLOR: #0000ff">throws</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> NumberFormatException,<br />            IOException {<br />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">请输入数组的大小：</span>
								<span style="COLOR: #000000">"</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">);<br />        BufferedReader br </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> BufferedReader(</span>
								<span style="COLOR: #0000ff">new</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> InputStreamReader(System.in));<br />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> arraySize </span>
								<span style="COLOR: #000000">=</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> Integer.parseInt(br.readLine());<br />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000">[][] a </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">new</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #0000ff">int</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">[arraySize][arraySize];<br />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br />        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> number </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">;        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> 准备填充的数字</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">        </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000"> snakeLine </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">;    </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> snakeLine代表斜行（蛇行）数，由于snakeLine将会用于数组下标的计算，所以从0开始计数</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #000000">
						<br />
						<font face="Verdana" size="2">        </font>
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (; snakeLine </span>
								<span style="COLOR: #000000">&lt;</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">*</span>
								<span style="COLOR: #000000"> arraySize </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">; snakeLine</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">) {<br />            </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (snakeLine </span>
								<span style="COLOR: #000000">&lt;</span>
								<span style="COLOR: #000000"> arraySize) </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> 左上半部分</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">            {<br />                </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (snakeLine </span>
								<span style="COLOR: #000000">%</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">) </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> 奇数斜行</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">                {<br />                    </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> snakeLine; row </span>
								<span style="COLOR: #000000">&gt;=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">; row</span>
								<span style="COLOR: #000000">--</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">)<br />                        a[row][snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> row] </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> number</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br />                } </span>
								<span style="COLOR: #0000ff">else</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> {<br />                    </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> snakeLine; row </span>
								<span style="COLOR: #000000">&gt;=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">; row</span>
								<span style="COLOR: #000000">--</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">)<br />                        a[snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> row][row] </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> number</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br />                }<br />            } </span>
								<span style="COLOR: #0000ff">else</span>
								<span style="COLOR: #000000"> { </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> 右下半部分</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">                </span>
								<span style="COLOR: #0000ff">if</span>
								<span style="COLOR: #000000"> (snakeLine </span>
								<span style="COLOR: #000000">%</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">2</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">!=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">) {<br />                    </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> arraySize </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">; row </span>
								<span style="COLOR: #000000">&gt;</span>
								<span style="COLOR: #000000"> snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> arraySize; row</span>
								<span style="COLOR: #000000">--</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">)<br />                        a[row][snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> row] </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> number</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br />                } </span>
								<span style="COLOR: #0000ff">else</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> {<br />                    </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> arraySize </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">1</span>
								<span style="COLOR: #000000">; row </span>
								<span style="COLOR: #000000">&gt;</span>
								<span style="COLOR: #000000"> snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> arraySize; row</span>
								<span style="COLOR: #000000">--</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">)<br />                        a[snakeLine </span>
								<span style="COLOR: #000000">-</span>
								<span style="COLOR: #000000"> row][row] </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> number</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br />                }<br />            }<br />        }<br /><br />        System.out.println(</span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">Result as follows：\n</span>
								<span style="COLOR: #000000">"</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">);<br />        </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (row </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">; row </span>
								<span style="COLOR: #000000">&lt;</span>
								<span style="COLOR: #000000"> arraySize; row</span>
								<span style="COLOR: #000000">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">) {<br />            </span>
								<span style="COLOR: #0000ff">for</span>
								<span style="COLOR: #000000"> (number </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">0</span>
								<span style="COLOR: #000000">; number </span>
								<span style="COLOR: #000000">&lt;</span>
								<span style="COLOR: #000000"> arraySize; number</span>
								<span style="COLOR: #000000">++</span>
								<span style="COLOR: #000000">) { </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000"> number此处作为数组的下标使用</span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">                System.out.print(a[row][number] </span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000"> </span>
								<span style="COLOR: #000000">"</span>
								<span style="COLOR: #000000">\t</span>
								<span style="COLOR: #000000">"</span>
						</font>
				</font>
				<span style="COLOR: #000000">
						<font face="Verdana" size="2">);<br />            }<br />            System.out.println();<br />            System.out.println();<br />        }<br />    }<br />}</font>
				</span>
		</div>
		<br />
		<br />
<img src ="http://www.blogjava.net/majianan/aggbug/80075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-11-09 13:24 <a href="http://www.blogjava.net/majianan/archive/2006/11/09/80075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一道很简单的老问题，求更好的解决方法</title><link>http://www.blogjava.net/majianan/archive/2006/11/08/79921.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Wed, 08 Nov 2006 10:05:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/11/08/79921.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/79921.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/11/08/79921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/79921.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/79921.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Verdana" size="2">                                  <font color="#000080" size="3"> 一道很简单的老问题，求更好的解决方法<br /></font><br />                                            <a href="/majianan"><font color="#0000ff">马嘉楠</font></a>   2006-11-08<br /><br /><br />今天在一个论坛看到有人问一个很老的问题。</font>
		</p>
		<p>
				<font face="Verdana" size="2">“<font color="#a52a2a">10个人围一圈，编号为1的人开始数数，数到能被3整除的编号的人退出，然后再往下数。问最后剩几个人？<br />如第一圈后：3，6，9退出，还剩7人下一圈从第11开始数。求算法</font>”</font>
		</p>
		<p>
				<font face="Verdana" size="2">
						<br />看到过这个题目很多次，从来都没有仔细想过写过代码。 <br /><br />下面的方法是我今天看到题目后的第一反应，应该有更好的吧。<br /><br />你们都是怎么做的啊，学习一下，谢谢啦！<br />我算法很弱的。。。</font>
		</p>
		<p>
				<font face="Verdana" size="2">
						<br />
				</font>
		</p>
		<p>
				<font face="Verdana" size="2">
						<font color="#000080">
一、数组实现</font>
						<br />
						<br />
1.    for循环初始化每个人的值为0<br /><br />
2.    开始报数，如果所报之数能被3整除，设置此人的值为1<br /><br />
3.    如此循环下去，直到只有一个人的值为0<br /><br />
4.    获得此人在数组中的下标，加1之后输出，即为所求</font>
		</p>
		<p>
				<br />
		</p>
		<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);">
				<span style="color: rgb(0, 0, 255);">
						<font face="Verdana" size="2">package</font>
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);"> Test;<br /><br /><br /></span>
								<span style="color: rgb(0, 0, 255);">public</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 255);">class</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);"> Main {<br />    </span>
								<span style="color: rgb(0, 0, 255);">public</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 255);">static</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 255);">void</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);"> main(String[] args) {<br />        </span>
								<span style="color: rgb(0, 0, 255);">int</span>
								<span style="color: rgb(0, 0, 0);">[] person </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 255);">new</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 255);">int</span>
								<span style="color: rgb(0, 0, 0);">[</span>
								<span style="color: rgb(0, 0, 0);">10</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">];<br />        </span>
								<span style="color: rgb(0, 0, 255);">for</span>
								<span style="color: rgb(0, 0, 0);"> (</span>
								<span style="color: rgb(0, 0, 255);">int</span>
								<span style="color: rgb(0, 0, 0);"> i </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
								<span style="color: rgb(0, 0, 0);">; i </span>
								<span style="color: rgb(0, 0, 0);">&lt;</span>
								<span style="color: rgb(0, 0, 0);"> person.length; i</span>
								<span style="color: rgb(0, 0, 0);">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">) {<br />            person[i] </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">;<br />        }<br />        </span>
								<span style="color: rgb(0, 0, 255);">for</span>
								<span style="color: rgb(0, 0, 0);"> (</span>
								<span style="color: rgb(0, 0, 255);">int</span>
								<span style="color: rgb(0, 0, 0);"> j </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
								<span style="color: rgb(0, 0, 0);">, count </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
								<span style="color: rgb(0, 0, 0);">, leave </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> person.length; leave </span>
								<span style="color: rgb(0, 0, 0);">!=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">1</span>
								<span style="color: rgb(0, 0, 0);">; j </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> (j </span>
								<span style="color: rgb(0, 0, 0);">+</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">1</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">)</span>
								<span style="color: rgb(0, 0, 0);">%</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">(person.length)) {<br />            </span>
								<span style="color: rgb(0, 0, 255);">if</span>
								<span style="color: rgb(0, 0, 0);"> (person[j] </span>
								<span style="color: rgb(0, 0, 0);">==</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">1</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">) {<br />                </span>
								<span style="color: rgb(0, 0, 255);">continue</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">;<br />            } </span>
								<span style="color: rgb(0, 0, 255);">else</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);"> {<br />                count</span>
								<span style="color: rgb(0, 0, 0);">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">;<br />                </span>
								<span style="color: rgb(0, 0, 255);">if</span>
								<span style="color: rgb(0, 0, 0);"> (count </span>
								<span style="color: rgb(0, 0, 0);">%</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">3</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">==</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">) {<br />                    person[j] </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">1</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">;<br />                    leave</span>
								<span style="color: rgb(0, 0, 0);">--</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">;<br />                }<br />            }<br />        }<br />        </span>
								<span style="color: rgb(0, 0, 255);">for</span>
								<span style="color: rgb(0, 0, 0);"> (</span>
								<span style="color: rgb(0, 0, 255);">int</span>
								<span style="color: rgb(0, 0, 0);"> i </span>
								<span style="color: rgb(0, 0, 0);">=</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
								<span style="color: rgb(0, 0, 0);">; i </span>
								<span style="color: rgb(0, 0, 0);">&lt;</span>
								<span style="color: rgb(0, 0, 0);"> person.length; i</span>
								<span style="color: rgb(0, 0, 0);">++</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">) {<br />            </span>
								<span style="color: rgb(0, 0, 255);">if</span>
								<span style="color: rgb(0, 0, 0);"> (person[i] </span>
								<span style="color: rgb(0, 0, 0);">==</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">0</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">) {<br />                System.out.println(</span>
								<span style="color: rgb(0, 0, 0);">"</span>
								<span style="color: rgb(0, 0, 0);">The last person is </span>
								<span style="color: rgb(0, 0, 0);">"</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">+</span>
								<span style="color: rgb(0, 0, 0);"> (i </span>
								<span style="color: rgb(0, 0, 0);">+</span>
								<span style="color: rgb(0, 0, 0);"> </span>
								<span style="color: rgb(0, 0, 0);">1</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="color: rgb(0, 0, 0);">));<br />                </span>
								<span style="color: rgb(0, 0, 255);">return</span>
						</font>
				</font>
				<span style="color: rgb(0, 0, 0);">
						<font face="Verdana" size="2">;<br />            }<br />        }<br />    }<br />}</font>
				</span>
		</div>
		<br />
		<br />
<img src ="http://www.blogjava.net/majianan/aggbug/79921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-11-08 18:05 <a href="http://www.blogjava.net/majianan/archive/2006/11/08/79921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大道至简 Java 23种模式一点就通（转贴）</title><link>http://www.blogjava.net/majianan/archive/2006/10/29/77879.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Sun, 29 Oct 2006 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/29/77879.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77879.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/29/77879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77879.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080">                                        <font size="3">大道至简 Java 23种模式一点就通</font></font>
						<font size="3">
								<br />
						</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                原作者：kinggaoblog
<p id="tagline"></p><br />                                                                                                                           <br /><br /><font color="#0000ff">一、创建型模式 <br /></font><br />　　FACTORY？人才市场：以往是要哪个人才，就找哪个人才，效率低，现在有了人才市场，我们只需直接去人才市场挑一个好了； <br /><br />　　BUILDER？生产流水线：以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做，好比有了工业革命，现在都由生产流水线代替了。如要造丰田汽车，先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车； <br /><br />　　PROTOTYPE？印刷术的发明：以前只能临贴才能保持和别人的字迹基本相同，直从印刷技术发明，从而保证了复制得和原物一模一样； <br /><br />　　SINGLETON？唯一：以前是商标满天飞，相同的商标难免造成侵权，直从有商标保护法后，就保证了不会再产生第家企业使用相同的商标； <br /><br /><br /><font color="#0000ff">　　二、结构型模式 <br /></font><br />　　ADAPTER？集众人之私，成一己之公：武当派张三丰会太极拳，少林派智空大师会金刚般若掌，如果他们两个都成为我的师傅，我就既会太极拳，又会金刚般若掌了； <br /><br />　　DECORATOR？青出于蓝而胜于蓝：武当派张三丰会太极拳，是我师傅，他教会了我太极拳，但我自己还会点蒙古式摔交，张三丰却不会。于是我就成了DECORATOR模式的实现； <br /><br />　　BRIDGE？白马非马：马之颜色有黑白，马之性别有公母。我们说"这是马"太抽象，说"这是黑色的公马"又太死板，只有将颜色与性别和马动态组合，"这是（黑色的或白色的）（公或母）马"才显得灵活而飘逸，如此bridge模式精髓得矣。 <br /><br />　　COMPOSITE？大家族：子又生孙，孙又生子，子子孙孙，无穷尽也，将众多纷杂的人口组织成一个按辈分排列的大家族即是此模式的实现； <br /><br />　　FACADE？求同存异：高中毕业需读初中和高中，博士也需读初中和高中，因此国家将初中和高中普及成九年制义务教育； <br /><br />　　FLYWEIGHT？一劳永逸：认识三千汉字，可以应付日常读书与写字，可见头脑中存在这个汉字库的重要； <br /><br />　　PROXY？垂帘听政：犹如清朝康熙年间的四大府臣，很多权利不在皇帝手里，必须通过辅佐大臣去办； <br /><br />　　<font color="#0000ff">三、行为模式</font><br /><br />　　CHAIN OF RESPONSIBLEITY？租房：以前为了找房到处打听，效率低且找不到好的房源。现在有了房屋中介，于是向房屋中介提出租房请求，中介提供一个合适的房源，满意则不再请求，不满意继续看房，直到满意为止； <br /><br />　　COMMAND？借刀杀人：以前是想杀谁就杀，但一段时间后领悟到，长此以往必将结仇太多，于是假手他人，挑拨他人之间的关系从而达到自己的目的； <br /><br />　　INTERPRETER？文言文注释：一段文言文，将它翻译成白话文； <br /><br />　　ITERATOR？赶尽杀绝：一个一个的搜索，绝不放掉一个； <br /><br />　　MEDIATOR？三角债：本来千头万绪的债务关系，忽出来一中介，包揽其一切，于是三角关系变成了独立的三方找第四方中介的关系； <br /><br />　　MEMENTO？有福同享：我有多少，你就有多少； <br /><br />　　OBSERVER？看守者：一旦被看守者有什么异常情况，定会及时做出反应； <br /><br />　　STATE？进出自由：如一扇门，能进能出，如果有很多人随时进进出出必定显得杂乱而安全，如今设一保安限制其进出，如此各人进出才显得规范； <br /><br />　　STRATEGY？久病成良医：如人生病可以有各种症状，但经过长期摸索，就可以总结出感冒、肺病、肝炎等几种； <br /><br />　　TEMPLATE METHOD？理论不一定要实践：教练的学生会游泳就行了，至于教练会不会则无关紧要； <br /><br />　　VISITOR？依法治罪：因张三杀人要被处死，李四偷窃要被罚款。由此势必制定处罚制度，故制定法律写明杀人、放火、偷窃等罪要受什么处罚，经通过后须变动要小。今后有人犯罪不管是谁，按共条例处罚即是，这就是访问者模式诞生的全过程。<br /><br /><br /><br /><a href="http://blog.csdn.net/kinggaoblog/archive/2005/10/31/519936.aspx">http://blog.csdn.net/kinggaoblog/archive/2005/10/31/519936.aspx</a><br /><br /></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-29 10:58 <a href="http://www.blogjava.net/majianan/archive/2006/10/29/77879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《程序员》特别策划之Java十年再回首（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77606.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77606.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77606.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77606.html</trackback:ping><description><![CDATA[
		<p> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77578.html">
										<font color="#000080">Java十大事件之一：Java源起</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font color="#000080">
								<font face="Verdana">
										<a href="/majianan/archive/2006/10/27/77580.html">
												<font color="#000080">Java十大事件之二：Java香浓世界</font>
										</a>
										<font size="2">
										</font>
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" color="#000080" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77584.html">
										<font color="#000080">Java十大事件之三：盟主地位就此定</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77588.html">
										<font color="#000080">Java十大事件之四：微软与Sun的Java官司</font>
								</a>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77588.html">
										<font color="#000080">Java十大事件之五：Java 2平台发布</font>
								</a>
								<font size="2">  </font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77590.html">
										<font color="#000080">Java十大事件之六：Java开源社群开始蓬勃发展</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77593.html">
										<font color="#000080">Java十大事件之七：WebLogic打开J2EE的魔匣</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77601.html">
										<font color="#000080">Java十大事件之八：官司最终以喜剧收场</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77603.html">
										<font color="#000080">Java十大事件之九：JBoss和Eclipse</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
				</font> </p>
		<ul>
				<li>
						<font face="Verdana">
								<a href="/majianan/archive/2006/10/27/77604.html">
										<font color="#000080">Java十大事件之十：Java 5.0</font>
								</a>
								<font size="2">
								</font>
						</font>
				</li>
		</ul>
		<p>
				<font face="Verdana" size="2">
						<br />
				</font> </p>
<img src ="http://www.blogjava.net/majianan/aggbug/77606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 12:54 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之十：Java 5.0（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77604.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 04:47:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77604.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77604.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77604.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                       Java十大事件之十：Java 5.0</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                       2004：Java 5.0<br />                                                                                                  <br />                                                         莫映 / 文 <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />2004年9月30日，代号为“<font color="#0000ff">Tiger</font>”，研发历时近三年的J2SE 5.0发布正式版本，这是Java平台历来发布版本中改动面波及最大的一次。<br /><br />纵观Tiger，“<font color="#0000ff">Ease of development</font>”是其核心主题，这一点着重体现于语言特性上的改进，这在很大程度上，简化了开发人员日常的编程任务，以往一些琐碎的手工劳动都代之以轻松自然，而又安全可靠的自动化实现。其中的注解功能，以及随之而来的声明式编程，还对构筑于J2SE 5.0之上的J2EE 5.0产生了巨大影响。尽管Tiger在语言特性上做了很大的动作，但作为Java技术的基础支撑，这些改动都是深思熟虑的结果。<br /><br />Tiger发布至今也有大半年了，那么Sun又是如何规划J2SE的未来蓝图的呢？<br /><br />据悉，J2SE的下两个版本分别是代号为“<font color="#0000ff">Mustang</font>”的J2SE 6.0和代号为“<font color="#0000ff">Dolphin</font>”的J2SE 7.0，预计Mustang将于明年发布。<br /><br />在吸取了Tiger研发周期过长的教训之后，Sun副总裁<font color="#0000ff">Graham Hamilton</font>表示，Mustang的发布周期将不会那么长。<br /><br />并且，Sun还将“<font color="#0000ff">Becoming more open</font>”作为Mustang的主题之一。<br /><br />未来JCP对Java技术的影响将会愈加深入，而整个研发过程也将会愈加透明。Mustang在正式发布前的内部版本也会陆续见诸于众，如此，广大Java开发者便可以更加及时的了解到Java发展的最新情况。<br /><br />在语言层面上的扩展依然会比较谨慎，比如像AOP这样的当下热门技术，依然不太可能会见诸其中。据Hamilton所言，一个有可能被引入的语法特性被称作“friends”import机制，它将使由多个包组成的大型项目变得易于管理。<br /><br /><br /><br /></font>
				<a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350885.aspx">
						<font face="Verdana" size="2">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350885.aspx</font>
				</a>
				<br />
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 12:47 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之九：JBoss和Eclipse （转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77603.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 04:43:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77603.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77603.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77603.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77603.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                       Java十大事件之九：JBoss和Eclipse</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                          2000-2004：JBoss和Eclipse——Java开源软件的王者<br />                                                                                                        <br />                                                    莫映 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br /><font color="#0000ff">Java</font>和<font color="#0000ff">开源</font>几乎就是天生的一对，这可以从无比兴盛繁荣的Java开源软件社区得到佐证。<br /><br />目前最有影响力的Java开源软件项目，要数<font color="#0000ff">JBoss</font>和<font color="#0000ff">Eclipse</font>。<br /><br />可以说，几乎所有的Java开发人员都获多或少的听到过或接触和使用过它们。<br /><br />前者是目前最优秀、应用最为广泛的企业级开源J2EE应用服务器，后者是功能完全可以替代商业产品的Java IDE。<br /><br />二者的覆盖功能之全、支持工具之广、子项目之多，几乎可以仅凭借它俩来完成企业应用的开发构建到部署实施的全过程，而软件开发者和客户也都可以最大程度上享受高质量，高可靠Java开源软件所带来的低成本优势。<br /><br />JBoss和Eclipse的巨大成功，几乎令各自领域的商用竞争者抓狂，其中BEA的<font color="#0000ff">WebLogic</font>和IBM的<font color="#0000ff">WebSphere</font>在商业利润上受到JBoss的巨大侵蚀，而Borland的<font color="#0000ff">JBuilder</font>、<font color="#0000ff">JetBrains</font>的IDEA等诸多优秀的商用开发工具也不得不面对Eclipse独大的现实。<br /><br /><font color="#0000ff">JBoss</font>的CEO兼创始人<font color="#0000ff">Marc Fleury</font>曾直言不讳地表示，希望占据市场主导地位。“<font color="#a52a2a">我们希望打败IBM，成为中间件领域里最大的厂商。”<br /></font><br />JBoss在4.0以前还只是以一个Group存在，盈利手段主要靠服务和销售文档。<br /><br />但在最近，JBoss已经发展成为一个有限公司，并吸纳多家风险投资，专注于获取利润为目标之一的<font color="#0000ff">第二代开源软件模式</font>（JBoss自己称为“<font color="#0000ff">Professional Open Source</font>”）的创新和运营。这区别于以理论研究为爱好的学院型开源或大公司为基础的非盈利组织开源，如<font color="#0000ff">Linux</font>和<font color="#0000ff">Apache</font>。<br /><br />当然JBoss的这种运营方式势必会导致更多的代码控制和专有修改权，但按JBoss的说法是这样更能获得企业客户的信赖。JBoss的这种模式是否能获得成功还要我们拭目以待。<br /><br />不管JBoss和Eclipse的未来发展如何，JBoss和Eclipse的成功已经让我们看到了Java开源软件的威力，祝愿它们一路走好。<br /><br /><br /><br /></font>
				<a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350883.aspx">
						<font face="Verdana" size="2">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350883.aspx</font>
				</a>
				<br />
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 12:43 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之八：官司最终以喜剧收场（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77601.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 04:39:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77601.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77601.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77601.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77601.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                 Java十大事件之八：官司最终以喜剧收场</font>
				</font>
		</font>
		<div class="postText">
				<p>
						<font face="Verdana" size="2">                                        2002-2004：Sun与微软的法律碰撞最终以喜剧收场<br />                                                                                                                         <br />                                                 恶魔 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />2003年4月2 日，Sun与微软达成16亿美元的法律和解。<br /><br />如果不是晚了一天，许多人会以为这是一个在4月1日愚人节开的玩笑。尽管当时所有人都像是看到“太阳从西边出来了”那样张大了嘴巴，但这的确是事实。<br /><br />根据两家公司达成的版权协议，双方会为采用对方的技术而支付专利费用，微软向Sun提前支付3.5亿美元使用费，Sun则承诺，如果Sun集成微软的某些技术，也会向微软付款。<br /><br />毫无疑问，“私下了结”的方式对双方而言都是最好的结果。<br /><br />就在协议签署的当天，在美国旧金山由Sun和微软为“抛弃十年恩怨、携手合作“举行的新闻发布会上，尽管<font color="#0000ff">比尔•盖茨</font>没有到场，但这并没有防碍现场看起来异常轻松的气氛。<br /><br /><font color="#0000ff">麦克尼利</font>和<font color="#0000ff">鲍尔默</font>各自穿了一件密歇根州底特律“Red Wings”曲棍球队的运动服，并谈及了一起在哈佛大学读书的经历，麦克尼利还说：“当时我们两人是非常要好的朋友，当然我们也有吵架的时候。”<br /><br />人与人当然可能成为终生的知己，但是公司与公司之间有的只能是利益上的分分合合。<br /><br /><br /><br /></font>
						<a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350868.aspx">
								<font face="Verdana" size="2">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350868.aspx</font>
						</a>
						<br />
				</p>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77601.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 12:39 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之七：WebLogic打开J2EE的魔匣（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77593.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 04:13:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77593.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77593.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77593.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77593.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77593.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                               Java十大事件之七：WebLogic打开J2EE的魔匣</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                  1998：WebLogic打开J2EE的魔匣<br />                                                                                                    <br />                                                      霍泰稳 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />Java语言的出现使得<font color="#0000ff">互联网络</font>有了良好的交互性能，但这些很“酷”的技术仅被人们认为是一些小花招，它还无法消除企业级用户对它的怀疑。<br /><br />1998年，BEA公司宣布收购<font color="#0000ff">WebLogic</font>公司，并接着推出由Sun公司第一个授权使用J2EE许可证的<font color="#0000ff">WebLogic Server</font>应用服务器，这个Java版的AppServer一推出就引起业界极大的兴趣。<br /><br />WebLoigc Server以其对标准的支持、强悍的运算能力和安全的架构设计等特性也很快征服了那些怀疑J2EE应用的人们。<br /><br />推出市场后不到一年，WebLogic Server就成为业内第一Java应用服务器。<br /><br />这里我们援引一些当时著名咨询公司的调查数据来说明问题，“<font color="#a52a2a">在IDC的报告中，BEA在应用服务器和交易服务器领域市场份额第一；在Gartner的报告中，BEA WebLogic Server拥有业内最广泛的EJB应用安装基础；在Giga Group的报告中，BEA WebLogic Server市场份额占32%”。<br /></font><br />因为应用服务器市场极大的发展潜力，在WebLogic Server之后，其它的很多公司也推出了自己的AppServer，如IBM的WebSphere、Sun公司的iPlanet等，逐渐地应用服务器取代了传统意义上的各类中间件，成为企业应用的基础平台。<br /><br />应用服务器的出现使得Java有了真正意义上的发展。<br /><br /><br /><br /></font>
				<a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350861.aspx">
						<font face="Verdana" size="2">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350861.aspx</font>
				</a>
				<br />
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77593.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 12:13 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77593.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之六：Java开源社群开始蓬勃发展（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77590.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:57:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77590.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77590.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77590.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                            Java十大事件之六：Java开源社群开始蓬勃发展</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                   1998：JCP成立并正式运作，Java开源社群开始蓬勃发展<br />                                                                                                        <br />                                               黄海波 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />1998年，<font color="#0000ff">JCP</font>组织成立，并且开始把握Java的发展方向。<br /><br />JCP组织的开放性，不但使得所有对Java感兴趣的商业公司可以参与Java的发展，更重要的是JCP允许个人、非盈利组织、学校等加入，这就给Java带来了巨大的活力。<br /><br />随之兴起的Java开源运动的最大贡献是实现和鼓励了知识共享，在众多热情的开源程序员们的努力和分享下，很多原先只被商业公司掌握的技术、思想和产品可以被所有需要的开发人员免费或者以较低的价格获得使用权，并通过开放源代码更容易的获得反馈和改进意见从而进一步演化发展。<br /><br />我们知道，所谓知识不是孤立发展认知，而是人们的经验，认识是思考交流和积累的产物。<br /><br />而开源运动所带来的开放、反馈、交流的风气正是符合人类社会知识形成和发展的规律。<br /><br />开源运动起源于西方的发达国家，有其现实背景和文化根源。<br /><br />1990年代可以说是IT产业的一个黄金时代。信息时代的兴起对IT人员，特别是软件人员有着巨大的需求。而软件开发又是一种类似艺术创作的脑力活动，和所有的艺术家、作家们一样，在作品打上自己的印记并流传在世界上是每一个创作人员的梦想。<br /><br />互联网时代下的高收入的舒适生活，早九晚五的编写公司的代码并不能满足很多有激情的软件开发人员的梦想，再加上西方传统的基督教文化中十分推崇的分享和交流，开源的出现和兴起也就水到渠成了。<br /><br />今天，开源运动已经不仅仅是一些个人天才程序员们的游乐园地，而是发展成为一项开源软件产业。<br /><br /><br /><br /></font>
				<a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350858.aspx">
						<font face="Verdana" size="2">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350858.aspx</font>
				</a>
				<br />
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:57 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之五：Java 2平台发布（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77588.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:54:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77588.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77588.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77588.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                      Java十大事件之五：Java 2平台发布</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                     1998：Java 2平台发布<br /><br />                                                    陶文 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />1998年，<font color="#0000ff">Java 2平台</font>正式发布。<br /><br />经过了三年时间的发展、热热闹闹的攻关宣传、红红火火的众厂商的热情参与，Sun终于知道Java适合干什么了。<br /><br />对比Java刚发明时的技术定位，与Java的戏剧性触“网”的那段历史，Java 2平台的发布可真算得上是有的放矢了。<br /><br />根据官方的文档，Java 2是Sun意识到“<font color="#0000ff">one size doesn’t fit all</font>”之后，把最初的Java技术打包成三个版本的产物，也就是著名的<font color="#0000ff">J2ME、J2SE、J2EE</font>。<br /><br />之所以说Java自从Java 2平台发布之后，进入了现代。那是因为之前的历史怎么看来都和现在程序员日常开发使用的技术无什么关系，比如Applet，已经很少有人使用了。<br /><br />Java 2之后的历史就不一样了，至少人们在推崇轻量级开发，猛批EJB时还不时会引用<font color="#0000ff">J2EE</font>这个词是如何诞生的。<br /><br />而Java 2的三大版本中，除了J2EE得到了长足发展和广泛使用之外，<font style="BACKGROUND-COLOR: #ffffff" color="#0000ff">J2ME</font>也在手机市场上取得了遍地开花的结果。<br /><br />相较之下，<font color="#0000ff">J2SE</font>难免落寞，只剩SWT这个血统不纯的家伙在Rich Client回归的时代吸引着人们的眼球了。<br /><br />无论今天看来当时的Java 2有多么的不成熟，至少经过市场和时间的检验，Java 2规划出来的三大方向把Java技术指向了光明的方向是勿庸置疑的。 <br /><br /><br /><br /><a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350825.aspx">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350825.aspx<br /></a></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:54 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之四：微软与Sun的Java官司（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77586.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:50:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77586.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77586.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77586.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77586.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                   Java十大事件之四：微软与Sun的Java官司</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                  1997-2001：微软与Sun的Java官司<br /><br />                                                     孟岩 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br /><font color="#0000ff">Java</font>诞生的1995年，正是微软在软件产业地位达到巅峰的时代，<font color="#0000ff">Windows 95</font>发布时的风光场面给人们留下的深刻印象至今难忘。<br /><br />尽管如此，作为最卓越的技术领袖，比尔•盖茨仍然敏锐地注意到Java。<br /><br />当他了解了Java的一些细节之后，给予了这样的评价：<br /><br /><font color="#0000ff">“Java是很长时间以来最优秀的程序设计语言。”</font><br /><br />基于此，微软于1996年3月申请并获得了Java许可证。微软对于Java的这一热情态度在当时大大提高了人们对Java的兴趣和信心，但也有不少人担心微软会依靠自己强大的影响力在标准之外另立标准，从而破坏Java的纯洁性。<br /><br />果然，从1997年发布Visual J++的第一个版本开始，微软就开始在Java中掺入自己的私有扩展。这毫无疑问引起Sun的高度重视。<br /><br />1997年10月，Sun向美国加州地方法院起诉微软公司违反两公司就微软使用Java技术所签定的合同，指控微软公司在自己的Java产品中做了“不恰当的修改”，违反了合同中承诺向用户提供Java兼容产品的条款。<br /><br />这一官司旷日持久，直到2001年1月双方达成和解，微软将继续提供采用Sun开发的Java技术的现有产品（包括测试版）。不过，Sun有限制地仅对包括Java 1.1.4的微软产品提供许可。<br /><br />到了2001年7月，微软公布新版的Windows XP将不再支持Sun的JVM，并且推出了.NET平台与Java分庭抗礼。<br /><br />现在回过头去看，当时的这一场官司对Java世界产生了深远的影响。如果没有这一场官司，也许很多Java程序员都在使用Visual J++，基于WFC开发Windows客户端程序，同时不得不面对被两个不同的事实标准所分裂的Java世界。<br /><br /><br /><br /><a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350819.aspx">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350819.aspx</a></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:50 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之三：盟主地位就此定（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77584.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77584.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77584.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77584.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#000080" size="3">                                     Java十大事件之三：盟主地位就此定</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                 1996：Java大跃进，盟主地位就此定<br /><br />                                                   马伟 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><br />Sun在1996年一开始首先成立了<font color="#0000ff">JavaSoft</font>组织，并在1月23日正式发布自己的Java 1.0，作为20世纪业界出现的最重要的技术之一，Java引起了编程世界的革命。直到现在，Java仍然是互联网上最流行的语言。<br /><br />在Sun正式发布Java 1.0之后，Java这门新生的语言就拥有了自己的会议——<font color="#0000ff">JavaOne</font>，这次会议初试啼音就吸引了600多名参与者。除了拥有这么多的积极参与者来进行Java的开发之外，各大知名公司也纷纷向Sun申请Java的许可。<br /><br />一时间，NetScape、惠普、IBM、Oralce、Sybase甚至当时刚推出Windows 95的微软都是Java的追随者。<br /><br />Java的应用就像是世界上的顶级玩家们组成的一个公开联盟，告诉全世界我们大家就是都在用着Java。也正是因为如此，Java也找到了自己的归宿。<br /><br />现在的J2EE已经成为中大型企业级应用的标准，成为承接数据库和Web之间的一个重要桥梁。<br /><br />当年Java的机会实在太多了，以至于很难知道到底该做什么。最终Java在应用服务器市场获得了难以取代的地位，也确定了J2EE的发展方向，并且仍将延续下去。 <br /><br /><br /><br /><a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350806.aspx">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350806.aspx</a></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:46 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Java十大事件之二：Java香浓世界（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77580.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77580.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77580.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77580.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77580.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#0000ff">                                            </font>
						<font color="#000080">
								<font size="3">Java十大事件之二：Java香浓世界</font>
						</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                  1995：Java香浓世界<br /><br />                                                  马伟 / 文   <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br />1995年，Sun正式对外公布了Java，并且发布了JDK 1.0。<br /><br />这种外形酷似C++，却包含一颗Smalltalk般纯洁的面向对象之心的全新程序设计语言及其平台，几乎在一夜之间就成为软件产业的新宠儿。<br /><br />Java当时仅仅被用来为网站制作一些动态应用，诸如动画图片之类，但这仍然引起了很多Web开发者们的注意，他们非常渴望有一种安全的语言，可以在静态的HTML网页上制作动画图片。<br /><br />Sun最终把Java集成到NetScape浏览器。同时因为它具有“只写一次，随处运行”的特性，而引起了很多开发者的注意，他们可以再也不用为了使程序能够在不同型号的硬件上运行而耗费大量的时间来编译代码了。<br /><br />当时的Web浏览器的出现也为Java的出现起到了很好的推动作用，通过Java和Web浏览器的结合，人们似乎看到了什么，有人甚至预言PC将在一两年内退出历史的舞台，取而代之的是基于Java的浏览器应用程序，通过网络计算设备来进行应用。<br /><br />Java的出现为当时的软件产业带来了无限的遐想。 <br /><br /><br /><br /><a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350792.aspx">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350792.aspx</a></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:39 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java十大事件之一：Java源起（转载）</title><link>http://www.blogjava.net/majianan/archive/2006/10/27/77578.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Fri, 27 Oct 2006 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/27/77578.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/77578.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/27/77578.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/77578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/77578.html</trackback:ping><description><![CDATA[
		<font size="2">
				<font face="Verdana">
						<font color="#0000ff">                                             </font>
						<font color="#000080" size="3">Java十大事件之一：Java源起</font>
				</font>
		</font>
		<div class="postText">
				<font face="Verdana" size="2">                                                  1990-1994：Java源起<br /><br />                                                  孟岩 / 文     <a href="/majianan"><font color="#0000ff">马嘉楠</font></a> / 编辑<br /><br /><font color="#0000ff">LarryWall</font> 说，优秀程序员应有的三个特点：懒惰、急躁和傲慢。<br /><br />Java就是诞生在一群懒惰、急躁而傲慢的程序天才之中。<br /><br />1990年12月，Sun的工程师 Patrick Naughton 被当时糟糕的Sun C++工具折磨的快疯了。他大声抱怨，并威胁要离开Sun 转投当时在Steve Jobs领导之下的NeXT公司。领导层为了留住他，给他一个机会，启动了一个叫做Stealth（秘密行动）的项目。<br /><br />随着 <font color="#0000ff">James Gosling</font> 等人的加入，这个项目更名为Green。其目标是使用C++为嵌入式设备开发一种新的基础平台技术，James Gosling 本人负责开发一个SGML编辑器。<br /><br />正如人们事后分析的那样，这位天才的程序员<br /><br />太懒惰——所以没有把C++学好，开发中碰了一头包；<br />太急躁——所以不愿意停下来读读<font color="#0000ff">Scott Meyers</font>的新书《Effective C++》；<br />太傲慢——所以轻易地决定开发一中新的编程语言。<br /><br />他把这种语言命名为C++++--，意思是C++“加上一些好东西，减去一些坏东西”。显然这个糟糕的名字不可能长命百岁，很快这种颇受同伴喜爱的小语言被命名为Oak。<br /><br />到了1992年9月，Oak语言连同Green OS和一些应用程序一起发布在称做Start 7的小设备上，从而使之有了第一次精彩的亮相。随后，Sun开了一家名为FirstPerson的公司，整个团队被转移到这家公司里研发机顶盒，以投标时代华纳公司的一个项目。<br /><br />这帮天才被技术狂热所鼓舞，开发出了一个高交互性的设备，结果没想到时代华纳公司和有线电视服务商并不愿意用户拥有那么大的控制权，从而在竞标之战中败给了SGI。Oak的锋芒之锐，竟然把客户都给吓懵了。Sun沮丧地关闭了FirstPerson，召回了整个团队。<br /><br />事实证明，传统行业中那些脑满肥肠的保守主义者是腐朽没落的。<br /><br />回去！回到激情澎湃的IT产业，抓住互联网的大潮，这才是出路！<br /><br />1994年，Oak被命名为<font color="#0000ff">Java</font>，针对互联网的新一轮开发如火如荼，一切已经就绪，熔岩在地下奔流，火山即将喷发。<br /><br /><br /><br /><a href="http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350759.aspx">http://blog.csdn.net/programmer_editor/archive/2006/10/25/1350759.aspx<br /></a></font>
		</div>
<img src ="http://www.blogjava.net/majianan/aggbug/77578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-27 11:33 <a href="http://www.blogjava.net/majianan/archive/2006/10/27/77578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在java中使用循环定义会出现哪些问题？ </title><link>http://www.blogjava.net/majianan/archive/2006/10/19/76100.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Thu, 19 Oct 2006 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/19/76100.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/76100.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/19/76100.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/76100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/76100.html</trackback:ping><description><![CDATA[
		<font face="Verdana">
				<font size="4">
						<font color="#0000ff">                              在Java中使用循环定义会出现哪些问题 <img height="20" src="http://www.blogjava.net/Emoticons/emquestion.gif" width="20" border="0" /></font> <br /><br /></font>
				<font size="2">                                              </font>
		</font>
		<a href="/majianan">
				<font face="Verdana" color="#0000ff" size="2">马嘉楠</font>
		</a>
		<font face="Verdana">
				<font size="2">
						<font color="#0000ff"> </font>       2006-10-19 </font>
		</font>
		<p>
				<br />
				<font face="Verdana" size="2">在上一篇文章《 </font>
				<a href="/majianan/archive/2006/10/18/75972.html?Pending=true#Post">
						<font face="Verdana" color="#0000ff" size="2">inconstant constants ( 变化无常的常量 )</font>
				</a>
				<font face="Verdana" size="2">  》的基础上,我们再来研究一下<font color="#000000">在 Java 中使用循环定义会出现哪些问题</font>。</font>
		</p>
		<p>
				<font face="Verdana" size="2">老规矩，代码伺候 ^+^</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">例1：<br /><br /></span>
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">class</span>
						</font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassX{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">X </span><span style="COLOR: #000000">=</span> <span style="COLOR: #000000">2</span><span style="COLOR: #000000">*</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassY.Y;<br />}<br /><br /></span>
								<span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">class</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassY{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">Y </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">ClassZ.Z</span><span style="COLOR: #000000">+</span> <span style="COLOR: #000000">1</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">;<br />}<br /><br /></span>
								<span style="COLOR: #0000ff">public</span>
								<span style="COLOR: #0000ff">class</span>
								<span style="COLOR: #000000"> ClassZ </span>
								<span style="COLOR: #0000ff">extends</span>
						</font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassX{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> Z</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> X </span><span style="COLOR: #000000">+</span> <span style="COLOR: #000000">3</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">;<br />}<br /><br /></span>
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">class </span>
						</font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassTest{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">void</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">main(String[] args){<br />      System.out.println(ClassX.X</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">ClassY.Y</span>
								<span style="COLOR: #000000">+</span>
						</font>
				</font>
				<span style="COLOR: #000000">
						<font face="Verdana" size="2">ClassZ.Z);<br />   }<br />} <br /></font>
				</span>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">代码中的static final变量X，Y，Z，循环定义。</font>
		</p>
		<p>
				<font face="Verdana" size="2">你可以先想一下，这个值会是多少？看看与实际结果是否一致。</font>
		</p>
		<p>
				<font face="Verdana" size="2">输出结果：</font>
				<br />
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Code_Closed_Image_105656" onclick="this.style.display='none'; Code_Closed_Text_105656.style.display='none'; Code_Open_Image_105656.style.display='inline'; Code_Open_Text_105656.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
				<img id="Code_Open_Image_105656" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_105656.style.display='none'; Code_Closed_Image_105656.style.display='inline'; Code_Closed_Text_105656.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
				<span id="Code_Closed_Text_105656" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
				</span>
				<span id="Code_Open_Text_105656" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<span style="COLOR: #000000">15</span>
						<span style="COLOR: #000000">
								<br />
						</span>
				</span>
		</div>
		<p>
				<br />
		</p>
		<p>
				<font face="Verdana" size="2">现在对ClassTest.java进行一点修改，如下：<br /><br /></font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">例2：<br /><br /></span>
								<span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">class</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">ClassTest{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span><span style="COLOR: #0000ff">void</span></font>
				</font>
				<font face="Verdana">
						<font size="2">
								<span style="COLOR: #000000">main(String[] args){<br />      System.out.println(ClassZ.Z</span>
								<span style="COLOR: #000000">+</span>
								<span style="COLOR: #000000">ClassY.Y</span>
								<span style="COLOR: #000000">+</span>
						</font>
				</font>
				<span style="COLOR: #000000">
						<font face="Verdana" size="2">ClassX.X);<br />   }<br />} </font>
				</span>
		</div>
		<p>
				<font face="Verdana" size="2">两次的输出结果会一样么？<br />我既然这么问了，你肯定会说不一样，那你知道原因么？你知道这次的输出结果么？<br />可以先思考一下。<br /><br />输出结果：</font>
				<br />
		</p>
		<p>
				<font face="Verdana" size="2">
				</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<img id="Code_Closed_Image_105721" onclick="this.style.display='none'; Code_Closed_Text_105721.style.display='none'; Code_Open_Image_105721.style.display='inline'; Code_Open_Text_105721.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
				<img id="Code_Open_Image_105721" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_105721.style.display='none'; Code_Closed_Image_105721.style.display='inline'; Code_Closed_Text_105721.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
				<span id="Code_Closed_Text_105721" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
				</span>
				<span id="Code_Open_Text_105721" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<span style="COLOR: #000000">8</span>
						<span style="COLOR: #000000">
								<br />
						</span>
				</span>
		</div>
		<p>
				<br />让我来告诉你这是怎么回事。</p>
		<p>
				<font face="Verdana" size="2">我们可以看见，对于三个staitc final 变量 X，Y，Z，他们的初始化表达式是循环定义的。在编译期间不能确定它们的值，所以它们是运行期间常量( runtime constants )，编译器不会进行常量替换。<br />而且每个表达式的计算将会依赖于类装载的顺序。<br /><br />例如，为了计算出例1中的 ClassTest 结果，我们可以预见，ClassX 是第一个被装载的类，但是第一个完成初始化的类却是 ClassZ.<br /><br />让我们一步一步看看都发生了什么。<br /><br />1.   X = 2 * ClassY.Y;      计算X，需要知道ClassY.Y的值，下一步计算Y值<br />2.   Y = ClassZ.Z + 1;      计算Y，需要知道ClassZ.Z的值，下一步计算Z值<br />3.   Z = X + 3;                计算Z，需要知道X的值，而此时X的值还没有被计算出来(又转回来了，居然是个圈，呵呵^+^)，所以我们使用X的默认值0。<br /><br /></font>
				<font face="Verdana">
						<font size="2">
								<font color="#0000ff">因此：<br /></font>      Z = 3;<br />      Y = 4;<br />      X = 8;<br /><br />所以 ClassX.X + ClassY.Y + ClassZ.Z  =  15</font>
				</font>
		</p>
		<p>
				<font face="Verdana" size="2">例2当中，也是同一道理<br />不同的是，ClassZ是第一个被装载的类，ClassX是第一个完成初始化的类<br />1. Z = X + 3; <br />2. X = 2 * ClassY.Y; <br />3. Y = ClassZ.Z + 1;(此时使用Z的默认值0)<br /><br /><font color="#0000ff">因此：</font><br />      Y = 1;<br />      X = 2;<br />      Z = 5;<br /><br />所以 ClassZ.Z + ClassY.Y + ClassX.X = 8</font>
		</p>
		<p>
				<font face="Verdana" size="2">只是简单的改变的输出顺序，结果却截然不同。哪一个才是你想要得结果呢？</font>
		</p>
		<p>
				<font face="Verdana" size="2">我的例子看起来有点挖空心思钻牛角尖，但是在大型项目当中，也许就会出现与例子当中相同的循环定义，如果真的存在的话，那么在纷繁的代码当中想要发现循环定义可不是件容易的事情。<br /><br />如果独立看每一个定义的话，似乎都可以进行常量替换，看不出任何问题。但是这样的代码在不久的将来就会引发问题，而且不易被我们所察觉。<br /><br />在你的应用程序当中不经意的代码改变（例如示例代码中我们只是改变了输出顺序，却产生了截然不同的结果），就会导致不同的类装载顺序和计算顺序，或者在并发的线程调度中，可能也会导致致不同的类装载顺序和计算顺序。不幸的是，大多数编译器不认为这种代码是错误，也不会对编程人员给出任何警告。</font>
		</p>
		<p>
				<font face="Verdana" size="2">我只是讲了一下循环定义会引发的问题，我暂时也想不出什么好的解决办法，只能在编程的过程当中尽量注意啦。<br /><br /><br />注：有错误请告诉我，非常感谢！</font>
		</p>
<img src ="http://www.blogjava.net/majianan/aggbug/76100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-19 10:58 <a href="http://www.blogjava.net/majianan/archive/2006/10/19/76100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>inconstant constants（变化无常的常量）</title><link>http://www.blogjava.net/majianan/archive/2006/10/18/75972.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Wed, 18 Oct 2006 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/18/75972.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/75972.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/18/75972.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/75972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/75972.html</trackback:ping><description><![CDATA[
		<p>
				<font face="Verdana">
						<font style="BACKGROUND-COLOR: #ffffff" color="#000000">
								<font color="#0000ff">                       <font size="4">         inconstant constants</font> ( 变化无常的常量 )</font> </font> <br />                                          <br />                                           </font>
				<a href="/majianan">
						<font face="Verdana">
								<font color="#0000ff">马嘉楠</font>
						</font>
				</a>
				<font face="Verdana">               2006-10-18 <br /><br /><br /></font>
				<font face="Verdana" size="2">看到这个题目也许你会感到奇怪，会想我在胡说八道什么，一定又是起个怪异的名字，骗取点击率。还请你耐心看完，如果你有所收获，那么我很高兴；如果你还是觉得上当了，那我继续努力写出点有用的东西，呵呵。<br /><br />其实我想了很久，也还是不知道起一个什么题目好，就套用了《 <font color="#0000ff">The Java Language Specification </font>》中的一个名词“ <font color="#0000ff">inconstant constants</font>”，我把他翻译成“<font color="#0000ff">变化无常的常量</font>” </font>
		</p>
		<p>
				<font face="Verdana" size="2">注：部分内容在《 </font>
				<a href="/majianan/archive/2006/10/14/75097.html">
						<font size="2">
								<font face="Verdana">
										<font color="#0000ff">使用Java中的final变量需要注意的地方</font>
								</font>
						</font>
				</a>
				<font face="Verdana" size="2">》有提到，不过我转载的原文不够详细深入，这才重新写一下。<br /></font>
		</p>
		<p>
				<font face="Verdana" size="2">我们还是来先看一段代码，由代码引出问题：<br /><br /></font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">class</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> ClassX {<br />   </span>
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">static </span>
								<span style="COLOR: #0000ff">final </span>
								<span style="COLOR: #0000ff">int</span>
								<span style="COLOR: #000000">  X  </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000">   </span>
								<span style="COLOR: #000000">2</span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000"> ;<br />}<br /><br /></span>
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">class </span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">ClassTest {<br />   </span>
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">static </span>
								<span style="COLOR: #0000ff">void </span>
						</font>
				</font>
				<span style="COLOR: #000000">
						<font face="Verdana" size="2">main(String[] args){<br />      System.out.println(ClassX.X);<br />   }<br />}   </font>
				</span>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">输出结果：<br /><br />2 </font>
		</p>
		<p>
				<font face="Verdana" size="2">结果是显而易见的，这里需要说明的是：<br />根据Java语言规范，对于java中的static final变量，如果用一个在编译期间(complie time)可以计算出结果的表达式进行初始化，则用到此变量的地方会被该表达式的结果所替代。本例中，在编译期间，ClassTest.main() 函数中 ClassX.X 将被2所替代。<br /><br />此时，在类ClassTest main()中不再有指向ClassX的动态链接，告诉ClassTest在运行的时候从ClassX获得X的值，你可以通过使用javap反编译器帮助你理解。<br /><br />1. 先编译ClassTest.java文件<br />            javac ClassTest.java<br />2. 使用javap<br />            javap -c ClassTest<br /><br />屏幕输出： <br /><br /></font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">Complied from "ClassTest.java"<br />public class ClassTest extends java.lang.Object{<br />public ClassTest();<br />   Code:<br />      0: aload_0<br />      1: invokespecial     #1; //Method java/lang/Object."&lt;init&gt;</span>
						</font>
				</font>
				<font face="Verdana" size="2">
						<span style="COLOR: #000000">":()V<br />      4: return<br /><br />public static void main(java.lang.String[]);<br />   Code:<br />      0: getstatic         #2; //Field java/lang/System.out:Ljava/io/PrintStream;<br />      3: iconst_2 <br />      4: invokevirtua      #3; //Method java/io/PrintStream.println:(I)V<br />      7: return<br /><br />} </span>
				</font>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">可以看出，在调用System.out.println()之前，整数2已经被放在JVM的堆栈中，不再有指向ClassX.X的链接。如果此时，改变ClassX.X的值为1,并且重新编译ClassX.X文件，但是并不重新编译ClassTest.java文件，运行ClassTest，输出结果仍然是2.<br /><br />这么做(常量替换)的一个原因是为了在编译期间检查switch case语句。switch语句中的每一个case都需要一个常量值，而且每两个之间都不能相同，编译器在编译期间将会做检查。 <br /><br />如果用来给static final变量进行初始化的表达式，只能在运行时刻才可以计算出值，那么常量替换就不会发生.例如： </font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #0000ff">public </span>
								<span style="COLOR: #0000ff">class </span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">ClassX {<br /></span>
								<span style="COLOR: #0000ff">   public </span>
								<span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #0000ff">int</span> X<span style="COLOR: #000000"> </span><span style="COLOR: #000000">=</span> <span style="COLOR: #0000ff">new</span>  </font>
				</font>
				<span style="COLOR: #000000">
						<font face="Verdana" size="2">java.util.Random().nextInt();<br />}   </font>
				</span>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">ClassX 改变了，我们再来看一下Main.main(): </font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">Complied from "ClassTest.java"<br />public class ClassTest extends java.lang.Object{<br />public ClassTest();<br />   Code:<br />      0: aload_0<br />      1: invokespecial      #1; //Method java/lang/Object."&lt;init&gt;</span>
						</font>
				</font>
				<font face="Verdana" size="2">
						<span style="COLOR: #000000">":()V<br />      4: return<br /><br />public static void main(java.lang.String[]);<br />   Code:<br />      0: getstatic          #2; //Field java/lang/System.out:Ljava/io/PrintStream;<br />      3: getstatic          #3; //Field ClassX.X:I <br />      6: invokevirtual      #4; //Method java/io/PrintStream.println:(I)V<br />      9: return<br /><br />} </span>
				</font>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">此时我们可以看见有个引用指向了Field X。<br />( 如果把类ClassX改成Interface，仍然会出现上面的结果 ) <br /><br />当然有方法可以使你避免出现<font color="#0000ff">"inconstant constants"</font>问题。<br /><br /></font>
				<font size="2">
						<font face="Verdana">
								<font color="#008000">
										<font color="#000080">第一种方法：</font>
										<br />
								</font>当你要声明一个编译期间常量的时候，一定要保证此变量不会或者不太可能改变，或者尽量少使用声明为static final的变量。当然这只能治标不能治本，所以我推荐使用第二种方法。<br /><br /><font color="#000080">第二种方法：</font><br />将变量声明为private，同时声明一个方法来获得此变量的值 <br /></font>
				</font>
		</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">ClassX.java修改如下： </span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #0000ff">public<font color="#000000"></font></span>
								<span style="COLOR: #0000ff">class</span>  </font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">ClassX {<br /></span>
								<span style="COLOR: #0000ff">   private</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">final</span> <span style="COLOR: #0000ff">int</span> <span style="COLOR: #000000">X </span><span style="COLOR: #000000">=</span> <span style="COLOR: #000000">2</span></font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">;<br /></span>
								<span style="COLOR: #0000ff">   public  </span>
								<span style="COLOR: #0000ff">static </span>
								<span style="COLOR: #0000ff">int </span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">getX(){<br /></span>
								<span style="COLOR: #0000ff">      return </span>
						</font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">X;<br />   }<br />}<br /><br /></span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">ClassTest.java修改如下： </span>
						</font>
				</font>
				<span style="COLOR: #008000">
						<br />
				</span>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">class</span>  </font>
				</font>
				<font size="2">
						<font face="Verdana">
								<span style="COLOR: #000000">ClassTest{<br /></span>
								<span style="COLOR: #0000ff">   public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">void</span>  </font>
				</font>
				<font face="Verdana" size="2">
						<span style="COLOR: #000000">main(String[] args){<br />      System.out.println(ClassX.getX());<br />   }<br />} </span>
				</font>
		</div>
		<p>
				<br />
				<font face="Verdana" size="2">此时再改变ClassX.X的值为1，重新编译ClassX.java，而不编译ClassTest，结果就会显示1，而非2。这就避免了"<font color="#0000ff">inconstant constants</font>"的问题。 <br /><br />下一篇准备讲一下</font>
				<a href="/majianan/archive/2006/10/19/76100.html">
						<font face="Verdana" color="#0000ff" size="2">《在java中使用循环定义会出现哪些问题？》</font>
				</a>
				<font face="Verdana" color="#0000ff" size="2">
				</font>
		</p>
		<p>
				<br />
				<font face="Verdana">  </font>
		</p>
<img src ="http://www.blogjava.net/majianan/aggbug/75972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-18 16:27 <a href="http://www.blogjava.net/majianan/archive/2006/10/18/75972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《如何让你的程序运行的更快》系列文章（持续更新） </title><link>http://www.blogjava.net/majianan/archive/2006/10/16/75441.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Mon, 16 Oct 2006 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/16/75441.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/75441.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/16/75441.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/75441.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/75441.html</trackback:ping><description><![CDATA[
		<font face="Verdana">
				<font size="4">
						<font color="#0000ff">                                         如何让你的程序运行的更快<br /><br /></font>                                                        </font>
				<font size="3"> <a href="/majianan"><font color="#0000ff">马嘉楠</font></a>   </font>
				<font color="#000000">
						<font size="3">2006.9.14 ---</font>
						<font size="4"> </font>
				</font>
		</font>
		<font face="Verdana" size="4"> <br /><br /><br /></font>
		<font face="Verdana" size="3">注：其实更多的是我的学习笔记，也有一些技巧。一边学习，一边写。希望对你能有所帮助，如有错误，请告诉我，谢谢。<br /></font>
		<a href="/majianan/archive/2006/09/14/69706.html">
				<font color="#0000ff">
						<br />
				</font>
				<font color="#0000ff">
						<br />
						<font face="Verdana">
								<font size="4">
										<strong>如何让你的程序运行的更快 </strong>
										<font color="#000000">
												<font color="#000000">(1)<strong> --- </strong></font>
										</font>
										<strong>String <font color="#ff0000">VS </font>StringBuffer</strong>
								</font>
								<strong>
								</strong>
						</font>
				</font>
		</a>
		<font color="#0000ff">
		</font>
		<br />
		<br />
		<a href="/majianan/archive/2006/09/20/70493.html">
				<font size="4">
						<font face="Verdana">
								<font color="#0000ff">
										<strong>如何让你的程序运行的更快</strong>
										<font color="#000000">(1)<strong><font color="#0000ff">之续</font> ---</strong></font>
										<strong>揭秘 StringBuffer 的 capacity</strong>
								</font>
						</font>
				</font>
		</a>
		<br />
		<br />
		<a href="/majianan/archive/2006/11/09/80184.html">
				<font face="Verdana">
						<font size="4">
								<font color="#0000ff">
										<strong>如何让你的程序运行的更快</strong>
								</font>
								<font color="#000000">(2) </font>
								<font color="#000000">---<strong></strong></font>
								<font color="#0000ff">
										<strong>
												<font style="BACKGROUND-COLOR: rgb(255,255,255)" color="#0000ff">JavaScript </font>中的<font color="#0000ff">数组</font>之<font color="#ff0000">字符串下标</font>的运用</strong>
								</font>
						</font>
						<br />
				</font>
		</a>
		<br />
		<br />
		<br />
<img src ="http://www.blogjava.net/majianan/aggbug/75441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-16 16:41 <a href="http://www.blogjava.net/majianan/archive/2006/10/16/75441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 构建项目公共辅助类__CommonUtils（持续更新）</title><link>http://www.blogjava.net/majianan/archive/2006/10/16/75440.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Mon, 16 Oct 2006 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/16/75440.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/75440.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/16/75440.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/75440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/75440.html</trackback:ping><description><![CDATA[<font size="4"><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 构建项目公共辅助类__CommonUtils</font> <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><a href="/majianan"><font color="#0000ff">马嘉楠</font> </a><font size="4"><font size="3"><font color="#0000ff">&nbsp;&nbsp;</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2006.10.16 ---<br />
</font><br />
<span style="font-size: 10pt"><font size="4">注：CommonUtils还远远没有完成，我会逐步完善。希望你也能参与进来^+^<br />
<br />
<br />
这里，我自己起了一个名字，<font color="#0000ff">项目的公共辅助类 --- CommonUtils</font>。<br />
<br />
CommonUtils 其中包含了一些常用的处理方法，例如根据需要获取相应的时间，字符串的格式转换等。<br />
CommonUtils 作为项目的公共部分，供其它程序进行调用，就好像是一个辅助工具，使我们能更好的完成项目。可以根据需要进行补充完善。<br />
<br />
很多人都有自己的代码库，一些通用的模块或者经典代码都保存其中，CommonUtils 只是其中的一小部分而已.<br />
<br />
<br />
主要内容：<br />
<br />
<span style="font-size: 10pt"><font size="4">Common.Utils.<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DateUtils<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--- <a href="/majianan/archive/2006/10/12/74854.html"><font color="#0000ff">DateFormat.java</font></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font> <font size="4"><font color="#008000">时间日期的一些处理方法<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000">DataUtils<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---&nbsp;<span style="color: #0000ff"><a href="http://www.blogjava.net/majianan/archive/2008/03/24/188166.html"><span style="color: #0000ff">PrintBinary</span><a href="http://www.blogjava.net/majianan/archive/2006/10/12/74854.html"><font color="#0000ff">.java</font></a></a></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font size="4"><font color="#008000">打印整型的二进制格式</font></font><br />
</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringUtils<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--- <a href="/majianan/archive/2006/10/16/75431.html"><font color="#0000ff">MoneyConvert.java</font></a>&nbsp;&nbsp;&nbsp;<font color="#008000">将字符串或者数字转换成大写货币</font><br />
<br />
</font></span></font><font size="4"><br />
</font></span></font>
 <img src ="http://www.blogjava.net/majianan/aggbug/75440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/majianan/" target="_blank">马嘉楠</a> 2006-10-16 16:39 <a href="http://www.blogjava.net/majianan/archive/2006/10/16/75440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将字符串或者数字转换成大写货币</title><link>http://www.blogjava.net/majianan/archive/2006/10/16/75431.html</link><dc:creator>马嘉楠</dc:creator><author>马嘉楠</author><pubDate>Mon, 16 Oct 2006 08:00:00 GMT</pubDate><guid>http://www.blogjava.net/majianan/archive/2006/10/16/75431.html</guid><wfw:comment>http://www.blogjava.net/majianan/comments/75431.html</wfw:comment><comments>http://www.blogjava.net/majianan/archive/2006/10/16/75431.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/majianan/comments/commentRss/75431.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/majianan/services/trackbacks/75431.html</trackback:ping><description><![CDATA[
		<font face="Verdana">
				<font size="2">
						<font color="#0000ff">                                   <font size="4">如何将字符串或者数字转换成大写货币<br /></font><br /></font>                                                   </font>
		</font>
		<a href="/majianan">
				<font face="Verdana">
						<font size="2">
								<font color="#0000ff">马嘉楠</font>
						</font>
				</font>
		</a>
		<font face="Verdana" size="2">          2006-10-16 <br /><br /><br />注：示例程序会将字符串或者数字转换成大写货币的表现形式。可以把这一部分放到字符串处理的公共类 StringUtils 中，和 DateUtils （《<font color="#000000"><a href="/majianan/archive/2006/10/12/74854.html"><font color="#0000ff">时间日期的一些处理方法</font></a>》</font>）一起，作为项目的公共部分 CommonUtils ，供其它程序进行调用。CommonUtils 就好像是一个辅助工具，使我们能更好的完成项目。我会逐步去添加完善 CommonUtils ，你也可以从现在开始创建自己的代码库，毕竟有很多有用的代码是可以复用的。省时省力，何乐而不为？<br /><br /><br /><font color="#0000ff">主要内容：</font><br />MoneyConvert.java --- 本文当中只涉及如何将字符串或者数字转换成大写货币的方法<br /><br /></font>
		<font face="Verdana">
				<font size="2">
						<font color="#0000ff">主要功能：<br /></font>1.   String convertToCapitalMoney(String moneyStr) <br />      将字符串转换成中文的大写货币值<br /><br />2.   String convertToCapitalMoney(double moneyValue)<br />      将数字转换成中文的大写货币值<br /><br /><br /><br />文件：MoneyConvert.java<br /><br /></font>
		</font>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<font face="Verdana">
						<font size="2">
								<img id="Code_Closed_Image_155343" onclick="this.style.display='none'; Code_Closed_Text_155343.style.display='none'; Code_Open_Image_155343.style.display='inline'; Code_Open_Text_155343.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" width="11" align="top" />
								<img id="Code_Open_Image_155343" style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_155343.style.display='none'; Code_Closed_Image_155343.style.display='inline'; Code_Closed_Text_155343.style.display='inline';" height="16" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top" />
								<span id="Code_Closed_Text_155343" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								</span>
						</font>
				</font>
				<span id="Code_Open_Text_155343" style="DISPLAY: none">
						<br />
						<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
						<font face="Verdana" size="2">
								<img src="http://www.b