﻿<?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-Java，你是如此美丽!-文章分类-java</title><link>http://www.blogjava.net/mhl1003/category/46143.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 15 Nov 2012 05:12:56 GMT</lastBuildDate><pubDate>Thu, 15 Nov 2012 05:12:56 GMT</pubDate><ttl>60</ttl><item><title>面向对象设计原则概述</title><link>http://www.blogjava.net/mhl1003/articles/391285.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 13 Nov 2012 16:34:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391285.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391285.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391285.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391285.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391285.html</trackback:ping><description><![CDATA[&nbsp; 
<table style="width: 654pt; border-collapse: collapse; mso-yfti-tbllook: 1536" border="0" cellspacing="0" cellpadding="0" width="872">
<colgroup>
<col style="width: 210pt; mso-width-source: userset" width="280">
<col style="width: 348pt; mso-width-source: userset" width="464">
<col style="width: 96pt; mso-width-source: userset" width="128">
<tbody>
<tr style="height: 16pt; mso-height-source: userset" height="21">
<td style="width: 210pt; height: 16pt" class="oa1" height="21" width="280">
<p style="text-align: center; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: bold; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">设计原则名称</span></p></td>
<td style="width: 348pt" class="oa1" width="464">
<p style="text-align: center; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: bold; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">设计原则简介</span></p></td>
<td style="width: 96pt" class="oa1" width="128">
<p style="text-align: center; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: bold; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">重要性</span></p></td></tr>
<tr style="height: 26.13pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26.13pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">单一职责原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Single Responsibility Principle, SRP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">类的职责要单一，不能将太多的职责放在一个类中</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9733;&#9734;</span></p></td></tr>
<tr style="height: 26pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">开闭原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Open-Closed Principle, OCP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">软件实体对扩展是开放的，但对修改是关闭的，即在不修改一</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">个软件实体的基础上去扩展其功能</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9733;&#9733;</span></p></td></tr>
<tr style="height: 32.75pt; mso-height-source: userset" height="44">
<td style="width: 210pt; height: 32.75pt" class="oa2" height="44" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">里氏代换原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(</span><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">Liskov</span><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"> Substitution Principle, LSP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">在软件系统中，一个可以接受基类对象的地方必然可以接受一</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">个子类对象</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9733;&#9734;</span></p></td></tr>
<tr style="height: 26pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">依赖倒转原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Dependency Inversion Principle, DIP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">要针对抽象层编程，而不要针对具体类编程</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9733;&#9733;</span></p></td></tr>
<tr style="height: 26pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">接口隔离原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Interface Segregation Principle, ISP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">使用多个专门的接口来取代一个统一的接口</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9734;&#9734;&#9734; </span></p></td></tr>
<tr style="height: 26.13pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26.13pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">合成复用原则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Composite Reuse Principle, CRP)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">在系统中应该尽量多使用组合和聚合关联关系，尽量少使用甚</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">至不使用继承关系</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9733;&#9734;</span></p></td></tr>
<tr style="height: 26.38pt; mso-height-source: userset" height="35">
<td style="width: 210pt; height: 26.38pt" class="oa2" height="35" width="280">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">迪米特法则</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: restrictions; punctuation-wrap: simple"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(Law of Demeter, LoD)</span></p></td>
<td style="width: 348pt" class="oa2" width="464">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">一个软件实体对其他实体的引用越少越好，或者说如果两个类</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">不必彼此直接通信，那么这两个类就不应当发生直接的相互作</span></p>
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: zh-CN; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">用，而是通过引入一个第三者发生间接交互</span></p></td>
<td style="width: 96pt" class="oa2" width="128">
<p style="text-align: left; line-height: normal; text-indent: -0.38in; margin: 0pt 0in 0pt 0.38in; unicode-bidi: embed; direction: ltr; vertical-align: baseline; word-break: normal; language: zh-CN; mso-line-break-override: none; punctuation-wrap: hanging"><span style="text-transform: none; font-variant: normal; font-style: normal; font-family: 宋体; color: black; font-size: 12pt; vertical-align: baseline; font-weight: normal; language: en-US; mso-ascii-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-color-index: 1; mso-font-kerning: 12.0pt; mso-text-raise: 0%; mso-style-textoutline-type: none; mso-style-textfill-type: solid; mso-style-textfill-fill-themecolor: text1; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">&#9733;&#9733;&#9733;&#9734;&#9734;</span></p></td></tr></tbody></table><img src ="http://www.blogjava.net/mhl1003/aggbug/391285.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-14 00:34 <a href="http://www.blogjava.net/mhl1003/articles/391285.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java事务处理</title><link>http://www.blogjava.net/mhl1003/articles/391284.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 13 Nov 2012 16:24:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391284.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391284.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391284.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391284.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391284.html</trackback:ping><description><![CDATA[<span class="headline-content">简介</span>　　java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的<a href="http://baike.baidu.com/view/688328.htm" target="_blank">回滚</a>,取消先前的操作..... 
<div class="bpctrl"></div>
<h2 class="headline-1 bk-sidecatalog-title"><span class="text_edit editable-title" data-edit-id="8657554:8619367:2"><a class="nslog:1019" href="http://baike.baidu.com/view/8657554.htm#" tangram_guid="TANGRAM__21">编辑本段</a></span><a name="2"></a><a name="sub8619367_2"></a><span class="headline-content">详细说明</span></h2>　　Java中使用事务处理，首先要求数据库支持事务。如使用MySQL的事务功能，就要求MySQL的表类型为Innodb才支持事务。否则，在Java程序中做了commit或rollback，但在数据库中根本不能生效。 
<div class="spctrl"></div>　　JavaBean中使用JDBC方式进行事务处理 
<div class="spctrl"></div>　　public int delete(int sID) { 
<div class="spctrl"></div>　　<a href="http://baike.baidu.com/view/556921.htm" target="_blank">dbc</a> = new DataBaseConnection(); 
<div class="spctrl"></div>　　Connection con = dbc.getConnection(); 
<div class="spctrl"></div>　　try { 
<div class="spctrl"></div>　　con.setAutoCommit(false);// 更改JDBC事务的默认提交方式 
<div class="spctrl"></div>　　dbc.executeUpdate("delete from xiao where ID=" + sID); 
<div class="spctrl"></div>　　dbc.executeUpdate("delete from xiao_content where ID=" + sID); 
<div class="spctrl"></div>　　dbc.executeUpdate("delete from xiao_affix where bylawid=" + sID); 
<div class="spctrl"></div>　　con.commit();//提交JDBC事务 
<div class="spctrl"></div>　　con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式 
<div class="spctrl"></div>　　dbc.close(); 
<div class="spctrl"></div>　　return 1; 
<div class="spctrl"></div>　　} 
<div class="spctrl"></div>　　catch (Exception exc) { 
<div class="spctrl"></div>　　con.rollBack();//<a href="http://baike.baidu.com/view/688328.htm" target="_blank">回滚</a>JDBC事务 
<div class="spctrl"></div>　　exc.printStackTrace(); 
<div class="spctrl"></div>　　dbc.close(); 
<div class="spctrl"></div>　　return -1; 
<div class="spctrl"></div>　　} 
<div class="spctrl"></div>　　} 
<div class="spctrl"></div>　　在数据库操作中，一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了，整个事务才能被提交到数据库，如果有一项操作没有完成，就必须撤消整个事务。 
<div class="spctrl"></div>　　例如在银行的转帐事务中，假定张三从自己的帐号上把1000元转到李四的帐号上，相关的sql语句如下： 
<div class="spctrl"></div>　　update account set monery=monery-1000 where name='zhangsan' 
<div class="spctrl"></div>　　update account set monery=monery+1000 where name='lisi' 
<div class="spctrl"></div>　　这个两条语句必须作为一个完成的事务来处理。只有当两条都成功执行了，才能提交这个事务。如果有一句失败，整个事务必须撤消。 
<div class="spctrl"></div><span style="color: red">　　在connection类中提供了3个控制事务的方法： </span>
<div class="spctrl"></div><span style="color: red">　　（1） setAutoCommit(Boolean autoCommit):设置是否自动提交事务； </span>
<div class="spctrl"></div><span style="color: red">　　（2） commit();提交事务； </span>
<div class="spctrl"></div><span style="color: red">　　（3） rollback();撤消事务； </span>
<div class="spctrl"></div>　　在jdbc api中，默认的情况为自动提交事务，也就是说，每一条对数据库的更新的sql语句代表一项事务，操作成功后，系统自动调用commit（）来提交，否则将调用rollback（）来撤消事务。 
<div class="spctrl"></div>　　在jdbc api中，可以通过调用setAutoCommit(false) 来禁止自动提交事务。然后就可以把多条更新数据库的sql语句做为一个事务，在所有操作完成之后，调用commit（）来进行整体提交。倘若其中一项 sql操作失败，就不会执行commit（）方法，而是产生相应的sqlexception，此时就可以捕获异常代码块中调用rollback（）方法撤消事务。 <img src ="http://www.blogjava.net/mhl1003/aggbug/391284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-14 00:24 <a href="http://www.blogjava.net/mhl1003/articles/391284.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中成员变量和局部变量的区别</title><link>http://www.blogjava.net/mhl1003/articles/391232.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Mon, 12 Nov 2012 13:45:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391232.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391232.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391232.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391232.html</trackback:ping><description><![CDATA[<div style="position: static; filter: none; line-height: 18px; overflow-x: hidden; overflow-y: hidden; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: normal">
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4"><font style="line-height: normal" color="#000000" size="4"></font>先看下面两段程序：</font></p>
<p style="line-height: normal"><font style="line-height: normal" size="4"><font style="line-height: normal" color="#000000"><strong style="line-height: normal">程序一：</strong><br style="line-height: normal" />public class Variable<br style="line-height: normal" />{<br style="line-height: normal" />int i;<br style="line-height: normal" />void test()<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> int j=8;<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> if(j==i)<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println("相等");<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> else<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println("不相等");<br style="line-height: normal" />}<br style="line-height: normal" />public static void main(String[] args)<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> Variable v=new Variable();<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> v.test();<br style="line-height: normal" />}<br style="line-height: normal" />}<br style="line-height: normal" /></font></font></p>
<p style="line-height: normal"><font style="line-height: normal" size="4"><font style="line-height: normal" color="#000000"><strong style="line-height: normal">程序二：</strong><br style="line-height: normal" />public class Variable<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> void test()<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> int i;<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> int j=8;<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> if(j==i)<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println("相等");<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> else<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> System.out.println("不相等");<br style="line-height: normal" />}<br style="line-height: normal" />public static void main(String[] args)<br style="line-height: normal" />{<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> Variable v=new Variable();<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr> v.test();<br style="line-height: normal" />}<br style="line-height: normal" />}<br style="line-height: normal" /></font></font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">----------------------------------------------------------------------------------------------------------</font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">第一个程序很正常，编译时不会出错。第二个程序编译时会提示如下错误：</font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#ff0000" size="4">D:\Program\java\test&gt;javac Variable.java<br style="line-height: normal" />Variable.java:9: 可能尚未初始化变量 i<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> if(j==i)<br style="line-height: normal" />&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> ^<br style="line-height: normal" />1 错误</font></p>
<p style="line-height: normal"><font style="line-height: normal" size="4"><font style="line-height: normal" color="#000000">之所以会出现这样的错误是因为：<strong style="line-height: normal">成员变量有默认值，（被final修饰且没有static的必须显式赋值），局部变量不会自动赋值</strong></font></font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">===========================================================</font></p>
<p style="line-height: normal"><font style="line-height: normal" size="4"><font style="line-height: normal" color="#000000">类体分为两部分。变量定义部分所定义的变量被称为类的<strong style="line-height: normal">成员变量</strong>，在方法体中定义的变量和方法的参数都被称为<strong style="line-height: normal">局部变量</strong></font></font></p>
<h4 style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">java中成员变量和局部变量的区别</font></h4>
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all">
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><font style="line-height: normal" color="#000000"><font style="line-height: normal" size="4">1.成员变量可以被public，protect，private，static等修饰符修饰，而</font><font style="line-height: normal" size="4">局部变量不能被控制修饰符及static修饰；两者都可以定义成final型</font></font></div>
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><font style="line-height: normal" color="#000000" size="4">2.成员变量存储在堆，局部变量存储在栈</font></div>
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><font style="line-height: normal" color="#000000" size="4">3.存在时间不同</font></div>
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><font style="line-height: normal" color="#000000" size="4">4.成员变量有默认值，（被final修饰且没有static的必须显式赋值），局部变量不会自动赋值<br style="line-height: normal" />-------------------------------------------------------------------------------------------------------------<br style="line-height: normal" /></font>
<div style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><font style="line-height: normal" color="#000000" size="4">顾名思意了<br style="line-height: normal" />什么是局部，方法内部，块内部都是局部，执行指令退出那个局部，局部变量自动清除<br style="line-height: normal" /><br style="line-height: normal" />比如方法中，不用说<br style="line-height: normal" />块中<br style="line-height: normal" />{<br style="line-height: normal" />　 int i=0; //这是一个局部变量，它的作用范围就在其中　<br style="line-height: normal" />}<br style="line-height: normal" /><br style="line-height: normal" />成员变量就会涉及到谁的成员，类的成员？实例的成员？<br style="line-height: normal" /><br style="line-height: normal" />class A{<br style="line-height: normal" />int i=0; //实例的成员<br style="line-height: normal" />static j=1;//类的成员<br style="line-height: normal" />}<br style="line-height: normal" /><br style="line-height: normal" />static 的差别，是否依赖于实例而存在<br style="line-height: normal" />----------------------------------------------------------------------------------------------------------<br style="line-height: normal" /></font>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">成员变量：作为类的成员而存在，直接存在于类中。</font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">局部变量：作为方法或语句块的成员而存在，存在于方法的参数列表和方法定义中。</font></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4"><strong style="line-height: normal">局部变量在使用前必须被程序员主动的初始化，和此形成对比，系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上，类的成员变量能够定义后直接使用，而局部变量在定义后先要赋初值，然后才能使用。</strong></font></p>
<p style="line-height: normal">&nbsp;<wbr></p>
<p style="line-height: normal"><font style="line-height: normal" color="#000000" size="4">所有类的成员变量可以通过this来引用。成员变量又分成俩中类型：实例变量和静态变量。静态变量在定义时要使用</p>
<p style="line-height: normal">static关键字。</font></p></div></div></div></div>
<p>package com;</p>
<p>public class MemberVariable {<br />&nbsp;int v_int;<br />&nbsp;float v_float;<br />&nbsp;boolean v_boolean;<br />&nbsp;String v_string;<br />&nbsp;byte v_byte;<br />&nbsp;short v_short;<br />&nbsp;char v_char;<br />&nbsp;long v_long;<br />&nbsp;<br />&nbsp;public static void main(String[] args)<br />&nbsp;{<br />&nbsp;&nbsp;MemberVariable mv = new MemberVariable();<br />&nbsp;&nbsp;System.out.println("int的默认值:"+mv.v_int);<br />&nbsp;&nbsp;System.out.println("float的默认值:"+mv.v_float);<br />&nbsp;&nbsp;System.out.println("boolean的默认值:"+mv.v_boolean);<br />&nbsp;&nbsp;System.out.println("string的默认值:"+mv.v_byte);<br />&nbsp;&nbsp;System.out.println("short的默认值:"+mv.v_short);<br />&nbsp;&nbsp;System.out.println("char的默认值:"+mv.v_char);<br />&nbsp;&nbsp;System.out.println("long的默认值:"+mv.v_long);<br />&nbsp;}<br />}<br />int的默认值:0<br />float的默认值:0.0<br />boolean的默认值:false<br />string的默认值:0<br />short的默认值:0<br />char的默认值:<br /></p><br /><img src ="http://www.blogjava.net/mhl1003/aggbug/391232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-12 21:45 <a href="http://www.blogjava.net/mhl1003/articles/391232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java为什么可以跨平台 </title><link>http://www.blogjava.net/mhl1003/articles/391230.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Mon, 12 Nov 2012 13:10:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391230.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391230.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391230.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391230.html</trackback:ping><description><![CDATA[<p align="center">&nbsp;</p>
<p>因为JAVA有个属于自己的运行环境，既：JAVA虚拟机，虚拟机与平台无关，JAVA代码经过编译后，直接运行于虚拟机上，实现了跨平台。</p>
<p>1.为什么要使用Java虚拟机</p>
<p>Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。<span style="color: red"><strong>Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。</strong></span></p>
<p>2.谁需要了解Java虚拟机</p>
<p>Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。</p>
<p align="center">&nbsp;</p><img src ="http://www.blogjava.net/mhl1003/aggbug/391230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-12 21:10 <a href="http://www.blogjava.net/mhl1003/articles/391230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java方法参数是引用调用还是值调用?——值调用</title><link>http://www.blogjava.net/mhl1003/articles/391228.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Mon, 12 Nov 2012 12:54:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391228.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391228.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391228.html</trackback:ping><description><![CDATA[<strong><span style="color: rgb(255,0,0)">方法调用(call by)</span>&nbsp;</strong>是一个标准的计算机科学术语。方法调用根据参数传递的情况又分为<strong><span style="color: rgb(255,0,0)">值调用(</span>&nbsp;<span style="color: rgb(255,0,0)">call by reference&nbsp;</span><span style="color: rgb(255,0,0)">)</span>&nbsp;</strong>和<strong><span style="color: rgb(255,0,0)">引用调用(</span>&nbsp;<span style="color: rgb(255,0,0)">call by value&nbsp;</span><span style="color: rgb(255,0,0)">)</span>&nbsp;</strong>。江湖上有很多关于这两种调用的定义 ，最通常的说法是传递值的是值调用，传递地址的是引用调用。这其实很不恰当，这种&nbsp;这些说法很容易让我们联想到Java的对象参数传递是引用调用，实际上，<span style="color: rgb(0,0,255)"><strong>Java的对象参数传递仍然是值调用&nbsp;。</strong>&nbsp;</span><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我们首先用一段代码来证实一下为什么Java的对象参数传递&nbsp;是值调用。 
<div style="text-align: left; padding-bottom: 1px; line-height: 25px; overflow-x: auto; overflow-y: auto; padding-left: 1px; width: 679px; padding-right: 1px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; word-wrap: break-word; margin-left: 9px; word-break: break-all; padding-top: 1px" class="dp-highlighter">
<div class="bar">
<div style="padding-bottom: 3px; margin: 0px; padding-left: 3px; padding-right: 3px; font-weight: bold; padding-top: 3px" class="tools">Java代码&nbsp;&nbsp;<a style="color: rgb(125,0,0)" title="收藏这段代码" href="http://hxraid.iteye.com/blog/428856"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="star" alt="收藏代码" src="http://hxraid.iteye.com/images/icon_star.png" /></a></div></div>
<ol style="border-bottom: rgb(209,215,220) 1px solid; border-left: rgb(209,215,220) 1px solid; padding-bottom: 2px; line-height: 1.4em; margin: 0px 0px 1px; padding-left: 0px; padding-right: 0px; color: rgb(43,145,175); font-size: 1em; border-top: rgb(209,215,220) 1px solid; border-right: rgb(209,215,220) 1px solid; padding-top: 2px" class="dp-j"><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span>&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">class</span>&nbsp;Employee&nbsp;{&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span>&nbsp;String&nbsp;name=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">null</span>;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span>&nbsp;Employee(String&nbsp;n){&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">this</span>.name=n;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(0,130,0)" class="comment">//将两个Employee对象交换</span>&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span>&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">static</span>&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span>&nbsp;swap(Employee&nbsp;e1,Employee&nbsp;e2){&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employee&nbsp;temp=e1;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1=e2;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e2=temp;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e1.name+<span style="color: blue" class="string">"&nbsp;"</span>+e2.name);&nbsp;<span style="color: rgb(0,130,0)" class="comment">//打印结果：李四&nbsp;张三</span>&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(0,130,0)" class="comment">//主函数</span>&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">public</span>&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">static</span>&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employee&nbsp;worker=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">new</span>&nbsp;Employee(<span style="color: blue" class="string">"张三"</span>);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employee&nbsp;manager=<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">new</span>&nbsp;Employee(<span style="color: blue" class="string">"李四"</span>);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap(worker,manager);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(worker.name+<span style="color: blue" class="string">"&nbsp;"</span>+manager.name);&nbsp;<span style="color: rgb(0,130,0)" class="comment">//打印结果仍然是：&nbsp;张三&nbsp;李四</span>&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&nbsp;&nbsp;</span></li></ol></div>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上面的结果让人很失望，虽然形参对象e1,e2的内容交换了，但实参对象worker,manager并没有互换内容。这里面最重要的原因就在于<span style="color: rgb(0,0,255)">形参e1,e2是实参worker,manager的地址拷贝。</span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大家都知道，在Java中对象变量名实际上代表的是对象在堆中的地址(专业术语叫做<strong><span style="color: rgb(255,0,0)">对象引用</span>&nbsp;</strong>)。在Java方法调用的时候，参数传递的是对象的引用。<span style="color: rgb(0,0,255)">重要的是，形参和实参所占的内存地址并不一样，形参中的内容只是实参中存储的对象引用的一份拷贝。</span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;如果大家对JVM内存管理中<strong><span style="color: rgb(255,0,0)">Java栈</span>&nbsp;</strong>的<strong><span style="color: rgb(255,0,0)">局部变量区</span>&nbsp;</strong>有所了解的话(可以参见《&nbsp;<a style="color: rgb(125,0,0)" href="http://hxraid.iteye.com/blog/676235">Java 虚拟机体系结构</a>&nbsp;》)，就很好理解上面这句话。在JVM运行上面的程序时，运行main方法和swap方法，会在Java栈中先后push两个叫做<strong><span style="color: rgb(255,0,0)">栈帧</span></strong>的内存空间。main栈帧中有一块叫局部变量区的内存用来存储实参对象worker和manager的引用。而swap栈帧中的局部变量区则存储了形参对象e1和e2的引用。虽然e1和e2的引用值分别与worker和manager相同，但是它们占用了不同的内存空间。当e1和e2的引用发生交换时，下面的图很清晰的看出完全不会影响worker和manager的引用值。</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" alt="" src="http://hxraid.iteye.com/upload/picture/pic/65223/2da606a7-2302-3ed0-82c4-b92527ad0676.jpg" width="500" height="314" /></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java对象参数传递虽然传递的是地址(引用)，但仍然是值调用。是时候需要给引用调用和值调用一个准确的定义了。</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><span style="color: rgb(255,0,0)">&nbsp;</span><span style="color: rgb(255,0,0)">值调用(call by value)&nbsp;</span><span style="color: rgb(255,0,0)">：</span>&nbsp;</strong><span style="color: rgb(255,0,0)">在参数传递过程中，形参和实参占用了两个完全不同的内存空间。形参所存储的内容是实参存储内容的一份拷贝。<span style="color: rgb(0,0,0)">实际上，Java对象的传递就符合这个定义，只不过形参和实参所储存的内容并不是常规意义上的变量值，而是变量的地址。咳，回过头想想：变量的地址不也是一种值吗！</span></span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><strong><span style="color: rgb(128,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(255,0,0)">引用调用(call by reference)</span>&nbsp;</span></strong><span style="color: rgb(255,0,0)">：</span>&nbsp;<span style="color: rgb(255,0,0)">在参数传递的过程中，形参和实参完全是同一块内存空间，两者不分彼此。</span>实际上，形参名和实参名只是编程中的不同符号，在程序运行过程中，内存中存储的空间才是最重要的。不同的变量名并不能说明占用的内存存储空间不同。</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大体上说，两种调用的根本并不在于传递的是值还是地址(毕竟地址也是一个值)，而是在于形参和实参是否占用同一块内存空间。事实上，C/C++的指针参数传递也是值调用，不信试试下面的C代码吧！</p>
<div style="text-align: left; padding-bottom: 1px; line-height: 25px; overflow-x: auto; overflow-y: auto; padding-left: 1px; width: 679px; padding-right: 1px; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; word-wrap: break-word; margin-left: 9px; word-break: break-all; padding-top: 1px" class="dp-highlighter">
<div class="bar">
<div style="padding-bottom: 3px; margin: 0px; padding-left: 3px; padding-right: 3px; font-weight: bold; padding-top: 3px" class="tools">C代码&nbsp;&nbsp;<a style="color: rgb(125,0,0)" title="收藏这段代码" href="http://hxraid.iteye.com/blog/428856"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="star" alt="收藏代码" src="http://hxraid.iteye.com/images/icon_star.png" /></a></div></div>
<ol style="border-bottom: rgb(209,215,220) 1px solid; border-left: rgb(209,215,220) 1px solid; padding-bottom: 2px; line-height: 1.4em; margin: 0px 0px 1px; padding-left: 0px; padding-right: 0px; color: rgb(43,145,175); font-size: 1em; border-top: rgb(209,215,220) 1px solid; border-right: rgb(209,215,220) 1px solid; padding-top: 2px" class="dp-cpp"><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: gray" class="preprocessor">#include&lt;stdio.h&gt;</span>&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(127,0,85); font-weight: bold" class="keyword">void</span>&nbsp;swap(<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;*a1,<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;*b1){&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;*t=a1;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;a1=b1;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;b1=t;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black"><span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;main(){&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;x1=100;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;x2=200;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;*a=&amp;x1;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(46,139,87); font-weight: bold" class="datatypes">int</span>&nbsp;*b=&amp;x2;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;printf(<span style="color: blue" class="string">"%d&nbsp;%d\n"</span>,*a,*b);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;swap(a,b);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;printf(<span style="color: blue" class="string">"%d&nbsp;%d\n"</span>,*a,*b);&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(127,0,85); font-weight: bold" class="keyword">return</span>&nbsp;0;&nbsp;&nbsp;</span></li><li style="border-left: rgb(209,215,220) 1px solid; padding-bottom: 0px; line-height: 18px; background-color: rgb(250,250,250); margin: 0px 0px 0px 38px; padding-left: 10px; padding-right: 0px; font-size: 1em; padding-top: 0px"><span style="color: black">}&nbsp;&nbsp;</span></li></ol></div>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但C/C++是有引用调用的，这就是C/C++一种叫做引用的变量声明方法： int a; int &amp;ra=a; 其中ra是a的别名，两者在内存中没有区别，占用了同一个内存空间。而通过引用(别名)的参数传递就符合引用调用的特点了。大家可以去试试</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px">void swap(int &amp;a1,int &amp;b1);的运行结果。</p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><br /></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><span style="text-align: left; line-height: 25px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px">&nbsp; &nbsp;我们首先用一段代码来证实一下为什么Java的对象参数传递&nbsp;是地址传递。</span><br /></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 25px; margin-top: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; margin-bottom: 0px; font-size: 14px; padding-top: 0px"><span style="text-align: left; line-height: 25px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px"></span></p>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools"><strong>[java]</strong> <a class="ViewSource" title="view plain" href="http://blog.csdn.net/novelly/article/details/7260591#"><u><font color="#0066cc">view plain</font></u></a><a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/novelly/article/details/7260591#"><u><font color="#0066cc">copy</font></u></a><a class="PrintSource" title="print" href="http://blog.csdn.net/novelly/article/details/7260591#"><u><font color="#0066cc">print</font></u></a><a class="About" title="?" href="http://blog.csdn.net/novelly/article/details/7260591#"><u><font color="#0066cc">?</font></u></a></div></div>
<ol class="dp-j"><li class="alt"><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;Employee&nbsp;{&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;String&nbsp;name=</span><span class="keyword">null</span><span>;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;Employee(String&nbsp;n){&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.name=n;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;change(Employee&nbsp;e1){&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e1.name&nbsp;=&nbsp;</span><span class="string">"李四"</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e1.name);&nbsp;</span><span class="comment">//打印结果：李四 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//主函数 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employee&nbsp;worker=</span><span class="keyword">new</span><span>&nbsp;Employee(</span><span class="string">"张三"</span><span>);&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;change(worker);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(worker.name);&nbsp;</span><span class="comment">//打印结果仍然是：&nbsp;李四 </span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li></ol></div><img src ="http://www.blogjava.net/mhl1003/aggbug/391228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-12 20:54 <a href="http://www.blogjava.net/mhl1003/articles/391228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j的作用</title><link>http://www.blogjava.net/mhl1003/articles/391039.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Thu, 08 Nov 2012 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/391039.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/391039.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/391039.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/391039.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/391039.html</trackback:ping><description><![CDATA[<span>&nbsp; 
<p><font face="Times New Roman">一、什么是log4j<br />Log4j 是Apache的一个开放源代码项目，通过使用Log4j，我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等；我们也可以控制每一条日志的输出格式；通过定义每一条日志信息的级别，我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是，这些可以通过一个配置文件来灵活地进行配置，而不需要修改应用的代码。 </font></p>
<p><font face="Times New Roman">二、日志简介<br />日志指在程序中插入语句以提供调试信息。使用日志能够监视程序的执行。例如，用户利用日志可以获得关于应用程序故障的完整信息。用户可以将调试语句（如 System.out.println）插入到程序中以获得详细的调试信息。 </font></p>
<p><font face="Times New Roman">三、项目中为什么要用log4j<br />大家在编程时经常不可避免地要使用到一些日志操作，比如开发阶段的调试信息、运行时的日志记录及审计。调查显示，日志代码占代码总量的4％。通常大家可以简单地使用System.out.println()语句输出日志信息，但是往往会有一些判断，比如： <br />&nbsp;<br />if (someCondition) <br />{<br />&nbsp;&nbsp;System.out.println("some information.");<br />}</font></p>
<p><font face="Times New Roman">这些判断造成正常的程序逻辑中混杂了大量的输出语句。而在开发阶段写下的这些判断仅为了调试的语句，在开发完成时需要查找并移除。部署运行后，尤其是在一些企业应用系统中，还经常需要进一步调试，这时就遇到了更大的麻烦。所以，我们需要一套完备的、灵活的、可配置的日志工具log4J就是优秀的选择。 </font></p>
<p><font face="Times New Roman">四、log4j组件<br />Log4j 由 logger、appender 和 layout 三个组件组成。可以通过同名的 Java 类访问 Log4j 的这三个组件。</font></p>
<p><span><font face="Times New Roman">Logger - 在执行应用程序时，接收日志语句生成的日志请求。它是一种重要的日志处理组件， 可以通过 log4j API 的 logger 类对其进行访问。它的方法有：debug、info、warn、error、fatal 和 log。这些方法用于记录消息。 <br />Appender - 管理日志语句的输出结果。执行日志语句时，Logger 对象将接收来自日志语句的记录请求。此请求是通过 logger 发送至 appender 的。然后，Appender 将输出结果写入到用户选择的目的地。对于不同的日志目的地，提供不同的 appender 类型。这些 appender 包括：用于文件的 file appender、用于数据库的 JDBC appender 和用于 SMTP 服务器的 SMTP appender。 <br />Layout - 用于指定 appender 将日志语句写入日志目的地所采用的格式。appender 可以用来格式化输出结果的各种布局包括：简单布局、模式布局和 HTML 布局。</font></span></p></span><img src ="http://www.blogjava.net/mhl1003/aggbug/391039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-11-08 17:09 <a href="http://www.blogjava.net/mhl1003/articles/391039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几种任务调度的 Java 实现方法与比较</title><link>http://www.blogjava.net/mhl1003/articles/390551.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 31 Oct 2012 09:23:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390551.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390551.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390551.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390551.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390551.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 综观目前的 Web 应用，多数应用都具备任务调度的功能。本文由浅入深介绍了几种任务调度的 Java 实现方法，包括 Timer，Scheduler, Quartz 以及 JCron Tab，并对其优缺点进行比较，目的在于给需要开发任务调度的程序员提供有价值的参考。&nbsp;前言任务调度是指基于给定时间点，给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Jav...&nbsp;&nbsp;<a href='http://www.blogjava.net/mhl1003/articles/390551.html'>阅读全文</a><img src ="http://www.blogjava.net/mhl1003/aggbug/390551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-31 17:23 <a href="http://www.blogjava.net/mhl1003/articles/390551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java学习之Iterator(迭代器)的一般用法 （转） </title><link>http://www.blogjava.net/mhl1003/articles/390509.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 31 Oct 2012 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390509.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390509.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390509.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390509.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390509.html</trackback:ping><description><![CDATA[<div id="cnblogs_post_body">
<p><font face="Arial">迭代器（Iterator）</font></p>
<p><font face="Arial">　　迭代器是一种设计模式，它是一个对象，它可以遍历并选择序列中的对象，而开发人员不需要了解该序列的底层结构。迭代器通常被称为&#8220;轻量级&#8221;对象，因为创建它的代价小。</font></p>
<p><font face="Arial">　　Java中的Iterator功能比较简单，并且只能单向移动：</font></p>
<p><font face="Arial">　　(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时，它返回序列的第一个元素。注意：iterator()方法是java.lang.Iterable接口,被Collection继承。</font></p>
<p><font face="Arial">　　(2) 使用next()获得序列中的下一个元素。</font></p>
<p><font face="Arial">　　(3) 使用hasNext()检查序列中是否还有元素。</font></p>
<p><font face="Arial">　　(4) 使用remove()将迭代器新返回的元素删除。</font></p>
<p><font face="Arial">　　Iterator是Java迭代器最简单的实现，为List设计的ListIterator具有更多的功能，它可以从两个方向遍历List，也可以从List中插入和删除元素。</font></p>
<p><font face="Arial">迭代器应用：<br />&nbsp;list l = new ArrayList();<br />&nbsp;l.add("aa");<br />&nbsp;l.add("bb");<br />&nbsp;l.add("cc");<br />&nbsp;for (Iterator iter = l.iterator(); iter.hasNext();) {<br />&nbsp;&nbsp;String str = (String)iter.next();<br />&nbsp;&nbsp;System.out.println(str);<br />&nbsp;}<br />&nbsp;/*迭代器用于while循环<br />&nbsp;Iterator iter = l.iterator();<br />&nbsp;while(iter.hasNext()){<br />&nbsp;&nbsp;String str = (String) iter.next();<br />&nbsp;&nbsp;System.out.println(str);<br />&nbsp;}<br />&nbsp;*/</font></p></div><img src ="http://www.blogjava.net/mhl1003/aggbug/390509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-31 11:25 <a href="http://www.blogjava.net/mhl1003/articles/390509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>外部访问类的私有方法和私有属性</title><link>http://www.blogjava.net/mhl1003/articles/390499.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 31 Oct 2012 01:58:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390499.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390499.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390499.html</trackback:ping><description><![CDATA[package com.alex.ssh.tool;<br />import java.lang.reflect.Field;&nbsp; <br />import java.lang.reflect.Method;&nbsp; <br />&nbsp; <br />/** <br />&nbsp;* 用Java反射机制来调用private方法 <br />&nbsp;* @author WalkingDog <br />&nbsp;* <br />&nbsp;*/&nbsp; <br />&nbsp; <br />public class Reflect {&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws Exception {&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //直接创建对象&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Person person = new Person();&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class&lt;?&gt; personType = person.getClass();&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问私有方法&nbsp;&nbsp; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //getDeclaredMethod可以获取到所有方法，而getMethod只能获取public&nbsp;&nbsp; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Method method = personType.getDeclaredMethod("say", String.class);&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //压制Java对访问修饰符的检查&nbsp;&nbsp; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method.setAccessible(true);&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调用方法;person为所在对象&nbsp;&nbsp; </span><br /><span style="color: red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method.invoke(person, "Hello World !");&nbsp; </span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //访问私有属性&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Field field = personType.getDeclaredField("name");&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field.setAccessible(true);&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //为属性设置值;person为所在对象&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; field.set(person, "WalkingDog");&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("The Value Of The Field is : " + person.getName());&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp; <br />}&nbsp; <br />&nbsp; <br />//JavaBean&nbsp;&nbsp; <br />class Person{&nbsp; <br />&nbsp;&nbsp;&nbsp; private String name;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; //每个JavaBean都应该实现无参构造方法&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public Person() {}&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public String getName() {&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return name;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp; <br />&nbsp; <br />&nbsp;&nbsp;&nbsp; private void say(String message){&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("You want to say : " + message);&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp; <br />}<img src ="http://www.blogjava.net/mhl1003/aggbug/390499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-31 09:58 <a href="http://www.blogjava.net/mhl1003/articles/390499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP内置对象之五——PAGE </title><link>http://www.blogjava.net/mhl1003/articles/390171.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 24 Oct 2012 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390171.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390171.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390171.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390171.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390171.html</trackback:ping><description><![CDATA[<p>page对象就是指向当前JSP页面本身，有点象类中的this指针，它是java.lang.Object类的实例</p>
<p>序号 方 法 说 明&nbsp;<br />1&nbsp; class getClass 返回此Object的类&nbsp;<br />2&nbsp; int hashCode() 返回此Object的hash码&nbsp;<br />3&nbsp; boolean equals(Object obj) 判断此Object是否与指定的Object对象相等&nbsp;<br />4&nbsp; void copy(Object obj) 把此Object拷贝到指定的Object对象中&nbsp;<br />5&nbsp; Object clone() 克隆此Object对象&nbsp;<br />6&nbsp; String toString() 把此Object对象转换成String类的对象&nbsp;<br />7&nbsp; void notify() 唤醒一个等待的线程&nbsp;<br />8&nbsp; void notifyAll() 唤醒所有等待的线程&nbsp;<br />9&nbsp; void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒&nbsp;<br />10&nbsp; void wait() 使一个线程处于等待直到被唤醒&nbsp;<br />11&nbsp; void enterMonitor() 对Object加锁&nbsp;<br />12&nbsp; void exitMonitor() 对Object开锁</p>
<p>参考地址：http://edu.codepub.com/2009/1018/16461_3.php</p><img src ="http://www.blogjava.net/mhl1003/aggbug/390171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-24 16:13 <a href="http://www.blogjava.net/mhl1003/articles/390171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pageContext的作用</title><link>http://www.blogjava.net/mhl1003/articles/390167.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 24 Oct 2012 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390167.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390167.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390167.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390167.html</trackback:ping><description><![CDATA[pageContext 隐含物件对应於javax.servlet.jsp.PageContext型态之物件，，隐含物件都自动的被加入至pageContext中，您可以藉由它来取得与JSP相关的隐含物件对应之Servlet物件，像是getRequest()可以取得ServletRequest， getServletConfig()可以取得ServletConfig，getSession()可以取得HttpSession等等。提供取得隐含物件对应之Servlet物件并不是pageContext的主要作用，它的主要功能在提供一个单一个介面，以管理各种的公开物件（像是 HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse等等），提供一个单一的API来管理属性作用范围等等。<br />我们之前曾经使用过session的setAttribute()等方法设定一个进程可以共用的属性物件，使用session设定的属性在同一个进程中可以共用，除了session之外，还有pageContext、 request、application也都可以使用setAttribute()之类的方法（详请查阅API文件）来设定可以共用的属性物件，只不过这四个物件所设定的属性其共用范围各不相同。<br /><strong>使用pageContext所设定的属性物件，其共用范围限於同一个 JSP页面，使用request所设定的属性物件，其在同一个request处理期间可以共用（包括forward给其它JSP页面），session物件所设定的属性物件则限於同一个进程作用期间可以共用，而application物件所设定的属性，则在整个Web应用程式中的JSP页面都可以共用。<br /><br /></strong>以下举application为例，您可以将一些物件当作属性设定给application，则另一个JSP页面就可以在适当的时候取得这个属性物件，例如：<br /><br />&lt;%<br />String attr = "字串物件";<br />out.println("设定属性给application：" + attr);<br />application.setAttribute("str", attr);<br />%&gt;<br /><br /><br /><br />我们先连上这个JSP网页以执行属性设定，然后我们再连上这个JSP网页：<br /><br />&lt;%<br />String attr = (String) application.getAttribute("str");<br />out.println("取得application属性：" + attr);<br />%&gt;<br /><br /><br /><br />由於我们之前已经将字串物件设定在application中作为属性，所以我们可以在上面这个页面中取得之前设定的物件，同样的道理，您也可以用相同的方式设定属性给pageContext、request、session等物件，只要在允许的作用范围中，就可以取得所设定的属性物件。<br /><br />您可以使用pageContext物件来设定属性，并指定属性的作用范围，而不用使用个别的pageContext、request、session、 application来进行设定，这就是之前所提的，以pageContext提供一个单一的API来管理属性作用范围，您可以使用以下的方法来进行设定：<br /><br />getAttribute(String name, int scope)<br />setAttribute(String name, Object value, int scope)<br />removeAttribute(String name, int scope)<br /><br /><br /><br />其中的scope可以使用以下的常数来进行指定：pageContext.PAGE_SCOPE、pageContext.REQUEST_SCOPE、 pageContext.SESSION_SCOPE、pageContext.APPLICATION_SCOPE，常数的名称已经直接指明属性范围，我们可以将上面的两个JSP页面改为以下的形式：<br /><br />&lt;%<br />String attr = "字串物件";<br />out.println("设定属性给application：" + attr);<br />pageContext.setAttribute("str", attr, pageContext.APPLICATION_SCOPE);<br />%&gt;<br /><br /><br /><br />&lt;%<br />String attr = (String) pageContext.getAttribute("str", pageContext.APPLICATION_SCOPE);<br />out.println("取得application属性：" + attr);<br />%&gt;<img src ="http://www.blogjava.net/mhl1003/aggbug/390167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-24 15:55 <a href="http://www.blogjava.net/mhl1003/articles/390167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ServletRequest,HttpServletRequest ServletResponse,HttpServletResponse的区别</title><link>http://www.blogjava.net/mhl1003/articles/390166.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 24 Oct 2012 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/390166.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/390166.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/390166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/390166.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/390166.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">所有Servlet响应都实现ServletResponse接口。ServletResponse接口主要有以下方法：<br />　　（1）从Servlet中可以通过getWriter方法取得PrintWriter对象，来输出字符数据。从Servlet中可以通过getOutputStream方法取得ServletoutputStream对象。ServletOutputStream既可以输出字符数据，也可以输出MIME格式的二进制数据。如果getWriter方法已经被使用过，当使用getOutputStream时，会有java.lang.IllegalStateException例外抛出。<br />　　（2）setContentType方法：在响应中可以表明内容格式和长短。<br />　　（3）setBufferSize方法：设置Web容器的缓冲器大小; getBufferSize方法返回Web容器的缓冲器大小; resetBuffer方法清空并重置缓冲器，使用reset方法清空缓冲器、状态头信息，使用flushBuffer方法将缓冲器内的所有输出内容向客户传递。使用isCommitted方法判断是否响应已经被履行。&#8220;履行&#8221;的定义是指状态码冬耕信息已经被写入响应。<br />　　（4）setLocal方法设定响应的地域信息，主要在Web程序的国际货币国际化时使用。这个方法应该在getWriter之前被使用。默认的Web服务器的地域信息。<br />　　HttpServletResponse继承了ServletResponse接口，并提供了与Http协议有关的方法，这些方法的主要功能是设置HTTP状态码和管理Cookie。<br />　　（1）setStatus方法用来设置Servlet向客户端返回的状态码，它用来设置没有出错的状态。如果Servlet运行出错，Servlet可以使用sendError方法设置状态码，如sendError(int sc)方法设置错误状态代码。sendError(int sc,String msg)方法除了设置状态码，还向客户发出一条错误信息。<br />　　（2）setHeader可以指定特定名称的头信息的值，addDateheader，addIntHeader，setDateHeader，setIntHeader可以加入或理性特定时间或整数型头信息。<br />　　（3）addCookie方法可以在Web服务器响应中加入Cookie对象，这个对象将被浏览器所保存。Cookie机制也被用来维护会话状态。<br />　　（4）sendRedirect方法向客户发出临时重新导向的响应。它生成的响应状态码为302。该响应给了客户一个新的URL风趣。如果缓冲器已经被清空，这个方法会弹出一个IllegalStateException例外。</p>
<p style="text-indent: 2em">内置对象是不需要声明，直接可以在JSP中使用的对象，JSP有以下几种内置对象： <br />request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息，并且提供了几个用于获取cookie, header, 和session数据的有用的方法。<br />response response表示HttpServletResponse对象，并提供了几个用于设置送回浏览器的响应的方法（如cookies,头信息等）<br />out out 对象是javax.jsp.JspWriter的一个实例，并提供了几个方法使你能用于向浏览器回送输出结果。<br />pageContext pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API，并且包装了通用的servlet相关功能的方法。<br />session session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息<br />application applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息<br />config config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。<br />page page表示从该页面产生的一个servlet实例。</p>
<p style="text-indent: 2em">Servlet API中的几个对象<br />JSP提供了八个内部对象，而其中的五个内部对象对应于Servlet API中的七个对象，这也就使得我们正常理解并熟练使用Servlet中的这七个对象显得尤其重要。这五个JSP的内部对象和Servlet API中的对象的对应关系是：<br />request对象对应于：javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest<br />response对象对应于：javax.servlet.http.HttpServletResponse和javax.servlet.ServletResponse<br />session对象对应于：javax.servlet.http.HttpSession<br />application对象对应于：javax.servlet.ServletContext<br />config对象对应于：javax.servlet.ServletConfig<br />javax.servlet.http.HttpServletRequest<br />这是一个接口，在我们提到接口之前，还是让我们来复习一下Java中接口的一个初步的解释：<br />接口在语法上与类相似，但是接口没有实例，使用接口，只是指定类必须做什么而不是如何做。<br /><strong>/*重点如下*/<br /><span style="color: red">HttpServletRequest接口用来处理一个对Servlet的HTTP格式的请求信息。</span><br /><span style="color: red">javax.servlet.ServletRequest</span><br /><span style="color: red">这也是一个接口，这个接口定义一个Servlet引擎产生的对象，通过这个对象，Servlet可以获得客户端请求的数据。这个对象通过读取请求体的数据提供包括参数的名称、值和属性以及输入流的所有数据。而javax.servlet.http.HttpServletRequest也只是该接口的一个扩展，也就是说，该接口的所有方法也可以被javax.servlet.http.HttpServletRequest所使用。</span><br /></strong>javax.servlet.http.HttpServletResponse接口<br />该接口用来描述一个返回到客户端的HTTP回应。<br />javax.servlet.ServletResponse接口<br />该接口用来定义一个Servlet引擎产生的对象，通过这个对象，Servlet对客户端的请求作出响应。这个响应应该是一个MIME实体，可能是一个HTML页、图象数据或其他MIME的格式。javax.servlet.http.HttpServletResponse接口是该接口的扩展。<br />javax.servlet.http.HttpSession接口<br />该接口用来描述一个session，至于什么是session我想在这里就没必要说了吧。<br />javax.servlet.ServletContext接口<br />该接口用来定义了一个Servlet的环境对象。也可是认为这是多个客户端共享的信息，它与session的区别在于应用范围的不同，session只对应于一个用户。<br />javax.servlet.ServletConfig接口<br />该接口定义了一个对象，通过这个对象，Servlet引擎配置一个Servlet。每一个ServletConfig对象对应着一个唯一的Servlet。<br />javax.servlet.http.Cookie类<br />这个类描述了一个cookie，cookie的作用其实与session很类似，只是cookie保存在客户端，session保存在服务器端</p><img src ="http://www.blogjava.net/mhl1003/aggbug/390166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2012-10-24 15:19 <a href="http://www.blogjava.net/mhl1003/articles/390166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>protected方法能不能被继承</title><link>http://www.blogjava.net/mhl1003/articles/336474.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Fri, 29 Oct 2010 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336474.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336474.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336474.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336474.html</trackback:ping><description><![CDATA[<pre>public 都可以被继承或访问；
protected在同一包，他的子类都可以去继承或访问；
default，在同一包中可以被继承或访问，子类如果和父类不在一个包，也不能继承；
private,必须在一个类中才能被访问。 </pre>
</ca><!-- 导入 在此 参考资料--><!-- end 参考资料-->
<img src ="http://www.blogjava.net/mhl1003/aggbug/336474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-29 12:40 <a href="http://www.blogjava.net/mhl1003/articles/336474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Socket工作在OSI七层模型中的哪一层？ </title><link>http://www.blogjava.net/mhl1003/articles/336473.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Fri, 29 Oct 2010 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336473.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336473.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336473.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336473.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336473.html</trackback:ping><description><![CDATA[<p>第7层<span style="color: red">应用层</span>—直接对应用程序提供服务，应用程序能变化，但要包括电子消息传输 .<br />
应用层为操作系统或网络应用程序提供访问网络服务的接口。<br />
应用层协议的代表包括：Telnet、FTP、HTTP、SNMP等。<br />
</p>
<img src ="http://www.blogjava.net/mhl1003/aggbug/336473.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-29 12:37 <a href="http://www.blogjava.net/mhl1003/articles/336473.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不使用第三个变量而交换两个变量的值，如何实现？</title><link>http://www.blogjava.net/mhl1003/articles/336367.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Thu, 28 Oct 2010 04:36:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336367.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336367.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336367.html</trackback:ping><description><![CDATA[<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #808080">//</span><span style="color: #000000">Java实现<br />
<img id="Codehighlighter1_9_15_Open_Image" onclick="this.style.display='none'; Codehighlighter1_9_15_Open_Text.style.display='none'; Codehighlighter1_9_15_Closed_Image.style.display='inline'; Codehighlighter1_9_15_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_9_15_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_9_15_Closed_Text.style.display='none'; Codehighlighter1_9_15_Open_Image.style.display='inline'; Codehighlighter1_9_15_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_9_15_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_9_15_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080">方法1</span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />void&nbsp;swap(</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">&nbsp;a,</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">&nbsp;b)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />a&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />b&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">&nbsp;b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />a&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">&nbsp;b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}<br />
<img id="Codehighlighter1_77_87_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_87_Open_Text.style.display='none'; Codehighlighter1_77_87_Closed_Image.style.display='inline'; Codehighlighter1_77_87_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_77_87_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_77_87_Closed_Text.style.display='none'; Codehighlighter1_77_87_Open_Image.style.display='inline'; Codehighlighter1_77_87_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_77_87_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_77_87_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080">方法2--异或</span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />void&nbsp;swap(</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">&nbsp;a,</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">&nbsp;b)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />a&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a</span><span style="color: #808080">^</span><span style="color: #000000">b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />b&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a</span><span style="color: #808080">^</span><span style="color: #000000">b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />a&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;a</span><span style="color: #808080">^</span><span style="color: #000000">b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />}</span></div>
<img src ="http://www.blogjava.net/mhl1003/aggbug/336367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-28 12:36 <a href="http://www.blogjava.net/mhl1003/articles/336367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Singleton（单例）模式</title><link>http://www.blogjava.net/mhl1003/articles/336305.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 27 Oct 2010 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336305.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336305.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336305.html</trackback:ping><description><![CDATA[Singleton可以说是《Design Pattern》中最简单也最实用的一个设计模式。那么，什么是Singleton？<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 顾名思义，Singleton就是确保一个类只有唯一的一个实例。Singleton主要用于对象的创建，这意味着，如果某个类采用了Singleton模式，则在这个类被创建后，它将有且仅有一个实例可供访问。很多时候我们都会需要Singleton模式，最常见的比如我们希望整个应用程序中只有一个连接数据库的Connection实例；又比如要求一个应用程序中只存在某个用户数据结构的唯一实例。我们都可以通过应用Singleton模式达到目的。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一眼看去，Singleton似乎有些像全局对象。但是实际上，并不能用全局对象代替Singleton模式，这是因为：其一，大量使用全局对象会使得程序质量降低，而且有些编程语言例如C#，根本就不支持全局变量。其二，全局对象的方法并不能阻止人们将一个类实例化多次：除了类的全局实例外，开发人员仍然可以通过类的构造函数创建类的多个局部实例。而Singleton模式则通过从根本上控制类的创建，将"保证只有一个实例"这个任务交给了类本身，开发人员不可能再有其它途径得到类的多个实例。这一点是全局对象方法与Singleton模式的根本区别。 <br />
<br />
<pre>首先保证类中有唯一的一个构造器，而且是private的，私有的，就是除了在该类中其他地方都不可以访问的。
其次有一个私有的private该类型的变量，这个变量可以在声明的的时候就实例化，也可以在构造器中调用的时候再实例化，但是，在构造器中实例化时要先判断：
private A a;
public A(){
if(a == null)
a= new A();
}
这样就可以保证只有一个A的实例，
淡然最重要的是要有个public的返回A类型变量的方法，用来返回这个唯一的变量
public A returnA(){
return a;
}
这样就可以了，实际上就三方面：
1，一个私有的构造器
2，一个私有的该类类型的变量
3，必须有一个共有的返回类型为该类类型的方法，用来返回这个唯一的变量 </pre>
</ca><!-- 导入 在此 参考资料--><!-- end 参考资料--><!-- 导入 在此 内容提供--><!--end 内容提供 --><!-- 导入 在此-->
 <img src ="http://www.blogjava.net/mhl1003/aggbug/336305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-27 18:01 <a href="http://www.blogjava.net/mhl1003/articles/336305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ArrayList,Vector,LinkedList的区别</title><link>http://www.blogjava.net/mhl1003/articles/336267.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Wed, 27 Oct 2010 04:27:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336267.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336267.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336267.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336267.html</trackback:ping><description><![CDATA[<dl>
<dt>
<pre></pre>
<tt>
<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"><br />
ArrayList的定义：<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;ArrayList</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractList</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;RandomAccess,&nbsp;Cloneable,&nbsp;Serializable<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
List</tt> 接口的大小可变数组的实现。实现了所有可选列表操作，并允许包括 <tt>null</tt> 在内的所有元素。除了实现 <tt>List</tt> 接口外，此类还提供一些方法来操作内部用来存储列表的数组的大小。（此类大致上等同于 <tt>Vector</tt> 类，除了<span style="color: red">此类是不同步</span>的。）</dt>
<dt>
<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList</span><span style="color: #000000">&lt;</span><span style="color: #000000">Integer</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ArrayList</span><span style="color: #000000">&lt;</span><span style="color: #000000">Integer</span><span style="color: #000000">&gt;</span><span style="color: #000000">();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.add(</span><span style="color: #000000">3</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.add(</span><span style="color: #000000">4</span><span style="color: #000000">);<br />
<img id="Codehighlighter1_146_247_Open_Image" onclick="this.style.display='none'; Codehighlighter1_146_247_Open_Text.style.display='none'; Codehighlighter1_146_247_Closed_Image.style.display='inline'; Codehighlighter1_146_247_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_146_247_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_146_247_Closed_Text.style.display='none'; Codehighlighter1_146_247_Open_Image.style.display='inline'; Codehighlighter1_146_247_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(Iterator</span><span style="color: #000000">&lt;</span><span style="color: #000000">Integer</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;iterator&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a.iterator();&nbsp;iterator.hasNext();)&nbsp;</span><span id="Codehighlighter1_146_247_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_146_247_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;number&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;iterator.next();&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(number);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span></div>
</dt></dl>
<dl>
<dt>
<pre></pre>
<code>
<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">Vector定义：<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Vector</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractList</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;RandomAccess,&nbsp;Cloneable,&nbsp;Serializable<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
Vector</code> 类可以实现可增长的对象数组。与数组一样，它包含可以使用整数索引进行访问的组件。但是，<code>Vector</code> 的大小可以根据需要增大或缩小，以适应创建 <code>Vector</code> 后进行添加或移除项的操作。<span style="color: red">Vector是同步的</span>。</dt></dl><br />
LinkedList定义：<br />
<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;LinkedList</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractSequentialList</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;Deque</span><span style="color: #000000">&lt;</span><span style="color: #000000">E</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;Cloneable,&nbsp;Serializable</span></div>
<br />
<p><tt>List</tt> 接口的链接列表实现。实现所有可选的列表操作，并且允许所有元素（包括 <tt>null</tt>）。除了实现 <tt>List</tt> 接口外，<tt>LinkedList</tt> 类还为在列表的开头及结尾 <tt>get</tt>、<tt>remove</tt> 和 <tt>insert</tt> 元素提供了统一的命名方法。这些操作允许将链接列表用作<span style="color: red">堆栈</span>、<a title="java.util 中的接口" style="color: red" href="mk:@MSITStore:F:\备份文件\E盘备份\eclipse-jee-galileo-SR1-win32\JDK_API_1_6_zh_CN.CHM::/java/util/Queue.html">队列</a>或<a title="java.util 中的接口" style="color: red" href="mk:@MSITStore:F:\备份文件\E盘备份\eclipse-jee-galileo-SR1-win32\JDK_API_1_6_zh_CN.CHM::/java/util/Deque.html">双端队列</a>。此实现<span style="color: red">不是同步</span>的</p>
 <img src ="http://www.blogjava.net/mhl1003/aggbug/336267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-27 12:27 <a href="http://www.blogjava.net/mhl1003/articles/336267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Overriding和Overloding的区别</title><link>http://www.blogjava.net/mhl1003/articles/336219.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 26 Oct 2010 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336219.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336219.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336219.html</trackback:ping><description><![CDATA[<img height="108" alt="" src="http://www.blogjava.net/images/blogjava_net/mhl1003/OO.jpg" width="513" border="0" />
<img src ="http://www.blogjava.net/mhl1003/aggbug/336219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-26 21:24 <a href="http://www.blogjava.net/mhl1003/articles/336219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hashtable和HashMap的区别</title><link>http://www.blogjava.net/mhl1003/articles/336217.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Tue, 26 Oct 2010 13:22:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336217.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336217.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336217.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336217.html</trackback:ping><description><![CDATA[1.Hashtable原型如下：继承的是Dictionary类，实现了Map接口<br />
<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Hashtable</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Dictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Map</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;Cloneable,&nbsp;Serializable<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<dt>HashMap原型如下：实现了Map接口：
<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;HashMap</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractMap</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Map</span><span style="color: #000000">&lt;</span><span style="color: #000000">K,V</span><span style="color: #000000">&gt;</span><span style="color: #000000">,&nbsp;Cloneable,&nbsp;Serializable<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</dt>2.Hashtable是线程同步的，HashMap在默认情况下是非线程同步的<br />
3.Hashtable不允许key和value为null,而HashMap允许。<br />
4.由于底层的实现机制不同，HashMap的速度快于Hashtable,因为HashMap不需要同步检查，建议在非多线程环境中使用HashMap代替Hashtable。
<img src ="http://www.blogjava.net/mhl1003/aggbug/336217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-26 21:22 <a href="http://www.blogjava.net/mhl1003/articles/336217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>古典问题：有一对兔子...</title><link>http://www.blogjava.net/mhl1003/articles/336034.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Sun, 24 Oct 2010 11:51:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/336034.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/336034.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/336034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/336034.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/336034.html</trackback:ping><description><![CDATA[<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Vector;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_39_133_Open_Image" onclick="this.style.display='none'; Codehighlighter1_39_133_Open_Text.style.display='none'; Codehighlighter1_39_133_Closed_Image.style.display='inline'; Codehighlighter1_39_133_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_39_133_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_39_133_Closed_Text.style.display='none'; Codehighlighter1_39_133_Open_Image.style.display='inline'; Codehighlighter1_39_133_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_39_133_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_39_133_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;题目：古典问题：有一对兔子，从出生后第3个月起每个<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;月都生一对兔子，小兔子长到第三个月后每个月又生<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;一对兔子，兔子的寿命都是10个月，问每个月的兔子总数为多少？<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_153_1355_Open_Image" onclick="this.style.display='none'; Codehighlighter1_153_1355_Open_Text.style.display='none'; Codehighlighter1_153_1355_Closed_Image.style.display='inline'; Codehighlighter1_153_1355_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_153_1355_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_153_1355_Closed_Text.style.display='none'; Codehighlighter1_153_1355_Open_Image.style.display='inline'; Codehighlighter1_153_1355_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test2</span><span id="Codehighlighter1_153_1355_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_153_1355_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">容器，存储存活的兔子对</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Vector&nbsp;vector&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Vector();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">编号</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;No&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">构造函数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Test2()<br />
<img id="Codehighlighter1_261_339_Open_Image" onclick="this.style.display='none'; Codehighlighter1_261_339_Open_Text.style.display='none'; Codehighlighter1_261_339_Closed_Image.style.display='inline'; Codehighlighter1_261_339_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_261_339_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_261_339_Closed_Text.style.display='none'; Codehighlighter1_261_339_Open_Image.style.display='inline'; Codehighlighter1_261_339_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_261_339_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_261_339_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InnerClass&nbsp;ic&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InnerClass();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ic.setNo(No</span><span style="color: #000000">++</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.add(ic);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;born()<br />
<img id="Codehighlighter1_362_437_Open_Image" onclick="this.style.display='none'; Codehighlighter1_362_437_Open_Text.style.display='none'; Codehighlighter1_362_437_Closed_Image.style.display='inline'; Codehighlighter1_362_437_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_362_437_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_362_437_Closed_Text.style.display='none'; Codehighlighter1_362_437_Open_Image.style.display='inline'; Codehighlighter1_362_437_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_362_437_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_362_437_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InnerClass&nbsp;ic&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InnerClass();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ic.setNo(No</span><span style="color: #000000">++</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.add(ic);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">内部类</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;InnerClass<br />
<img id="Codehighlighter1_465_728_Open_Image" onclick="this.style.display='none'; Codehighlighter1_465_728_Open_Text.style.display='none'; Codehighlighter1_465_728_Closed_Image.style.display='inline'; Codehighlighter1_465_728_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_465_728_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_465_728_Closed_Text.style.display='none'; Codehighlighter1_465_728_Open_Image.style.display='inline'; Codehighlighter1_465_728_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_465_728_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_465_728_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;no&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;life&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setNo(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;no)<br />
<img id="Codehighlighter1_543_564_Open_Image" onclick="this.style.display='none'; Codehighlighter1_543_564_Open_Text.style.display='none'; Codehighlighter1_543_564_Closed_Image.style.display='inline'; Codehighlighter1_543_564_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_543_564_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_543_564_Closed_Text.style.display='none'; Codehighlighter1_543_564_Open_Image.style.display='inline'; Codehighlighter1_543_564_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_543_564_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_543_564_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.no&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;no;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setLife(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;life)<br />
<img id="Codehighlighter1_600_625_Open_Image" onclick="this.style.display='none'; Codehighlighter1_600_625_Open_Text.style.display='none'; Codehighlighter1_600_625_Closed_Image.style.display='inline'; Codehighlighter1_600_625_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_600_625_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_600_625_Closed_Text.style.display='none'; Codehighlighter1_600_625_Open_Image.style.display='inline'; Codehighlighter1_600_625_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_600_625_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_600_625_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.life&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;life;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getNo()<br />
<img id="Codehighlighter1_650_673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_650_673_Open_Text.style.display='none'; Codehighlighter1_650_673_Closed_Image.style.display='inline'; Codehighlighter1_650_673_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_650_673_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_650_673_Closed_Text.style.display='none'; Codehighlighter1_650_673_Open_Image.style.display='inline'; Codehighlighter1_650_673_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_650_673_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_650_673_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.no;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getLife()<br />
<img id="Codehighlighter1_700_725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_700_725_Open_Text.style.display='none'; Codehighlighter1_700_725_Closed_Image.style.display='inline'; Codehighlighter1_700_725_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_700_725_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_700_725_Closed_Text.style.display='none'; Codehighlighter1_700_725_Open_Image.style.display='inline'; Codehighlighter1_700_725_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_700_725_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_700_725_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.life;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;calculate()<br />
<img id="Codehighlighter1_755_1261_Open_Image" onclick="this.style.display='none'; Codehighlighter1_755_1261_Open_Text.style.display='none'; Codehighlighter1_755_1261_Closed_Image.style.display='inline'; Codehighlighter1_755_1261_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_755_1261_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_755_1261_Closed_Text.style.display='none'; Codehighlighter1_755_1261_Open_Image.style.display='inline'; Codehighlighter1_755_1261_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_755_1261_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_755_1261_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置20个月内每个月的兔子数</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;Max&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">初始为2只兔子</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(Max&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_838_1246_Open_Image" onclick="this.style.display='none'; Codehighlighter1_838_1246_Open_Text.style.display='none'; Codehighlighter1_838_1246_Closed_Image.style.display='inline'; Codehighlighter1_838_1246_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_838_1246_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_838_1246_Closed_Text.style.display='none'; Codehighlighter1_838_1246_Open_Image.style.display='inline'; Codehighlighter1_838_1246_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_838_1246_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_838_1246_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;vector.size();&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_885_1166_Open_Image" onclick="this.style.display='none'; Codehighlighter1_885_1166_Open_Text.style.display='none'; Codehighlighter1_885_1166_Closed_Image.style.display='inline'; Codehighlighter1_885_1166_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_885_1166_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_885_1166_Closed_Text.style.display='none'; Codehighlighter1_885_1166_Open_Image.style.display='inline'; Codehighlighter1_885_1166_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_885_1166_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_885_1166_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InnerClass&nbsp;ic&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(InnerClass)vector.elementAt(i);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;life&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ic.getLife();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;life</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(life&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">3</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1002_1049_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1002_1049_Open_Text.style.display='none'; Codehighlighter1_1002_1049_Closed_Image.style.display='inline'; Codehighlighter1_1002_1049_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1002_1049_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1002_1049_Closed_Text.style.display='none'; Codehighlighter1_1002_1049_Open_Image.style.display='inline'; Codehighlighter1_1002_1049_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1002_1049_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1002_1049_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">do&nbsp;nothing</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ic.setLife(life);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #008000">//</span><span style="color: #008000">可以生小兔子了</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1073_1092_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1073_1092_Open_Text.style.display='none'; Codehighlighter1_1073_1092_Closed_Image.style.display='inline'; Codehighlighter1_1073_1092_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1073_1092_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1073_1092_Closed_Text.style.display='none'; Codehighlighter1_1073_1092_Open_Image.style.display='inline'; Codehighlighter1_1073_1092_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1073_1092_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1073_1092_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;born();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(life&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">)</span><span style="color: #008000">//</span><span style="color: #008000">必须死亡</span><span style="color: #008000"><br />
<img id="Codehighlighter1_1123_1161_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1123_1161_Open_Text.style.display='none'; Codehighlighter1_1123_1161_Closed_Image.style.display='inline'; Codehighlighter1_1123_1161_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1123_1161_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1123_1161_Closed_Text.style.display='none'; Codehighlighter1_1123_1161_Open_Image.style.display='inline'; Codehighlighter1_1123_1161_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1123_1161_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1123_1161_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector.removeElementAt(i);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">第</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">(</span><span style="color: #000000">20</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;Max)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">月兔子数量:&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">vector.size()</span><span style="color: #000000">*</span><span style="color: #000000">2</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Max</span><span style="color: #000000">--</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String&nbsp;args[])<br />
<img id="Codehighlighter1_1306_1353_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1306_1353_Open_Text.style.display='none'; Codehighlighter1_1306_1353_Closed_Image.style.display='inline'; Codehighlighter1_1306_1353_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1306_1353_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1306_1353_Closed_Text.style.display='none'; Codehighlighter1_1306_1353_Open_Image.style.display='inline'; Codehighlighter1_1306_1353_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1306_1353_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1306_1353_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test2&nbsp;t2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Test2();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t2.calculate();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<img src ="http://www.blogjava.net/mhl1003/aggbug/336034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-24 19:51 <a href="http://www.blogjava.net/mhl1003/articles/336034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速排序的递归实现</title><link>http://www.blogjava.net/mhl1003/articles/335995.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Sat, 23 Oct 2010 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/335995.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/335995.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/335995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/335995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/335995.html</trackback:ping><description><![CDATA[<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="Codehighlighter1_0_101_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_101_Open_Text.style.display='none'; Codehighlighter1_0_101_Closed_Image.style.display='inline'; Codehighlighter1_0_101_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_101_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_101_Closed_Text.style.display='none'; Codehighlighter1_0_101_Open_Image.style.display='inline'; Codehighlighter1_0_101_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_101_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_0_101_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">快速排序算法实现<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;key的值在一次递归中是保持不变的，递归函数体就是把整个数<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;组小于key的值放置在key的左边，大于key的放置在key的<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;右边，接着改变数组长度，递归<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;*&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com;<br />
<img id="Codehighlighter1_134_1147_Open_Image" onclick="this.style.display='none'; Codehighlighter1_134_1147_Open_Text.style.display='none'; Codehighlighter1_134_1147_Closed_Image.style.display='inline'; Codehighlighter1_134_1147_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_134_1147_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_134_1147_Closed_Text.style.display='none'; Codehighlighter1_134_1147_Open_Image.style.display='inline'; Codehighlighter1_134_1147_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test1</span><span id="Codehighlighter1_134_1147_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_134_1147_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_164_185_Open_Image" onclick="this.style.display='none'; Codehighlighter1_164_185_Open_Text.style.display='none'; Codehighlighter1_164_185_Closed_Image.style.display='inline'; Codehighlighter1_164_185_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_164_185_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_164_185_Closed_Text.style.display='none'; Codehighlighter1_164_185_Open_Image.style.display='inline'; Codehighlighter1_164_185_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a[]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">[]</span><span id="Codehighlighter1_164_185_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_164_185_Open_Text"><span style="color: #000000">{</span><span style="color: #000000">49</span><span style="color: #000000">,</span><span style="color: #000000">38</span><span style="color: #000000">,</span><span style="color: #000000">65</span><span style="color: #000000">,</span><span style="color: #000000">97</span><span style="color: #000000">,</span><span style="color: #000000">76</span><span style="color: #000000">,</span><span style="color: #000000">13</span><span style="color: #000000">,</span><span style="color: #000000">27</span><span style="color: #000000">}</span></span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;LEFT&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;RIGHT&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">2</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;LEFT;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;fast_sort(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;index,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n)<br />
<img id="Codehighlighter1_314_871_Open_Image" onclick="this.style.display='none'; Codehighlighter1_314_871_Open_Text.style.display='none'; Codehighlighter1_314_871_Closed_Image.style.display='inline'; Codehighlighter1_314_871_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_314_871_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_314_871_Closed_Text.style.display='none'; Codehighlighter1_314_871_Open_Image.style.display='inline'; Codehighlighter1_314_871_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_314_871_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_314_871_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;key&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[index];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;index;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;j)<br />
<img id="Codehighlighter1_385_774_Open_Image" onclick="this.style.display='none'; Codehighlighter1_385_774_Open_Text.style.display='none'; Codehighlighter1_385_774_Closed_Image.style.display='inline'; Codehighlighter1_385_774_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_385_774_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_385_774_Closed_Text.style.display='none'; Codehighlighter1_385_774_Open_Image.style.display='inline'; Codehighlighter1_385_774_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_385_774_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_385_774_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(flag&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;LEFT)<br />
<img id="Codehighlighter1_410_584_Open_Image" onclick="this.style.display='none'; Codehighlighter1_410_584_Open_Text.style.display='none'; Codehighlighter1_410_584_Closed_Image.style.display='inline'; Codehighlighter1_410_584_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_410_584_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_410_584_Closed_Text.style.display='none'; Codehighlighter1_410_584_Open_Image.style.display='inline'; Codehighlighter1_410_584_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_410_584_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_410_584_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(key&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;a[j])<br />
<img id="Codehighlighter1_435_548_Open_Image" onclick="this.style.display='none'; Codehighlighter1_435_548_Open_Text.style.display='none'; Codehighlighter1_435_548_Closed_Image.style.display='inline'; Codehighlighter1_435_548_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_435_548_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_435_548_Closed_Text.style.display='none'; Codehighlighter1_435_548_Open_Image.style.display='inline'; Codehighlighter1_435_548_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_435_548_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_435_548_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[j];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">key&nbsp;=&nbsp;a[j];</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;RIGHT;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_563_579_Open_Image" onclick="this.style.display='none'; Codehighlighter1_563_579_Open_Text.style.display='none'; Codehighlighter1_563_579_Closed_Image.style.display='inline'; Codehighlighter1_563_579_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_563_579_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_563_579_Closed_Text.style.display='none'; Codehighlighter1_563_579_Open_Image.style.display='inline'; Codehighlighter1_563_579_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_563_579_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_563_579_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">--</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_597_770_Open_Image" onclick="this.style.display='none'; Codehighlighter1_597_770_Open_Text.style.display='none'; Codehighlighter1_597_770_Closed_Image.style.display='inline'; Codehighlighter1_597_770_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_597_770_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_597_770_Closed_Text.style.display='none'; Codehighlighter1_597_770_Open_Image.style.display='inline'; Codehighlighter1_597_770_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_597_770_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_597_770_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(key&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;a[i])<br />
<img id="Codehighlighter1_622_734_Open_Image" onclick="this.style.display='none'; Codehighlighter1_622_734_Open_Text.style.display='none'; Codehighlighter1_622_734_Closed_Image.style.display='inline'; Codehighlighter1_622_734_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_622_734_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_622_734_Closed_Text.style.display='none'; Codehighlighter1_622_734_Open_Image.style.display='inline'; Codehighlighter1_622_734_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_622_734_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_622_734_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;temp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[i];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[j];<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">key&nbsp;=&nbsp;a[i];</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;LEFT;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000">--</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_749_765_Open_Image" onclick="this.style.display='none'; Codehighlighter1_749_765_Open_Text.style.display='none'; Codehighlighter1_749_765_Closed_Image.style.display='inline'; Codehighlighter1_749_765_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_749_765_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_749_765_Closed_Text.style.display='none'; Codehighlighter1_749_765_Open_Image.style.display='inline'; Codehighlighter1_749_765_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_749_765_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_749_765_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(index&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_796_825_Open_Image" onclick="this.style.display='none'; Codehighlighter1_796_825_Open_Text.style.display='none'; Codehighlighter1_796_825_Closed_Image.style.display='inline'; Codehighlighter1_796_825_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_796_825_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_796_825_Closed_Text.style.display='none'; Codehighlighter1_796_825_Open_Image.style.display='inline'; Codehighlighter1_796_825_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_796_825_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_796_825_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fast_sort(index,i</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(i</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;n)<br />
<img id="Codehighlighter1_843_868_Open_Image" onclick="this.style.display='none'; Codehighlighter1_843_868_Open_Text.style.display='none'; Codehighlighter1_843_868_Closed_Image.style.display='inline'; Codehighlighter1_843_868_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_843_868_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_843_868_Closed_Text.style.display='none'; Codehighlighter1_843_868_Open_Image.style.display='inline'; Codehighlighter1_843_868_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_843_868_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_843_868_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fast_sort(i</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,n);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;swap(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;b)<br />
<img id="Codehighlighter1_905_943_Open_Image" onclick="this.style.display='none'; Codehighlighter1_905_943_Open_Text.style.display='none'; Codehighlighter1_905_943_Closed_Image.style.display='inline'; Codehighlighter1_905_943_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_905_943_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_905_943_Closed_Text.style.display='none'; Codehighlighter1_905_943_Open_Image.style.display='inline'; Codehighlighter1_905_943_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_905_943_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_905_943_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;tmp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;b;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;tmp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;print()<br />
<img id="Codehighlighter1_967_1038_Open_Image" onclick="this.style.display='none'; Codehighlighter1_967_1038_Open_Text.style.display='none'; Codehighlighter1_967_1038_Closed_Image.style.display='inline'; Codehighlighter1_967_1038_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_967_1038_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_967_1038_Closed_Text.style.display='none'; Codehighlighter1_967_1038_Open_Image.style.display='inline'; Codehighlighter1_967_1038_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_967_1038_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_967_1038_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">7</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1000_1035_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1000_1035_Open_Text.style.display='none'; Codehighlighter1_1000_1035_Closed_Image.style.display='inline'; Codehighlighter1_1000_1035_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1000_1035_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1000_1035_Closed_Text.style.display='none'; Codehighlighter1_1000_1035_Open_Image.style.display='inline'; Codehighlighter1_1000_1035_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1000_1035_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1000_1035_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(a[i]</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)<br />
<img id="Codehighlighter1_1081_1145_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1081_1145_Open_Text.style.display='none'; Codehighlighter1_1081_1145_Closed_Image.style.display='inline'; Codehighlighter1_1081_1145_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1081_1145_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1081_1145_Closed_Text.style.display='none'; Codehighlighter1_1081_1145_Open_Image.style.display='inline'; Codehighlighter1_1081_1145_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1081_1145_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1081_1145_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test1&nbsp;t1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Test1();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1.fast_sort(</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">6</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t1.print();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<img src ="http://www.blogjava.net/mhl1003/aggbug/335995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-23 23:15 <a href="http://www.blogjava.net/mhl1003/articles/335995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse如何进行单步调试</title><link>http://www.blogjava.net/mhl1003/articles/335994.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Sat, 23 Oct 2010 15:13:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/335994.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/335994.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/335994.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/335994.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/335994.html</trackback:ping><description><![CDATA[进入debug模式，设置断点，然后运行程序到断点，再F6
<img src ="http://www.blogjava.net/mhl1003/aggbug/335994.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-23 23:13 <a href="http://www.blogjava.net/mhl1003/articles/335994.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT职业生涯路线图-（初稿）</title><link>http://www.blogjava.net/mhl1003/articles/335988.html</link><dc:creator>自由战士</dc:creator><author>自由战士</author><pubDate>Sat, 23 Oct 2010 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/mhl1003/articles/335988.html</guid><wfw:comment>http://www.blogjava.net/mhl1003/comments/335988.html</wfw:comment><comments>http://www.blogjava.net/mhl1003/articles/335988.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mhl1003/comments/commentRss/335988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mhl1003/services/trackbacks/335988.html</trackback:ping><description><![CDATA[<img height="542" alt="" src="http://www.blogjava.net/images/blogjava_net/mhl1003/106708_12604252811YEB.jpg" width="608" border="0" />
<img src ="http://www.blogjava.net/mhl1003/aggbug/335988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mhl1003/" target="_blank">自由战士</a> 2010-10-23 20:15 <a href="http://www.blogjava.net/mhl1003/articles/335988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>