<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>bluelzx</title>
    <description></description>
    <link>http://bluelzx.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>jbpm的流程图输出到jsp页面</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/237022" style="color:red;">http://bluelzx.javaeye.com/blog/237022</a>&nbsp;
          发表时间: 2008年09月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>当我们用eclipse jbpm插件设计好流程图时，我们有时会要求把流程图显示到页面上去。</p>
<p>&nbsp;</p>
<p>以下是一个可行的方案：</p>
<p>使用taglib标签，重写processImageTag,修改样式什么的（自己喜欢啦），在background-image:url中的指定你的输出流：</p>
<pre name="code" class="java">ProcessDefinition.getFileDefinition().getInputStream(&quot;processimage.jpg&quot;)</pre>
&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/237022#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 04 Sep 2008 16:56:48 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/237022</link>
        <guid>http://bluelzx.javaeye.com/blog/237022</guid>
      </item>
          <item>
        <title>Firefox快捷键</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/231796" style="color:red;">http://bluelzx.javaeye.com/blog/231796</a>&nbsp;
          发表时间: 2008年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1. ctrl + shift + t :: 打开最后关闭的tab
<br />
   2. ctrl + 1 ... 9 :: 切换到某个tab
<br />
   3. ctrl + k :: 进入google搜索输入焦点
<br />
   4. ctrl + w :: 关闭当前tab
<br />
   5. ctrl + t :: 打开一个新tab
<br />
   6. ctrl + l :: 进入地址栏
<br />
   7. ctrl + tab / ctrl + shift + tab :: 循环进入前/后tab
<br />
   8. ctrl + f :: 查找</p>
<p>&nbsp;</p>
<p><strong>Windows快捷键：</strong>
</p>
<p>DELETE　　　　　　　　　删除被选择的选择项目，如果是文件，将被放入回收站<br />
SHIFT+DELETE　　　　　　删除被选择的选择项目，如果是文件，将被直接删除而不是放入回收站<br />
CTRL+A　　　　　　　　　全选<br />
CTRL+N　　　　　　　　　新建一个新的文件<br />
CTRL+O　　　　　　　　　打开&ldquo;打开文件&rdquo;对话框<br />
CTRL+P　　　　　　　　　打开&ldquo;打印&rdquo;对话框<br />
CTRL+S　　　　　　　　　保存当前操作的文件</p>
<p>CTRL+X　　　　　　　　　剪切被选择的项目到剪贴板<br />
CTRL+INSERT 或 CTRL+C　 复制被选择的项目到剪贴板<br />
SHIFT+INSERT 或 CTRL+V　粘贴剪贴板中的内容到当前位置<br />
ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作<br />
ALT+F4　　　　　　　　　关闭当前应用程序<br />
win+L　　　　　　　　　&nbsp; 待机<br />
win+D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示桌面<br />
win+R &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 运行<br />
win+U+U                          关机<br />
win+U+R                          重启<br />
win+U+S                          待机</p>
<p><strong>Firefox快捷键：</strong>
</p>
<p>首页：  Alt+Home<br />
打开文件： Ctrl+O<br />
重新载入： F5 或  Ctrl+R<br />
到页面底部： End<br />
到页面顶部： Home<br />
页面源代码： Ctrl+U<br />
打印： Ctrl+P<br />
页面另存为： Ctrl+S</p>
<p>复制： Ctrl+C<br />
剪切： Ctrl+X<br />
删除： Del<br />
粘贴： Ctrl+V<br />
重做： Ctrl+Y<br />
全选： Ctrl+A<br />
撤消： Ctrl+Z</p>
<p>关闭标签： Ctrl+W 或  Ctrl+F4<br />
关闭窗口： Ctrl+Shift+W 或  Alt+F4<br />
向左移动标签： Ctrl+左方向键 或  Ctrl+上方向键<br />
向右移动标签： Ctrl+右方向键 或  Ctrl+下方向键<br />
移动标签到开头： Ctrl+Home<br />
移动标签到结尾： Ctrl+End<br />
新建标签页： Ctrl+T<br />
新建窗口： Ctrl+N</p>
<p>下一个标签页： Ctrl+Tab 或  Ctrl+PageDown<br />
在新标签页打开网址： Alt+Enter<br />
前一个标签页： Ctrl+Shift+Tab 或  Ctrl+PageUp<br />
撤销关闭标签页： Ctrl+Shift+T<br />
选择标签页 [1 to 8]： Ctrl+[1 到 8]<br />
选择最后标签页： Ctrl+9<br />
添加当前为书签： Ctrl+D<br />
打开书签： Ctrl+B 或  Ctrl+I</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/231796#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 23 Aug 2008 09:50:54 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/231796</link>
        <guid>http://bluelzx.javaeye.com/blog/231796</guid>
      </item>
          <item>
        <title>禁止滚动条</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/231795" style="color:red;">http://bluelzx.javaeye.com/blog/231795</a>&nbsp;
          发表时间: 2008年08月23日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>style=&quot;overflow-y:hidden&quot; &nbsp; 这个是y轴不出现滚动条 &nbsp; <br />
 &nbsp; style=&quot;overflow-x:hidden&quot; &nbsp; 这个是x轴不出现滚动条 &nbsp; <br />
 &nbsp; 加在body &nbsp; 或是div下 </p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/231795#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 23 Aug 2008 09:45:23 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/231795</link>
        <guid>http://bluelzx.javaeye.com/blog/231795</guid>
      </item>
          <item>
        <title>java面题</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/219805" style="color:red;">http://bluelzx.javaeye.com/blog/219805</a>&nbsp;
          发表时间: 2008年07月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><!--  [if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:SpaceForUL/>
   <w:BalanceSingleByteDoubleByteWidth/>
   <w:DoNotLeaveBackslashAlone/>
   <w:ULTrailSpace/>
   <w:DoNotExpandShiftReturn/>
   <w:AdjustLineHeightInTable/>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:UseFELayout/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--  [if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]-->
<!--  [if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</p>
<p class="MsoNormal"><strong><span style="border: 1pt solid windowtext; padding: 0cm; font-size: 10pt; color: blue;">Java</span>
</strong>
<strong><span style="border: 1pt solid windowtext; padding: 0cm; font-size: 10pt; font-family: 宋体; color: blue;">部分</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">1</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．求两个数的最大公约数</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">欧几理德原理</span>
<span lang="EN-US" style="font-size: 10pt;">:</span>
<span style="font-size: 10pt; font-family: 宋体;">辗转相除法</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public static int zdgys(int a,int b){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
int x = a%b;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
if(x==0) return b;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp;
</span>
<span>&nbsp;&nbsp; </span>
else return zdgys(b,x);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"><!--  [if !supportLists]--><strong><span style="font-size: 10pt; color: maroon;"><span>2．<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;
</span>
</span>
</span>
</strong>
<!--  [endif]--><strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">关于</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">java</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">垃圾回收器的认识</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">对于</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">来说，当程序员创建对象时，</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">就开始监控这个对象的地址、大小以及使用情况。通常，</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">采用有向图的方式记录和管理堆</span>
<span lang="EN-US" style="font-size: 10pt;">(heap)</span>
<span style="font-size: 10pt; font-family: 宋体;">中的所有对象。通过这种方式确定哪些对象是</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">可达的</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">，哪些对象是</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">不可达的</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">。当</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">确定一些对象为</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">不可达</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">时，</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">就有责任回收这些内存空间。可以。程序员可以手动执行</span>
<span lang="EN-US" style="font-size: 10pt;">System.gc()</span>
<span style="font-size: 10pt; font-family: 宋体;">，通知</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">运行，但是</span>
<span lang="EN-US" style="font-size: 10pt;">Java</span>
<span style="font-size: 10pt; font-family: 宋体;">语言规范并不保证</span>
<span lang="EN-US" style="font-size: 10pt;">GC</span>
<span style="font-size: 10pt; font-family: 宋体;">一定会执行。</span>

</p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"><!--  [if !supportLists]--><strong><span style="font-size: 10pt; color: maroon;"><span>3．<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;
</span>
</span>
</span>
</strong>
<!--  [endif]--><strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">请问如何设计一个类，使其只能被初始化为一个实例。</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">Singleton</span>
<span style="font-size: 10pt; font-family: 宋体;">模式主要作用是保证在</span>
<span lang="EN-US" style="font-size: 10pt;">Java</span>
<span style="font-size: 10pt; font-family: 宋体;">应用程序中，一个类</span>
<span lang="EN-US" style="font-size: 10pt;">Class</span>
<span style="font-size: 10pt; font-family: 宋体;">只有一个实例存在。</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">第一种形式</span>
<span lang="EN-US" style="font-size: 10pt;">: </span>
<span style="font-size: 10pt; font-family: 宋体;">定义一个类，它的构造函数为</span>
<span lang="EN-US" style="font-size: 10pt;">private</span>
<span style="font-size: 10pt; font-family: 宋体;">的，它有一个</span>
<span lang="EN-US" style="font-size: 10pt;">static</span>
<span style="font-size: 10pt; font-family: 宋体;">的</span>
<span lang="EN-US" style="font-size: 10pt;">private</span>
<span style="font-size: 10pt; font-family: 宋体;">的该类变量，在类初始化时实例话，通过一个</span>
<span lang="EN-US" style="font-size: 10pt;">public</span>
<span style="font-size: 10pt; font-family: 宋体;">的</span>
<span lang="EN-US" style="font-size: 10pt;">getInstance</span>
<span style="font-size: 10pt; font-family: 宋体;">方法获取对它的引用</span>
<span lang="EN-US" style="font-size: 10pt;">,</span>
<span style="font-size: 10pt; font-family: 宋体;">继而调用其中的方法。</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">附件：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">package
parent.career.blest;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&nbsp;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">class Singleton {</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
private Singleton(){}//</span>
<span style="font-size: 10pt; font-family: 宋体;">在外部用</span>
<span lang="EN-US" style="font-size: 10pt;">new</span>
<span style="font-size: 10pt; font-family: 宋体;">关键字会报错，只供内部使用</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
//</span>
<span style="font-size: 10pt; font-family: 宋体;">注意这是</span>
<span lang="EN-US" style="font-size: 10pt;">private
</span>
<span style="font-size: 10pt; font-family: 宋体;">只供内部调用</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
private static Singleton instance = new
Singleton();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
//</span>
<span style="font-size: 10pt; font-family: 宋体;">这里提供了一个供外部访问本</span>
<span lang="EN-US" style="font-size: 10pt;">class</span>
<span style="font-size: 10pt; font-family: 宋体;">的静态方法，可以直接访问　　</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public
static Singleton getInstance() {</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
return
instance;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp; </span>
} </span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp; </span>
public
void say(String str){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.println(str);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp; </span>
<span>&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&nbsp;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">class commonClass{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public commonClass(){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.println(&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">这是一个普通类</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">public class
mySingleton{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public static void main(String args[])</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
Singleton sl =
Singleton.getInstance();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
Singleton sl2 =
Singleton.getInstance();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
sl.say(&quot;hello,world!&quot;);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
sl2.say(&quot;hello,world
again!&quot;);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.println(sl==sl2);//</span>
<span style="font-size: 10pt; font-family: 宋体;">输出</span>
<span lang="EN-US" style="font-size: 10pt;">true,</span>
<span style="font-size: 10pt; font-family: 宋体;">说明</span>
<span lang="EN-US" style="font-size: 10pt;">sl,sl2</span>
<span style="font-size: 10pt; font-family: 宋体;">指向同一个实例</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
commonClass cC = new
commonClass();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
commonClass cC2 = new
commonClass();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.println(cC==cC2);//</span>
<span style="font-size: 10pt; font-family: 宋体;">输出</span>
<span lang="EN-US" style="font-size: 10pt;">false,</span>
<span style="font-size: 10pt; font-family: 宋体;">说明</span>
<span lang="EN-US" style="font-size: 10pt;">cC,cC2</span>
<span style="font-size: 10pt; font-family: 宋体;">分别指向不同的实例</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">}</span>
</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">4</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．有一个</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">1001</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">个元素的数组</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">a[n]</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">，每个元素都在</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">1</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">到</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">1000</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">这些整数中取值，其中有一个数值重复了，现在要设计一个算法找出这个数字，且每个元素只能被访问一次。不能用辅助的存储容器。</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">This number = (a[0]+a[1]+a[3]+</span>
<span style="font-size: 10pt; font-family: 宋体;">&hellip;&hellip;</span>
<span lang="EN-US" style="font-size: 10pt;">a[1000])-(1+2+3+</span>
<span style="font-size: 10pt; font-family: 宋体;">&hellip;&hellip;</span>
<span lang="EN-US" style="font-size: 10pt;">+1000)</span>
</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">servlet</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">生命周期以及</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">servlet</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">基本构架</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">servlet</span>
<span style="font-size: 10pt; font-family: 宋体;">有良好的生存期的定义，包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由</span>
<span lang="EN-US" style="font-size: 10pt;">javax.servlet.Servlet</span>
<span style="font-size: 10pt; font-family: 宋体;">接口的</span>
<span lang="EN-US" style="font-size: 10pt;">init,service</span>
<span style="font-size: 10pt; font-family: 宋体;">和</span>
<span lang="EN-US" style="font-size: 10pt;">destroy</span>
<span style="font-size: 10pt; font-family: 宋体;">方法表达。</span>
<span style="font-size: 10pt;"> 
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">Servlet</span>
<span style="font-size: 10pt; font-family: 宋体;">的基本架构：</span>
<span lang="EN-US" style="font-size: 10pt;"><br />
public class ServletName extends HttpServlet { <br />
<span>&nbsp;&nbsp;&nbsp; </span>
public void doPost(HttpServletRequest
request, HttpServletResponse response) throws <br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
ServletException, IOException { <br />
<span>&nbsp;&nbsp;&nbsp; </span>
} <br />
<span>&nbsp;&nbsp;&nbsp; </span>
public void doGet(HttpServletRequest
request, HttpServletResponse response) throws <br />
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
ServletException, IOException { <br />
<span>&nbsp;&nbsp;&nbsp; </span>
} <br />
} </span>
</p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"><!--  [if !supportLists]--><strong><span style="font-size: 10pt; color: maroon;"><span>5．<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: &quot;Times New Roman&quot;;">&nbsp;
</span>
</span>
</span>
</strong>
<!--  [endif]--><strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">死锁的四个必要条件</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&gt;</span>
<span style="font-size: 10pt; font-family: 宋体;">互斥条件：某段时间内某资源只能由一个进程使用。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&gt;</span>
<span style="font-size: 10pt; font-family: 宋体;">请求和保持：进程因请求资源而阻塞时，对已分配给它的资源保持不放。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&gt;</span>
<span style="font-size: 10pt; font-family: 宋体;">不剥夺条件：资源在未使用完前，不能被剥夺，由使用进程释放。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&gt;</span>
<span style="font-size: 10pt; font-family: 宋体;">环路条件：发生死锁时，有向图必构成一环路。</span>

</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">7</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">EJB</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">是基于哪些技术实现的？并说出</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">SessionBean</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">和</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">EntityBean</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">的区别，</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">StatefulBean</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">和</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">StatelessBean</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">的区别。</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">EJB</span>
<span style="font-size: 10pt; font-family: 宋体;">包括</span>
<span lang="EN-US" style="font-size: 10pt;">Session Bean</span>
<span style="font-size: 10pt; font-family: 宋体;">、</span>
<span lang="EN-US" style="font-size: 10pt;">Entity
Bean</span>
<span style="font-size: 10pt; font-family: 宋体;">、</span>
<span lang="EN-US" style="font-size: 10pt;">Message Driven Bean</span>
<span style="font-size: 10pt; font-family: 宋体;">，基于</span>
<span lang="EN-US" style="font-size: 10pt;">JNDI</span>
<span style="font-size: 10pt; font-family: 宋体;">、</span>
<span lang="EN-US" style="font-size: 10pt;">RMI</span>
<span style="font-size: 10pt; font-family: 宋体;">、</span>
<span lang="EN-US" style="font-size: 10pt;">JAT</span>
<span style="font-size: 10pt; font-family: 宋体;">等技术实现。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">SessionBean</span>
<span style="font-size: 10pt; font-family: 宋体;">在</span>
<span lang="EN-US" style="font-size: 10pt;">J2EE</span>
<span style="font-size: 10pt; font-family: 宋体;">应用程序中被用来完成一些服务器端的业务操作，例如访问数据库、调用其他</span>
<span lang="EN-US" style="font-size: 10pt;">EJB</span>
<span style="font-size: 10pt; font-family: 宋体;">组件。</span>
<span lang="EN-US" style="font-size: 10pt;">EntityBean</span>
<span style="font-size: 10pt; font-family: 宋体;">被用来代表应用系统中用到的数据。</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">对于客户机，</span>
<span lang="EN-US" style="font-size: 10pt;">SessionBean</span>
<span style="font-size: 10pt; font-family: 宋体;">是一种非持久性对象，它实现某些在服务器上运行的业务逻辑。</span>

</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">对于客户机，</span>
<span lang="EN-US" style="font-size: 10pt;">EntityBean</span>
<span style="font-size: 10pt; font-family: 宋体;">是一种持久性对象，它代表一个存储在持久性存储器中的实体的对象视图，或是一个由现有企业应用程序实现的实体。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">还可以再细分为</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">与</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateless
Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">，这两种的</span>
<span lang="EN-US" style="font-size: 10pt;"> Session Bean</span>
<span style="font-size: 10pt; font-family: 宋体;">都可以将系统逻辑放在</span>
<span lang="EN-US" style="font-size: 10pt;">
method</span>
<span style="font-size: 10pt; font-family: 宋体;">之中执行，不同的是</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">可以记录呼叫者的状态，因此通常来说，一个使用者会有一个相对应的</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的实体。</span>
<span lang="EN-US" style="font-size: 10pt;">Stateless Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">虽然也是逻辑组件，但是他却不负责记录使用者状态，也就是说当使用者呼叫</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateless Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的时候，</span>
<span lang="EN-US" style="font-size: 10pt;">EJB
Container </span>
<span style="font-size: 10pt; font-family: 宋体;">并不会找寻特定的</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateless Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的实体来执行这个</span>
<span lang="EN-US" style="font-size: 10pt;"> method</span>
<span style="font-size: 10pt; font-family: 宋体;">。换言之，很可能数个使用者在执行某个</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateless Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的</span>
<span lang="EN-US" style="font-size: 10pt;"> methods </span>
<span style="font-size: 10pt; font-family: 宋体;">时，会是同一个</span>
<span lang="EN-US" style="font-size: 10pt;"> Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的</span>
<span lang="EN-US" style="font-size: 10pt;"> Instance </span>
<span style="font-size: 10pt; font-family: 宋体;">在执行。从内存方面来看，</span>
<span lang="EN-US" style="font-size: 10pt;">
Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">与</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateless Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">比较，</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">会消耗</span>
<span lang="EN-US" style="font-size: 10pt;"> J2EE
Server </span>
<span style="font-size: 10pt; font-family: 宋体;">较多的内存，然而</span>
<span lang="EN-US" style="font-size: 10pt;"> Stateful Session Bean </span>
<span style="font-size: 10pt; font-family: 宋体;">的优势却在于他可以维持使用者的状态。</span>

</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">8</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">sleep() </span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">和</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;"> wait() </span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">有什么区别</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">?</span>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">sleep</span>
<span style="font-size: 10pt; font-family: 宋体;">是线程类（</span>
<span lang="EN-US" style="font-size: 10pt;">Thread</span>
<span style="font-size: 10pt; font-family: 宋体;">）的方法，导致此线程暂停执行指定时间，给执行机会给其他线程，但是监控状态依然保持，到时后会自动恢复。调用</span>
<span lang="EN-US" style="font-size: 10pt;">sleep</span>
<span style="font-size: 10pt; font-family: 宋体;">不会释放对象锁。</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">wait</span>
<span style="font-size: 10pt; font-family: 宋体;">是</span>
<span lang="EN-US" style="font-size: 10pt;">Object</span>
<span style="font-size: 10pt; font-family: 宋体;">类的方法，对此对象调用</span>
<span lang="EN-US" style="font-size: 10pt;">wait</span>
<span style="font-size: 10pt; font-family: 宋体;">方法导致本线程放弃对象锁，进入等待此对象的等待锁定池，只有针对此对象发出</span>
<span lang="EN-US" style="font-size: 10pt;">notify</span>
<span style="font-size: 10pt; font-family: 宋体;">方法（或</span>
<span lang="EN-US" style="font-size: 10pt;">notifyAll</span>
<span style="font-size: 10pt; font-family: 宋体;">）后本线程才进入对象锁定池准备获得对象锁进入运行状态。</span>

</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">9</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">forward </span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">和</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">redirect</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">的区别</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US" style="font-size: 10pt;">forward</span>
<span style="font-size: 10pt; font-family: 宋体;">是服务器请求资源，服务器直接访问目标地址的</span>
<span lang="EN-US" style="font-size: 10pt;">URL</span>
<span style="font-size: 10pt; font-family: 宋体;">，把那个</span>
<span lang="EN-US" style="font-size: 10pt;">URL</span>
<span style="font-size: 10pt; font-family: 宋体;">的响应内容读取过来，然后把这些内容再发给浏览器，浏览器根本不知道服务器发送的内容是从哪儿来的，所以它的地址栏中还是原来的地址。</span>

</p>
<p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US" style="font-size: 10pt;">redirect</span>
<span style="font-size: 10pt; font-family: 宋体;">就是服务端根据逻辑</span>
<span lang="EN-US" style="font-size: 10pt;">,</span>
<span style="font-size: 10pt; font-family: 宋体;">发送一个状态码</span>
<span lang="EN-US" style="font-size: 10pt;">,</span>
<span style="font-size: 10pt; font-family: 宋体;">告诉浏览器重新去请求那个地址，一般来说浏览器会用刚才请求的所有参数重新请求，所以</span>
<span lang="EN-US" style="font-size: 10pt;">session,request</span>
<span style="font-size: 10pt; font-family: 宋体;">参数都可以获取。</span>

</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">10</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．冒泡排序算法</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">package
parent.career.blest;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">&nbsp;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">/**</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
* </span>
<span style="font-size: 10pt; font-family: 宋体;">冒泡排序算法演示</span>
<span lang="EN-US" style="font-size: 10pt;">:</span>
<span style="font-size: 10pt; font-family: 宋体;">从小到大排列数组元素</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
* </span>
<span style="font-size: 10pt; font-family: 宋体;">原理：第一个元素和后面的一个元素比较，比较结果再和后面一个元素比较，依次类推</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
*<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
<span style="font-size: 10pt; font-family: 宋体;">接着，第二个和后面元素比较，依次类推</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
*/ </span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">public class
Maopao{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public static int[] mppx(int[] array){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
for(int i
=0;i&lt;array.length; i++){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
for(int j=i;
j&lt;array.length; j++){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
int temp;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
if(array[i]&gt;array[j]){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
temp
= array[i];</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
array[i]
= array[j];<span>&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
array[j]
= temp;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
return array;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public static void main(String args[]){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
//</span>
<span style="font-size: 10pt; font-family: 宋体;">测试</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
int[] ar
={12,23,1,23,45,11,42,9,45,2,16,77,86,56,43};<span>&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
ar = mppx(ar);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
for(int i =
0;i&lt;ar.length;i++){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.print(ar[i]+&quot;
<span>&nbsp;</span>
&quot;);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">}</span>
</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">11</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．从键盘接收一个整数，并用递归求其阶乘。</span>
</strong>
<strong>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">package
parent.career.blest;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">import java.io.*;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;">/**</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
* </span>
<span style="font-size: 10pt; font-family: 宋体;">用递归求阶乘算法</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
* </span>
<span style="font-size: 10pt; font-family: 宋体;">从键盘接收一个整数，然后求其阶乘</span>

</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
*/</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
public class DG_JC{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public
static int DG(int n){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
if(n==1)
return 1;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
else
return n*DG(n-1);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
public
static void main(String args[]){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
int
n = 0;</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.print(&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">请输入一个整数：</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;);</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
try{</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
BufferedReader
br = new BufferedReader(new InputStreamReader(System.in));</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
n
= Integer.parseInt(br.readLine());</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
br.close();</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}catch(IOException
e){</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
e.printStackTrace();<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
System.out.println(&quot;</span>
<span style="font-size: 10pt; font-family: 宋体;">阶乘</span>
<span lang="EN-US" style="font-size: 10pt;">&quot;+n+&quot;! = &quot;+DG(n));</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
}</span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 10pt;"><span>&nbsp;</span>
}</span>
</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; color: maroon;">12</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．什么时候使用</span>
</strong>
<strong><span style="font-size: 10pt; color: maroon;">assert?</span>
</strong>
</p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>
<span style="font-size: 10pt; font-family: 宋体;">断言是一个包含布尔表达式的语句，在执行这个语句时假定该表达式为</span>
<span style="font-size: 10pt; font-family: Verdana;"> true</span>
<span style="font-size: 10pt; font-family: 宋体;">。如果表达式计算为</span>
<span style="font-size: 10pt; font-family: Verdana;"> false</span>
<span style="font-size: 10pt; font-family: 宋体;">，那么系统会报告一个</span>
<span style="font-size: 10pt; font-family: Verdana;"> Assertionerror</span>
<span style="font-size: 10pt; font-family: 宋体;">。它用于调试目的：</span>
<span style="font-size: 10pt; font-family: Verdana;"> </span>

</p>
<div>

<table class="MsoNormalTable" cellspacing="0" border="1" width="500" cellpadding="0" style="border: 1pt outset #55aaff; background: #ddedfb none repeat scroll 0% 0%; width: 375pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<tbody>
<tr>
<td width="10" style="border: 1pt inset #55aaff; padding: 0cm; width: 7.5pt;">
<p class="MsoNormal" align="left" style="text-align: left;"><span style="font-size: 10pt; font-family: Verdana;">&nbsp;</span>
</p>
</td>
<td style="border: 1pt inset #55aaff; padding: 0cm;">
<p class="MsoNormal" align="left" style="text-align: left;"><span style="font-size: 10pt; font-family: 宋体;">　　</span>
<span style="font-size: 10pt; font-family: Verdana;">assert(a &gt; 0); // throws an Assertionerror if a
  &lt;= 0 </span>
</p>
</td>
</tr>
</tbody>
</table>
</div>
<p class="MsoNormal" align="left" style="background: white none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 10pt; font-family: 宋体;">断言可以有两种形式：</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
assert Expression1 ; <br />
assert Expression1 : Expression2 ; <br />
Expression1 </span>
<span style="font-size: 10pt; font-family: 宋体;">应该总是产生一个布尔值。</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
Expression2 </span>
<span style="font-size: 10pt; font-family: 宋体;">可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的</span>
<span style="font-size: 10pt; font-family: Verdana;">
String </span>
<span style="font-size: 10pt; font-family: 宋体;">消息。</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
</span>
<span style="font-size: 10pt; font-family: 宋体;">断言在默认情况下是禁用的。要在编译时启用断言，需要使用</span>
<span style="font-size: 10pt; font-family: Verdana;"> source 1.4 </span>
<span style="font-size: 10pt; font-family: 宋体;">标记：</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
javac -source 1.4 Test.java <br />
</span>
<span style="font-size: 10pt; font-family: 宋体;">要在运行时启用断言，可使用</span>
<span style="font-size: 10pt; font-family: Verdana;"> -enableassertions </span>
<span style="font-size: 10pt; font-family: 宋体;">或者</span>
<span style="font-size: 10pt; font-family: Verdana;"> -ea </span>
<span style="font-size: 10pt; font-family: 宋体;">标记。</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
</span>
<span style="font-size: 10pt; font-family: 宋体;">要在运行时选择禁用断言，可使用</span>
<span style="font-size: 10pt; font-family: Verdana;"> -da </span>
<span style="font-size: 10pt; font-family: 宋体;">或者</span>
<span style="font-size: 10pt; font-family: Verdana;">
-disableassertions </span>
<span style="font-size: 10pt; font-family: 宋体;">标记。</span>
<span style="font-size: 10pt; font-family: Verdana;"> <br />
</span>
<span style="font-size: 10pt; font-family: 宋体;">要系统类中启用断言，可使用</span>
<span style="font-size: 10pt; font-family: Verdana;"> -esa </span>
<span style="font-size: 10pt; font-family: 宋体;">或者</span>
<span style="font-size: 10pt; font-family: Verdana;"> -dsa </span>
<span style="font-size: 10pt; font-family: 宋体;">标记。还可以在包的基础上启用或者禁用断言。</span>
<span style="font-size: 10pt; font-family: Verdana;"> </span>
</p>
<p class="MsoNormal" style="background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><strong><span style="font-size: 10pt; color: maroon;">13</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">谈谈</span>
</strong>
<strong><span style="font-size: 10pt; font-family: Verdana; color: maroon;">final, finally, finalize</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">的区别。</span>
</strong>
<strong><span style="font-size: 10pt; font-family: Verdana; color: maroon;"> </span>
</strong>
</p>
<p class="MsoNormal" align="left" style="background: white none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal" align="left" style="background: white none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 10pt; font-family: Verdana;">final&mdash;</span>
<span style="font-size: 10pt; font-family: 宋体;">修饰符（关键字）如果一个类被声明为</span>
<span style="font-size: 10pt; font-family: Verdana;">final</span>
<span style="font-size: 10pt; font-family: 宋体;">，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为</span>
<span style="font-size: 10pt; font-family: Verdana;"> abstract</span>
<span style="font-size: 10pt; font-family: 宋体;">的，又被声明为</span>
<span style="font-size: 10pt; font-family: Verdana;">final</span>
<span style="font-size: 10pt; font-family: 宋体;">的。将变量或方法声明为</span>
<span style="font-size: 10pt; font-family: Verdana;">final</span>
<span style="font-size: 10pt; font-family: 宋体;">，可以保证它们在使用中不被改变。被声明为</span>
<span style="font-size: 10pt; font-family: Verdana;">final</span>
<span style="font-size: 10pt; font-family: 宋体;">的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为</span>
<span style="font-size: 10pt; font-family: Verdana;">final</span>
<span style="font-size: 10pt; font-family: 宋体;">的方法也同样只能使用，不能重载。</span>
<span style="font-size: 10pt; font-family: Verdana;"> </span>
</p>
<p class="MsoNormal" align="left" style="background: white none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 10pt; font-family: Verdana;">finally&mdash;</span>
<span style="font-size: 10pt; font-family: 宋体;">再异常处理时提供</span>
<span style="font-size: 10pt; font-family: Verdana;"> finally </span>
<span style="font-size: 10pt; font-family: 宋体;">块来执行任何清除操作。如果抛出一个异常，那么相匹配的</span>
<span style="font-size: 10pt; font-family: Verdana;"> catch </span>
<span style="font-size: 10pt; font-family: 宋体;">子句就会执行，然后控制就会进入</span>
<span style="font-size: 10pt; font-family: Verdana;"> finally </span>
<span style="font-size: 10pt; font-family: 宋体;">块（如果有的话）。</span>
<span style="font-size: 10pt; font-family: Verdana;"> </span>
</p>
<p class="MsoNormal" align="left" style="background: white none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-size: 10pt; font-family: Verdana;">finalize&mdash;</span>
<span style="font-size: 10pt; font-family: 宋体;">方法名。</span>
<span style="font-size: 10pt; font-family: Verdana;">Java </span>
<span style="font-size: 10pt; font-family: 宋体;">技术允许使用</span>
<span style="font-size: 10pt; font-family: Verdana;"> finalize() </span>
<span style="font-size: 10pt; font-family: 宋体;">方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在</span>
<span style="font-size: 10pt; font-family: Verdana;"> Object </span>
<span style="font-size: 10pt; font-family: 宋体;">类中定义的，因此所有的类都继承了它。子类覆盖</span>
<span style="font-size: 10pt; font-family: Verdana;"> finalize() </span>
<span style="font-size: 10pt; font-family: 宋体;">方法以整理系统资源或者执行其他清理工作。</span>
<span style="font-size: 10pt; font-family: Verdana;">finalize() </span>
<span style="font-size: 10pt; font-family: 宋体;">方法是在垃圾收集器删除对象之前对这个对象调用的。</span>

</p>
<p style="margin: 0cm 0cm 0.0001pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="color: maroon;">14</span>
<span style="color: maroon;">．</span>
<strong><span style="font-family: Verdana; color: maroon;">
Collection </span>
</strong>
<strong><span style="font-family: 宋体; color: maroon;">和</span>
</strong>
<strong><span style="font-family: Verdana; color: maroon;">
Collections</span>
</strong>
<strong><span style="font-family: 宋体; color: maroon;">的区别。</span>
</strong>

</p>
<p style="margin: 0cm 0cm 0.0001pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span>解答：</span>

</p>
<p style="margin: 0cm 0cm 0.0001pt; background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="font-family: Verdana;">Collections</span>
<span>是个</span>
<span style="font-family: Verdana;">java.util</span>
<span>下的类，它包含有各种有关集合操作的静态方法。</span>
<span style="font-family: Verdana;"> <br />
Collection</span>
<span>是个</span>
<span style="font-family: Verdana;">java.util</span>
<span>下的接口，它是各种集合结构的父接口。</span>

</p>
<p class="MsoNormal"><strong><span style="font-size: 10pt; font-family: Verdana; color: maroon;">15</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">．说出</span>
</strong>
<strong><span style="font-size: 10pt; font-family: Verdana; color: maroon;">ArrayList,Vector, LinkedList</span>
</strong>
<strong><span style="font-size: 10pt; font-family: 宋体; color: maroon;">的存储性能和特性</span>
</strong>
<span style="font-size: 10pt; font-family: Verdana;"><br />
</span>
<span style="font-size: 10pt; font-family: 宋体;">解答：</span>

</p>
<p class="MsoNormal">&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/219805#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 26 Jul 2008 14:17:37 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/219805</link>
        <guid>http://bluelzx.javaeye.com/blog/219805</guid>
      </item>
          <item>
        <title>maven2 struts2 spring hibernate 框架搭建</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/219755" style="color:red;">http://bluelzx.javaeye.com/blog/219755</a>&nbsp;
          发表时间: 2008年07月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>开发环境：</p>
<p>eclipse WTP 3.4</p>
<p>tomcat 5.5</p>
<p><a href="http://m2eclipse.codehaus.org/update/" target="_blank">M2 Plugin</a>
</p>
<p> <a href="http://maven.apache.org/download.html" target="_blank">Maven 2 install</a>
</p>
<p>maven配置</p>
<p>eclipse配置maven:</p>
<p>&nbsp;</p>
<p>过程记录：</p>
<p>new project--&gt;Dynamic web project</p>
<p>新建完后，Enable maven(点按右键)</p>
<p>&nbsp;</p>
<p>用如下命令新建maven struts2 basic:</p>
<pre name="code" class="java">mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=com.seedlife.onlineshop -DartifactId=onlineshop</pre>
<p>&nbsp;完成后,进入刚新建项目onlineshop目录下，运行：</p>
<pre name="code" class="java">mvn appfuse:full-source

注意settings.xml的
 &lt;!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
&lt;localRepository&gt;/path/to/local/repo&lt;/localRepository&gt;
--&gt;
&lt;localRepository&gt;E:\SKY\appfuse\repository&lt;/localRepository&gt;
localRepository这里不能有空格，这个好像是ant的造成。

</pre>
<p>&nbsp;接着把maven项目onlineshop里面的src文件夹下main种test文件夹放到dynamic web project（我的是shop）src里面的，然后更改shop里面的.classpath文件和 <span class="pf">.settings/org.eclipse.wst.common.component文件。（<span style="color: #993300;">红色</span>
代表更改地方）</span>
</p>
<p>.classpath：</p>
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;classpath&gt;
	<span style="color: #ff6600;">&lt;classpathentry kind=&quot;src&quot; path=&quot;src/test/java&quot;/&gt;
	&lt;classpathentry kind=&quot;src&quot; path=&quot;src/main/java&quot;/&gt;
	&lt;classpathentry kind=&quot;src&quot; path=&quot;src/test/resources&quot;/&gt;
	&lt;classpathentry kind=&quot;src&quot; path=&quot;src/main/resources&quot;/&gt;</span>


	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER&quot;&gt;
		&lt;attributes&gt;
			&lt;attribute name=&quot;org.eclipse.jst.component.dependency&quot; value=&quot;/WEB-INF/lib&quot;/&gt;
		&lt;/attributes&gt;
	&lt;/classpathentry&gt;
	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot;/&gt;
	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5&quot;/&gt;
	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jst.j2ee.internal.web.container&quot;/&gt;
	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jst.j2ee.internal.module.container&quot;/&gt;
	<span style="color: #993300;">&lt;classpathentry kind=&quot;output&quot; path=&quot;target/classes&quot;/&gt;</span>


&lt;/classpath&gt;
</pre>
<p>&nbsp;<span class="pf">org.eclipse.wst.common.component：</span>
</p>
<pre name="code" class="xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project-modules id=&quot;moduleCoreId&quot; project-version=&quot;1.5.0&quot;&gt;
<span style="color: #993300;">&lt;wb-module deploy-name=&quot;shop&quot;&gt;
</span>

<span style="color: #993300;">&lt;wb-resource deploy-path=&quot;/&quot; source-path=&quot;/src/main/webapp&quot;/&gt;
</span>

<span style="color: #993300;">&lt;wb-resource deploy-path=&quot;/WEB-INF/classes&quot; source-path=&quot;/src/main/java&quot;/&gt;
&lt;wb-resource deploy-path=&quot;/WEB-INF/classes&quot; source-path=&quot;/src/main/resources&quot;/&gt;
&lt;property name=&quot;context-root&quot; value=&quot;shop&quot;/&gt;
&lt;property name=&quot;java-output-path&quot; value=&quot;target/classes&quot;/&gt;</span>


&lt;/wb-module&gt;
&lt;/project-modules&gt;
</pre>
<p>&nbsp;再去把Dynamic web project(我的是shop)里面的build和WebContent文件夹删除掉。</p>
<p>最后修改shop的<em>J2EE Module Dependencies：</em>
</p>
<p>点右键--Properties---J2EE Module Dependencies----maven Dependencies--Apply--OK</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/219755#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 26 Jul 2008 10:05:59 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/219755</link>
        <guid>http://bluelzx.javaeye.com/blog/219755</guid>
      </item>
          <item>
        <title>java内存分布</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/218358" style="color:red;">http://bluelzx.javaeye.com/blog/218358</a>&nbsp;
          发表时间: 2008年07月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="cnt" id="blog_text">
<p>在JAVA中，有六个不同的地方可以存储数据：<br />
1. 寄存器（register）。这是最快的存储区，因为它位于不同于其他存储区的地方&mdash;&mdash;处理器内部。但是寄存器的数量极其有限，<span style="color: #ff0000;">所以寄存器由编译器根据需求进行分配。你不能直接控制</span>
，也不能在程序中感觉到寄存器存在的任何迹象。<br />
2. 堆栈（stack）。位于通用RAM中，但通过它的&ldquo;堆栈指针&rdquo;可以从处理器哪里获得支持。堆栈指针若向下移动，则分配新的内存；若向上移动，则释放那些内存。<span style="color: #ff0000;">这是一种快速有效的分配存储方法，仅次于寄存器。创建程序时候，JAVA编译器必须知道存储在堆栈内所有数据的确切大小和生命周期，因为它必须生成相应的代码，以便上下移动堆栈指针</span>
。这一约束限制了程序的灵活性，所以虽然某些JAVA数据存储在堆栈中&mdash;&mdash;<span style="color: #ff0000;">特别是对象引用，但是JAVA对象不存储其中。</span>
<br />
3. 堆（heap）。<span style="color: #ff0000;">一种通用性的内存池</span>
（也存在于RAM中），用于存放所以的JAVA对象。<span style="color: #ff0000;">堆不同于堆栈的好处是：编译器不需要知道要从堆里分配多少存储区域</span>
，也不必知道存储的数据在堆里存活多长时间。因此，在堆里分配存储有很大的灵活性。当你需要创建一个对象的时候，只需要new写一行简单的代码，当执行这行代码时，会自动在堆里进行存储分配。当然，为这种灵活性必须要付出相应的代码。用堆进行存储分配比用<span style="color: #ff0000;">堆栈进行存储存储需要更多的时间</span>
。<br />
4. 静态存储（static storage）。这里的&ldquo;静态&rdquo;是指&ldquo;在固定的位置&rdquo;。静态存储里存放程序运行时一直存在的数据。你可用关键字static来标识一个对象的特定元素是静态的，但JAVA对象本身从来不会存放在静态存储空间里。<br />
5. 常量存储（constant storage）。常量值通常直接存放在程序代码内部，这样做是安全的，因为它们永远不会被改变。有时，在嵌入式系统中，常量本身会和其他部分分割离开，所以在这种情况下，可以选择将其放在ROM中<br />
6. 非RAM存储。如果数据完全存活于程序之外，那么它可以不受程序的任何控制，在程序没有运行时也可以存在。<br />
就速度来说，有如下关系：<br />
&nbsp;&nbsp;&nbsp;<span style="color: #ff0000;"> 寄存器 &lt; 堆栈 &lt; 堆 &lt; 其他</span>
</p>
<p><span style="color: #ff0000;">『上面这段话摘取之《Thinking in Java》』</span>
</p>
<p>在这里，主要要说下堆与堆栈的关系：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
堆：堆是heap，是所谓的动态内存，其中的内存在不需要时可以回收，以分配给新的内存请求，其内存中的数据是无序的，即先分配的和随后分配的内存并没有
什么必然的位置关系，释放时也可以没有先后顺序。一般由使用者自由分配，malloc分配的就是堆，需要手动释放。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 堆栈:就是STACK。实际上是只有一个出入口的队列，即后进先出（First&nbsp;&nbsp;&nbsp;&nbsp; In&nbsp;&nbsp;&nbsp;&nbsp; Last&nbsp;&nbsp;&nbsp;&nbsp; Out），先分配的内存必定后释放。一般由，由系统自动分配，存放存放函数的参数值，局部变量等，自动清除。</p>
<p>还有，堆是全局的，堆栈是每个函数进入的时候分一小块，函数返回的时候就释放了，静态和全局变量，new&nbsp;&nbsp;&nbsp;&nbsp; 得到的变量，都放在堆中，局部变量放在堆栈中，所以函数返回，局部变量就全没了。</p>
<p>其实在实际应用中，堆栈多用来存储方法的调用。而对则用于对象的存储。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAVA中的基本类型，其实需要特殊对待。因为，在JAVA中，通过new创建的对象存储在&ldquo;堆&rdquo;中，所以用new
创建一个小的、简单的变量，如基本类型等，往往不是很有效。因此，在JAVA中，对于这些类型，采用了与C、C++相同的方法。也就是说，不用new
来创建，而是创建一个并非是&ldquo;引用&rdquo;的&ldquo;自动&rdquo;变量。这个变量拥有它的&ldquo;值&rdquo;，并置于堆栈中，因此更高效。</p>
</div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/218358#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 22 Jul 2008 19:27:59 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/218358</link>
        <guid>http://bluelzx.javaeye.com/blog/218358</guid>
      </item>
          <item>
        <title>最常用的8个Firefox快捷键</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/215346" style="color:red;">http://bluelzx.javaeye.com/blog/215346</a>&nbsp;
          发表时间: 2008年07月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1. ctrl + shift + t :: 打开最后关闭的tab
<br />
   2. ctrl + 1 ... 9 :: 切换到某个tab
<br />
   3. ctrl + k :: 进入google搜索输入焦点
<br />
   4. ctrl + w :: 关闭当前tab
<br />
   5. ctrl + t :: 打开一个新tab
<br />
   6. ctrl + l :: 进入地址栏
<br />
   7. ctrl + tab / ctrl + shift + tab :: 循环进入前/后tab
<br />
   8. ctrl + f :: 查找</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/215346#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 Jul 2008 11:45:51 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/215346</link>
        <guid>http://bluelzx.javaeye.com/blog/215346</guid>
      </item>
          <item>
        <title>截取字符串</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/214045" style="color:red;">http://bluelzx.javaeye.com/blog/214045</a>&nbsp;
          发表时间: 2008年07月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>编写一个截取字符串的函数，输入为一个字符串和字节数，输出为按字节截取的字符串。 但是要保证汉字不被截半个，如&quot;我ABC&quot;4，应该截为&quot;我AB&quot;，输入&quot;我ABC汉DEF&quot;，6，应该输出为&quot;我ABC&quot;而不是&quot;我ABC+汉的半个&quot;</p>
<p>&nbsp;</p>
<pre name="code" class="java">package com.sing.demo;

class SplitString {
	public static void main(String[] args) {
		String str = &quot;Atet中dd文dsaf中男大344&quot;;
		split(str, 9);
	}

	public static void split(String str, int byteleng) {
		byte[] bt = str.getBytes();
		byte[] temp;
		int leng;
		if (bt[byteleng - 1] &lt; 0 &amp;&amp; bt[byteleng - 2] &gt; 0) {
			leng = byteleng - 1;
		} else {
			leng = byteleng;
		}
		temp = new byte[leng];
		for (int i = 0; i &lt; temp.length; i++) {
			// System.out.println(bt[i]);
			temp[i] = bt[i];
		}
		System.out.println(new String(temp));
	}
}
</pre>
&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/214045#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 11 Jul 2008 20:46:01 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/214045</link>
        <guid>http://bluelzx.javaeye.com/blog/214045</guid>
      </item>
          <item>
        <title>关于类的初始化顺序</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/213892" style="color:red;">http://bluelzx.javaeye.com/blog/213892</a>&nbsp;
          发表时间: 2008年07月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="font-size: medium;">看到许多人都会迷惑JAVA类的初始化顺序，有时间自己也要看下书做下测试才能明白。所以记下来，其中的原理关于编译和JVM比较罗索，自行查书吧&hellip;&hellip;</span>
</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-size: medium;">1.基类静态变量初始化或静态代码块执行，它们的顺序按照字面出现的顺序</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">2.派生类的</span>
<span style="color: #0000ff; font-size: medium;">静态变量初始化或静态代码块执行，它们的顺序按照字面出现的顺序</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">3.基类实例变量初始化</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">4.基类代码块执行</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">5.基类构造方法执行</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">6.派生类实例变量初始化</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">7.派生类代码块执行</span>
</p>
<p><span style="color: #0000ff; font-size: medium;">8.派生类构造方法执行</span>
</p>
<p>&nbsp;</p>
<p><span style="color: #ff0000; font-size: medium;">注意：上传调用时，变量为声明引用类型的变量值;调用方法则为创建对象（NEW）时类型的方法。</span>
</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>其实就是类加载时执行静态变量和静态代码块（只执行一次），然后实例变量和代码块，最后是构造（每次new 的时候都执行）。</strong>
</span>
</p>
<p>&nbsp;</p>
<pre name="code" class="java">package com.sing.demo;

class A {
  String name = isName();
  static String   as = print();
  public static String print(){
	  System.out.println(&quot;A.static .args()........&quot;);
	  return &quot;&quot;;
  }
  String isName() {
    System.out.println(&quot;222222222&quot;);
    return &quot;a&quot;;
  }

  A() {
    System.out.println(&quot;333333333&quot;);
  }
  static {
	  System.out.println(&quot;A.static.block........&quot;);
  }
 
}

class B extends A {
  String name = isNameb();
  
  String isNameb() {
    super.isName();
    System.out.println(&quot;1111111111&quot;);
    return &quot;b&quot;;
  }
  static {
	  System.out.println(&quot;B.static block........&quot;);
  }
  {
	  System.out.println(&quot;B.block........&quot;);
  }
  static String   bs = print();
  public static String print(){
	  System.out.println(&quot;B.static .args()........&quot;);
	  return &quot;&quot;;
  }
}

public class Demo {
  public static void main(String[] args) {
   A a =   new B();
 //  System.out.println(a.name);
//     new A();
  }
}</pre>
&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/213892#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 11 Jul 2008 13:28:23 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/213892</link>
        <guid>http://bluelzx.javaeye.com/blog/213892</guid>
      </item>
          <item>
        <title>new vs newInstance</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/212716" style="color:red;">http://bluelzx.javaeye.com/blog/212716</a>&nbsp;
          发表时间: 2008年07月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在初始化一个类，生成一个实例的时候，newInstance()方法和new关键字除了一个是方法，一个是关键字外，最主要有什么区别?它们的区别在于
创建对象的方式不一样，前者是使用类加载机制，后者是创建一个新类。那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩、可扩展和可重用等软件设
计思想。
<br />
<br />
　　Java中工厂模式经常使用newInstance()方法来创建对象，因此从为什么要使用工厂模式上可以找到具体答案。 例如：
<br />
<br />
　　 class c = Class.forName(&ldquo;Example&rdquo;); 
<br />
　　factory = (ExampleInterface)c.newInstance();
<br />
 
<br />
      　　其中ExampleInterface是Example的接口，可以写成如下形式：
<br />
<br />
　　 String className = &quot;Example&quot;; 
<br />
　　class c = Class.forName(className);
<br />
<br />
　　factory = (ExampleInterface)c.newInstance();
<br />
 
<br />
      　　进一步可以写成如下形式：
<br />
<br />
　　 String className = readfromXMlConfig;//从xml 配置文件中获得字符串 
<br />
　　class c = Class.forName(className);
<br />
<br />
　　factory = (ExampleInterface)c.newInstance();
<br />
 
<br />
　　上面代码已经不存在Example的类名称，它的优点是，无论Example类怎么变化，上述代码不变，甚至可以更换Example的兄弟类
Example2 , Example3 , Example4&hellip;&hellip;，只要他们继承ExampleInterface就可以。
<br />
<br />
　　从JVM的角度看，我们使用关键字new创建一个类的时候，这个类可以没有被加载。但是使用newInstance()方法的时候，就必须保
证：1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是Class的静态方法forName()所完成的，这个静态方法调用了启动类加
载器，即加载java API的那个加载器。
<br />
<br />
　　现在可以看出，newInstance()实际上是把new这个方式分解为两步，即首先调用Class加载方法加载某个类，然后实例化。
这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性，提供给了一种降耦的手段。
<br />
<br />
　　最后用最简单的描述来区分new关键字和newInstance()方法的区别：
<br />
<br />
　　newInstance: 弱类型。低效率。只能调用无参构造。
<br />
<br />
　　new: 强类型。相对高效。能调用任何public构造。
  </p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/212716#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Jul 2008 13:56:57 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/212716</link>
        <guid>http://bluelzx.javaeye.com/blog/212716</guid>
      </item>
          <item>
        <title>给想找工作的人的几点建议 (转)</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/211817" style="color:red;">http://bluelzx.javaeye.com/blog/211817</a>&nbsp;
          发表时间: 2008年07月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<div class="t_msgfont">1、好好规划自己的路，不要跟着感觉走；<br />根据个人的理想来安排自己的生活，绝大部分人并不指望成为什么院士或教授，而是希望活得滋润一些，痛快一些，那么就需要慎重安排自己的轨迹，从一个行业入手逐渐对该行业深入了解，不要频繁跳槽，特别是不要为了一点工资而转移阵地，从长远看，这点钱根本不算什么，当初你对一个行业有那么几年的体会以后，钱根本不是问题，频繁地动荡不是上策，最后你对哪个行业都没有摸透，永远是新手。<br />2、可以做技术的切不可沉湎于技术；千万不可一门心思的专营技术，给自己造成很多压力，如果你的心思全部放在上面那么注定你将成为孔乙己一类的人物，适可而止为之，因为技术不过是你今后前途的支柱之一，而且还不是最大的支柱，除非你只愿意到老，还是个工程师。</div>
<div class="t_msgfont">3、不要去做技术高手，只去做综合素质高手；<br />在企业里工作，我们时常瞧不起某人，说他&ldquo;什么都不懂，凭啥拿那么多钱，凭啥升官，&rdquo;这是普遍的、典型的工程师的迂腐之言，你想想，老板搞经营那么多年难道见识不如你这个新兵？人家或许善于<a href="javascript:;" onclick="tagshow(event, '%B9%DC%C0%ED');" target="_self"><span style="text-decoration: underline;"><strong>管理</strong></span></a>，善于领会老板的意图，公关能力等要成为最综合素质的高手则前途无量，技术以外的技能才是更重要的本事，从古到今，一律如此，<span style="DISPLAY: none">ITPUB个人空间K</span><br />4、多交&ldquo;三教九流&rdquo;的朋友；<br />不要只和工程师交往，认为有共同语言，其实更重要的是和其他类人物的交往，如果你希望有朝一日当老板或更高层管理者，那么你整日面对的就是这些人，了解他们的经历，思维习惯，爱好，<a href="javascript:;" onclick="tagshow(event, '%D1%A7%CF%B0');" target="_self"><span style="text-decoration: underline;"><strong>学习</strong></span></a>他处理问题的模式，了解社会各个角落的现象和问题，这是以后发展的巨大本钱，没有这些以后就会笨手笨脚，跌跌撞撞，遇到重重困难，交不少学费的成功的概率大大降低。<br />5、知识涉猎不仅要专，还一定要广；<br />多看看其他方面的书，金融，财会，进出口，税务，法律等等为以后做一些积累的以后的用处会更大，会少交许多的学费。<br />6、抓住时机向技术管理或市场销售方面转变；<br />要想有前途就不能一直搞开发，适当时候要转变为管理或销售的前途会更大，以前搞技术也没有白搞，以后还用得着，搞管理可以培养自己得领导能力，搞销售可以培养自己得市场概念和思维，同时为自己以后发展积累庞大得人脉，应该说这才是前途得真正支柱。</div>
<div class="t_msgfont">7、逐渐客服自己的心理弱点和性格缺陷；<br />多疑，敏感，犹豫不决，胆怯，多虑，这些工程师普遍存在的性格弱点必须改变，很难吗，只在床上想一想当让不可能改变，去帮朋友守一个月的地摊，包准有效果，去实践，而不要只想，不克服这些缺点，一切不可能，甚至连项目经理都当不好，尽管你可能技术不错。<br />8、工作的同时要为以后做准备，建立自己的工作环境；及早为自己配置一个工作环境，装备电脑，模拟器，编程器等，业余时间可以接点活，一方面接触市场，培养市场感觉，同时也积累资金，更重要的是准备自己的产品，咱搞技术的没有钱，只有技术，技术的代表不是学历和证书，而是产品，拿出像样的产品，就可以技术转让或与人合作搞企业，先把东西准备好，等待机会，否则，有了机会也抓不住。</div>
<div class="t_msgfont">9、要学会善于推销自己；<br />不仅要干，还要能说，能写，善于利用一切机会推销自己，树立自己品牌形象，要创造条件让别人了解自己，不然老板怎么知道你能干，外面的投资人怎么相信你，提早把自己推销出去，机会自然会来找你，搞个人主页是个好主意，特别是培养自己在行业的名气，有了名气，高薪机会会自不在话下，更重要的是有合作的机会。</div>
<div class="t_msgfont">10、该出手时便出手。<br />永远不可能有百分之百的把握，条件差不多就要胆大去干，去闯出自己的事业，不要犹豫，不要彷徨，干了不一定成功，但至少为下一次冲击积累了经验，不干永远没出息，而且要干成必然经历失败，不经历风雨，怎么见彩虹，没有人能随随便便成功。<br /></div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/211817#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 05 Jul 2008 10:09:20 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/211817</link>
        <guid>http://bluelzx.javaeye.com/blog/211817</guid>
      </item>
          <item>
        <title>面试——IQ题 </title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/211570" style="color:red;">http://bluelzx.javaeye.com/blog/211570</a>&nbsp;
          发表时间: 2008年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>这些东东无聊得很 shit!</p>
<p>&nbsp;</p>
<p>1.提供一个3升和一个5升的水桶,并提供无限多的水,你怎样用它们准确地量出四升和七升的水来呢??</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;">装满3升,倒进5升,再装满3升,倒进5升,倒掉5升,把3升剩余倒进去,再装满3升,倒进5升 </span></p>
<p>&nbsp;</p>
<p>2.有八颗弹子球,其中1颗比其他7颗重(其他七颗重量相等),怎么使用天平只通过两次称量就可以找到这颗球?? </p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;">任取六个球,分两份来称,同等重量,就将剩余两个称一下就知道, <br />如果不同,就把重的三个任取两个再称一下, <br /></span></p>
<p>3.你让工人为你工作7天，给工人的回报是一根金条。金条平分成相连的7段，你必须在每天结束时给他们一段金条， <br />如果只许你两次把金条弄断，你如何给你的工人付费？</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;">金条分成1／7、2／7和4／7三份。这样，第1天我就可以给他1／7；第2天我给他2／7， <br />让他找回我1／7；第3天我就再给他1／7，加上原先的2／7就是3／7；第4天我给他那块4／7， <br />让他找回那两块1／7和2／7的金条；第5天，再给他1／7；第6天和第2天一样；第7天给他找回的那个1／7</span></p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;"><span style="color: #000000;">4.现在小明一家过一座桥，过桥时候是黑夜，所以必须有灯。现在小明过桥要1秒，小明的弟弟要3秒，小明的爸爸要6秒，<br />小明的妈妈要8秒，小明的爷爷要12秒。每次此桥最多可过两人，而过桥的速度依过桥最慢者而定，而且灯在点燃后30秒就会熄灭。 <br />问小明一家如何过桥？</span> </span></p>
<p>&nbsp;</p>
<p><span style="color: #0000ff;">第一步，小明与弟弟过桥，小明回来，耗时4秒；第二步，小明与爸爸过河，弟弟回来，耗时9秒； <br />第三步，妈妈与爷爷过河，小明回来，耗时13秒；最后，小明与弟弟过河，耗时4秒， <br />总共耗时30秒，多么惊险！ </span></p>
<p>&nbsp;</p>
<p><span style="color: #000000;">5.一楼到十楼的每层电梯门口都放着一颗钻石，钻石大小不一。你乘坐电梯从一楼到十楼， <br />每层楼电梯门都会打开一次，只能拿一次钻石，问怎样才能拿到最大的一颗？</span></p>
<p>&nbsp;</p>
<p>6.在房里有三盏灯，房外有三个开关，在房外看不见房内的情况，你只能进门一次，你用什么方法来区分那个开关控制那一盏灯？ <br /><br /><span style="color: #0000ff;">开两盏灯，一个10分钟，一个30分钟，进去摸温度</span></p>
<p>&nbsp;</p>
<p>7.有两根不均匀分布的香，每根香烧完的时间是一个小时，你能用什么方法来确定一段45分钟的时间？ <br />&nbsp;</p>
<p><span style="color: #0000ff;">一烧一头，一烧同时两头，一根烧完后即时点燃另根的另一头</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/211570#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jul 2008 15:10:30 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/211570</link>
        <guid>http://bluelzx.javaeye.com/blog/211570</guid>
      </item>
          <item>
        <title>老师生日 IQ</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/211551" style="color:red;">http://bluelzx.javaeye.com/blog/211551</a>&nbsp;
          发表时间: 2008年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>小明和小强都是张老师的学生，张老师的生日是M月N日，2人都知道张老师的生日是下列10组中的一天，张老师把M值告诉了小明，把N值告诉了小强，找老师问他们知道他的生日是哪一天吗？ <br />3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 <br />9月5日 12月1日 12月2日 12月8日 <br />小明说：如果我不知道的话，小强肯定也不知道 <br />小强说：本来我不知道，但是现在我知道了 <br />小明说：哦，那我也知道 <br />请根据以上对话推断出张老师的生日是哪一天。</p>
<p><span style="color: #ff00ff;"><br /></span><span style="color: #0000ff;">答案应该是9月1日。 <br />1）首先分析这10组日期，经观察不难发现，只有6月7日和12月2日这两组日期的 <br />日数是唯一的。由此可知，如果小强得知的N是7或者2，那么他必定知道了老师的 <br />生日。 <br />2）再分析&ldquo;小明说：如果我不知道的话，小强肯定也不知道&rdquo;，而该10组日期的 <br />月数分别为3，6，9，12，而且都相应月的日期都有两组以上，所以小明得知M后 <br />是不可能知道老师生日的。 <br />3）进一步分析&ldquo;小明说：如果我不知道的话，小强肯定也不知道&rdquo;，结合第2步 <br />结论，可知小强得知N后也绝不可能知道。 <br />4）结合第3和第1步，可以推断：所有6月和12月的日期都不是老师的生日，因为 <br />如果小明得知的M是6，而若小强的N==7，则小强就知道了老师的生日。（由第 <br />1步已经推出），同理，如果小明的M==12，若小强的N==2，则小强同样可以知道老师的生日。即：M不等于6和12。现在只剩下&ldquo;3月4日 3月5日 3月8日 9月1日 <br />9月5日&rdquo;五组日期。而小强知道了，所以N不等于5（有3月5日和9月5日），此时， <br />小强的N&isin;（1，4，8）注：此时N虽然有三种可能，但对于小强只要知道其中的 <br />一种，就得出结论。所以有&ldquo;小强说：本来我也不知道，但是现在我知道了&rdquo;， <br />对于我们则还需要继续推理 <br />至此，剩下的可能是&ldquo;3月4日 3月8日 9月1日&rdquo; <br />5）分析&ldquo;小明说：哦，那我也知道了&rdquo;，说明M==9，N==1，（N==5已经被排除，3月份的有两组</span></p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/211551#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jul 2008 14:44:41 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/211551</link>
        <guid>http://bluelzx.javaeye.com/blog/211551</guid>
      </item>
          <item>
        <title>sql join</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/206401" style="color:red;">http://bluelzx.javaeye.com/blog/206401</a>&nbsp;
          发表时间: 2008年06月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <table cellspacing="4" border="0" width="481" cellpadding="6" style="width: 481px; height: 1218px;">
<tbody>
<tr>
<td>
<p>both Table A and Table B. </p>
<p>&nbsp;</p>
</td>
<td>
<p>&nbsp;</p>
<p><img src="http://www.codinghorror.com/blog/images/join-inner.png" border="0" height="260" alt="Venn diagram of SQL inner join" width="281" /> </p>
</td>
</tr>
<tr>
<td>
<pre>SELECT * FROM TableA
<strong>FULL OUTER JOIN</strong> TableB
ON TableA.name = TableB.name

id    name       id    name
--    ----       --    ----
1     Pirate     2     Pirate
2     Monkey     <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
3     Ninja      4     Ninja
4     Spaghetti  <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
<span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>       1     Rutabaga       
<span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>       3     Darth Vader
</pre>
<p><strong>Full outer join</strong> produces the set of all records in Table A and Table B, with matching records from both sides where available. If there is no match, the missing side will contain null.</p>
</td>
<td><img src="http://www.codinghorror.com/blog/images/join-cartesian.png" border="0" height="332" alt="Venn diagram of SQL cartesian join" width="274" /></td>
</tr>
<tr>
<td>
<p>&nbsp;</p>
<pre>SELECT * FROM TableA
<strong>LEFT OUTER JOIN</strong> TableB
ON TableA.name = TableB.name

id  name       id    name
--  ----       --    ----
1   Pirate     2     Pirate
2   Monkey     <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
3   Ninja      4     Ninja
4   Spaghetti  <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
</pre>
<p><strong>Left outer join</strong> produces a complete set of records from Table A, with the matching records (where available) in Table B. If there is no match, the right side will contain null.</p>
</td>
<td><img src="http://www.codinghorror.com/blog/images/join-left.png" border="0" height="320" alt="Venn diagram of SQL left join" width="273" /> </td>
</tr>
<tr>
<td>
<pre>SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
<strong>WHERE TableB.id IS null</strong>

id  name       id     name
--  ----       --     ----
2   Monkey     <span style="color: #808080;">null</span>   <span style="color: #808080;">null</span>
4   Spaghetti  <span style="color: #808080;">null</span>   <span style="color: #808080;">null</span>
</pre>
<p>To produce the set of records only in Table A, but not in Table B, we perform the same left outer join, then <strong>exclude the records we don't want from the right side via a where clause</strong>.</p>
</td>
<td><img src="http://www.codinghorror.com/blog/images/join-left-outer.png" border="0" height="244" alt="join-left-outer.png" width="276" /></td>
</tr>
<tr>
<td>
<pre>SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
<strong>WHERE TableA.id IS null 
OR TableB.id IS null
</strong>
id    name       id    name
--    ----       --    ----
2     Monkey     <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
4     Spaghetti  <span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>
<span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>       1     Rutabaga
<span style="color: #808080;">null</span>  <span style="color: #808080;">null</span>       3     Darth Vader
</pre>
<p>To produce the set of records unique to Table A and Table B, we perform the same full outer join, then <strong>exclude the records we don't want from both sides via a where clause</strong>.</p>
</td>
<td><img src="http://www.codinghorror.com/blog/images/join-outer.png" border="0" height="254" alt="join-outer.png" width="275" /></td>
</tr>
</tbody>
</table>
<p>There's also a cartesian product or <strong>cross join</strong>, which as far as I can tell, can't be expressed as a Venn diagram:</p>
<pre>SELECT * FROM TableA
<strong>CROSS JOIN</strong> TableB
</pre>
<p>This joins "everything to everything", resulting in 4 x 4 = 16 rows, far more than we had in the original sets. If you do the math, you can see why this is a <em>very</em> dangerous join to run against large tables.</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/206401#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 20 Jun 2008 17:27:32 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/206401</link>
        <guid>http://bluelzx.javaeye.com/blog/206401</guid>
      </item>
          <item>
        <title>类型转换</title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/202380" style="color:red;">http://bluelzx.javaeye.com/blog/202380</a>&nbsp;
          发表时间: 2008年06月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>Animal a = new Cate();&nbsp;&nbsp; //Animal是编译时类型，Cate是运行时类型。运行时类型得是编译时类型的子类<br />
&nbsp;&nbsp; &nbsp;引用类型&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对象类型<br />
&nbsp;&nbsp; &nbsp;主观类型&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 客观类型</p>
<p>&nbsp;&nbsp; &nbsp;以子类覆盖了父类的方法为前提&nbsp; <br />
&nbsp;&nbsp; &nbsp;1）运行时类型不变&nbsp; <br />
&nbsp;&nbsp; &nbsp;2）只能对一个引用调用其编译时类型中定义的方法<br />
&nbsp;&nbsp; &nbsp;3）运行时会根据对象的运行时类型找覆盖之后的方法<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; &nbsp;Animal a = new Cate(); <br />
&nbsp;&nbsp; Cate d = new Cate();<br />
&nbsp;&nbsp; &nbsp;a = d;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //把子类引用赋值给父类引用，是合法的<br />
&nbsp;&nbsp; &nbsp;d = (Cate)a; //把父类引用赋值给自类引用，需要强转<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;父类的引用赋值给子类的引用需要强制<span class="hilite3"><span class="hilite3">类型转换</span>
</span>
，而子类的引用赋值给父类的引用不需要强制<span class="hilite3"><span class="hilite3">类型转换</span>
</span>
</p>
<pre name="code" class="java">public class Test {

	public static void main(String[] args) {

		Cat cat = new Cat();
		System.out.println(&quot;cat.CHARACTERISTIC = &quot; + cat.CHARACTERISTIC);
		System.out.println(&quot;cat.getClass() = &quot; + cat.getClass());
		System.out.println(&quot;cat.name = &quot; + cat.name);
		System.out.println(&quot;cat.getName() = &quot; + cat.getName());

		System.out.println(&quot;**********************************************&quot;);

		Animal animal = (Animal) cat;
		System.out.println(&quot;animal.CHARACTERISTIC = &quot; + animal.CHARACTERISTIC);
		System.out.println(&quot;animal.getClass() = &quot; + animal.getClass());
		System.out.println(&quot;animal.name = &quot; + animal.name);
		System.out.println(&quot;animal.getName() = &quot; + animal.getName());
	}
}

class Animal {
	public static String CHARACTERISTIC = &quot;Can not speak.&quot;;
	public String name = &quot;Animal&quot;;

	public String getName() {
		return name;
	}

}

class Cat extends Animal {
	public static String CHARACTERISTIC = &quot;Can not speak. Like eat fish.&quot;;
	public String name = &quot;Cat&quot;;

	public String getName() {
		return name;
	}
}


</pre>
<p>&nbsp;</p>
<pre name="code" class="java"><span style="color: #0000ff;">cat.CHARACTERISTIC = Can not speak. Like eat fish.
cat.getClass() = class Cat
cat.name = Cat
cat.getName() = Cat
**********************************************
animal.CHARACTERISTIC = Can not speak.
animal.getClass() = class Cat
animal.name = Animal
animal.getName() = Cat</span>
</pre>
&nbsp;
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/202380#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 12 Jun 2008 09:45:29 +0800</pubDate>
        <link>http://bluelzx.javaeye.com/blog/202380</link>
        <guid>http://bluelzx.javaeye.com/blog/202380</guid>
      </item>
          <item>
        <title>Eclipse快捷键大全(转载) </title>
        <author>bluelzx</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bluelzx.javaeye.com">bluelzx</a>&nbsp;
                    链接：<a href="http://bluelzx.javaeye.com/blog/202247" style="color:red;">http://bluelzx.javaeye.com/blog/202247</a>&nbsp;
          发表时间: 2008年06月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postTitle"><a href="http://www.blogjava.net/action/articles/17339.html" class="postTitle2" id="viewpost1_TitleUrl"><span style="color: #4371a6;">Eclipse快捷键大全(转载)</span></a> </div>
<div class="postbody"><span style="font-size: x-small;">Ctrl+1&nbsp;快速修复(最经典的快捷键,就不用多说了)<br />Ctrl+D:&nbsp;删除当前行&nbsp;<br />Ctrl+Alt+&darr;&nbsp;复制当前行到下一行(复制增加)<br />Ctrl+Alt+&uarr;&nbsp;复制当前行到上一行(复制增加)<br />Alt+&darr;&nbsp;当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)<br />Alt+&uarr;&nbsp;当前行和上面一行交互位置(同上)<br />Alt+&larr;&nbsp;前一个编辑的页面<br />Alt+&rarr;&nbsp;下一个编辑的页面(当然是针对上面那条来说了)<br />Alt+Enter&nbsp;显示当前选择资源(工程,or&nbsp;文件&nbsp;or文件)的属性<br />Shift+Enter&nbsp;在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)<br />Shift+Ctrl+Enter&nbsp;在当前行插入空行(原理同上条)<br />Ctrl+Q&nbsp;定位到最后编辑的地方<br />Ctrl+L&nbsp;定位在某行&nbsp;(对于程序超过100的人就有福音了)<br />Ctrl+M&nbsp;最大化当前的Edit或View&nbsp;(再按则反之)<br />Ctrl+/&nbsp;注释当前行,再按则取消注释<br />Ctrl+O&nbsp;快速显示&nbsp;OutLine<br />Ctrl+T&nbsp;快速显示当前类的继承结构<br />Ctrl+W&nbsp;关闭当前Editer<br />Ctrl+K&nbsp;参照选中的Word快速定位到下一个<br />Ctrl+E&nbsp;快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)<br />Ctrl+/(小键盘)&nbsp;折叠当前类中的所有代码<br />Ctrl+&times;(小键盘)&nbsp;展开当前类中的所有代码<br />Ctrl+Space&nbsp;代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)<br />Ctrl+Shift+E&nbsp;显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)<br />Ctrl+J&nbsp;正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes&nbsp;line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)<br />Ctrl+Shift+J&nbsp;反向增量查找(和上条相同,只不过是从后往前查)<br />Ctrl+Shift+F4&nbsp;关闭所有打开的Editer<br />Ctrl+Shift+X&nbsp;把当前选中的文本全部变味小写<br />Ctrl+Shift+Y&nbsp;把当前选中的文本全部变为小写<br />Ctrl+Shift+F&nbsp;格式化当前代码<br />Ctrl+Shift+P&nbsp;定位到对于的匹配符(譬如{})&nbsp;(从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)<br /><br />下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)<br />Alt+Shift+R&nbsp;重命名&nbsp;(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)<br />Alt+Shift+M&nbsp;抽取方法&nbsp;(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)<br />Alt+Shift+C&nbsp;修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)<br />Alt+Shift+L&nbsp;抽取本地变量(&nbsp;可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)<br />Alt+Shift+F&nbsp;把Class中的local变量变为field变量&nbsp;(比较实用的功能)<br />Alt+Shift+I&nbsp;合并变量(可能这样说有点不妥Inline)<br />Alt+Shift+V&nbsp;移动函数和变量(不怎么常用)<br />Alt+Shift+Z&nbsp;重构的后悔药(Undo)<br /><br />编辑<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;查找并替换&nbsp;Ctrl+F&nbsp;<br />文本编辑器&nbsp;查找上一个&nbsp;Ctrl+Shift+K&nbsp;<br />文本编辑器&nbsp;查找下一个&nbsp;Ctrl+K&nbsp;<br />全局&nbsp;撤销&nbsp;Ctrl+Z&nbsp;<br />全局&nbsp;复制&nbsp;Ctrl+C&nbsp;<br />全局&nbsp;恢复上一个选择&nbsp;Alt+Shift+&darr;&nbsp;<br />全局&nbsp;剪切&nbsp;Ctrl+X&nbsp;<br />全局&nbsp;快速修正&nbsp;Ctrl1+1&nbsp;<br />全局&nbsp;内容辅助&nbsp;Alt+/&nbsp;<br />全局&nbsp;全部选中&nbsp;Ctrl+A&nbsp;<br />全局&nbsp;删除&nbsp;Delete&nbsp;<br />全局&nbsp;上下文信息&nbsp;Alt+？<br />Alt+Shift+?<br />Ctrl+Shift+Space&nbsp;<br />Java编辑器&nbsp;显示工具提示描述&nbsp;F2&nbsp;<br />Java编辑器&nbsp;选择封装元素&nbsp;Alt+Shift+&uarr;&nbsp;<br />Java编辑器&nbsp;选择上一个元素&nbsp;Alt+Shift+&larr;&nbsp;<br />Java编辑器&nbsp;选择下一个元素&nbsp;Alt+Shift+&rarr;&nbsp;<br />文本编辑器&nbsp;增量查找&nbsp;Ctrl+J&nbsp;<br />文本编辑器&nbsp;增量逆向查找&nbsp;Ctrl+Shift+J&nbsp;<br />全局&nbsp;粘贴&nbsp;Ctrl+V&nbsp;<br />全局&nbsp;重做&nbsp;Ctrl+Y&nbsp;<br /><br />&nbsp;<br />查看<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;放大&nbsp;Ctrl+=&nbsp;<br />全局&nbsp;缩小&nbsp;Ctrl+-&nbsp;<br /><br />&nbsp;<br />窗口<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;激活编辑器&nbsp;F12&nbsp;<br />全局&nbsp;切换编辑器&nbsp;Ctrl+Shift+W&nbsp;<br />全局&nbsp;上一个编辑器&nbsp;Ctrl+Shift+F6&nbsp;<br />全局&nbsp;上一个视图&nbsp;Ctrl+Shift+F7&nbsp;<br />全局&nbsp;上一个透视图&nbsp;Ctrl+Shift+F8&nbsp;<br />全局&nbsp;下一个编辑器&nbsp;Ctrl+F6&nbsp;<br />全局&nbsp;下一个视图&nbsp;Ctrl+F7&nbsp;<br />全局&nbsp;下一个透视图&nbsp;Ctrl+F8&nbsp;<br />文本编辑器&nbsp;显示标尺上下文菜单&nbsp;Ctrl+W&nbsp;<br />全局&nbsp;显示视图菜单&nbsp;Ctrl+F10&nbsp;<br />全局&nbsp;显示系统菜单&nbsp;Alt+-&nbsp;<br /><br />&nbsp;<br />导航<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />Java编辑器&nbsp;打开结构&nbsp;Ctrl+F3&nbsp;<br />全局&nbsp;打开类型&nbsp;Ctrl+Shift+T&nbsp;<br />全局&nbsp;打开类型层次结构&nbsp;F4&nbsp;<br />全局&nbsp;打开声明&nbsp;F3&nbsp;<br />全局&nbsp;打开外部javadoc&nbsp;Shift+F2&nbsp;<br />全局&nbsp;打开资源&nbsp;Ctrl+Shift+R&nbsp;<br />全局&nbsp;后退历史记录&nbsp;Alt+&larr;&nbsp;<br />全局&nbsp;前进历史记录&nbsp;Alt+&rarr;&nbsp;<br />全局&nbsp;上一个&nbsp;Ctrl+,&nbsp;<br />全局&nbsp;下一个&nbsp;Ctrl+.&nbsp;<br />Java编辑器&nbsp;显示大纲&nbsp;Ctrl+O&nbsp;<br />全局&nbsp;在层次结构中打开类型&nbsp;Ctrl+Shift+H&nbsp;<br />全局&nbsp;转至匹配的括号&nbsp;Ctrl+Shift+P&nbsp;<br />全局&nbsp;转至上一个编辑位置&nbsp;Ctrl+Q&nbsp;<br />Java编辑器&nbsp;转至上一个成员&nbsp;Ctrl+Shift+&uarr;&nbsp;<br />Java编辑器&nbsp;转至下一个成员&nbsp;Ctrl+Shift+&darr;&nbsp;<br />文本编辑器&nbsp;转至行&nbsp;Ctrl+L&nbsp;<br /><br />&nbsp;<br />搜索<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;出现在文件中&nbsp;Ctrl+Shift+U&nbsp;<br />全局&nbsp;打开搜索对话框&nbsp;Ctrl+H&nbsp;<br />全局&nbsp;工作区中的声明&nbsp;Ctrl+G&nbsp;<br />全局&nbsp;工作区中的引用&nbsp;Ctrl+Shift+G&nbsp;<br /><br />&nbsp;<br />文本编辑<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />文本编辑器&nbsp;改写切换&nbsp;Insert&nbsp;<br />文本编辑器&nbsp;上滚行&nbsp;Ctrl+&uarr;&nbsp;<br />文本编辑器&nbsp;下滚行&nbsp;Ctrl+&darr;&nbsp;<br /><br />&nbsp;<br />文件<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;保存&nbsp;Ctrl+X&nbsp;<br />Ctrl+S&nbsp;<br />全局&nbsp;打印&nbsp;Ctrl+P&nbsp;<br />全局&nbsp;关闭&nbsp;Ctrl+F4&nbsp;<br />全局&nbsp;全部保存&nbsp;Ctrl+Shift+S&nbsp;<br />全局&nbsp;全部关闭&nbsp;Ctrl+Shift+F4&nbsp;<br />全局&nbsp;属性&nbsp;Alt+Enter&nbsp;<br />全局&nbsp;新建&nbsp;Ctrl+N&nbsp;<br /><br />&nbsp;<br />项目<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;全部构建&nbsp;Ctrl+B&nbsp;<br /><br />&nbsp;<br />源代码<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />Java编辑器&nbsp;格式化&nbsp;Ctrl+Shift+F&nbsp;<br />Java编辑器&nbsp;取消注释&nbsp;Ctrl+\&nbsp;<br />Java编辑器&nbsp;注释&nbsp;Ctrl+/&nbsp;<br />Java编辑器&nbsp;添加导入&nbsp;Ctrl+Shift+M&nbsp;<br />Java编辑器&nbsp;组织导入&nbsp;Ctrl+Shift+O&nbsp;<br />Java编辑器&nbsp;使用try/catch块来包围&nbsp;未设置，太常用了，所以在这里列出,建议自己设置。<br />也可以使用Ctrl+1自动修正。&nbsp;<br /><br />&nbsp;<br />运行<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;单步返回&nbsp;F7&nbsp;<br />全局&nbsp;单步跳过&nbsp;F6&nbsp;<br />全局&nbsp;单步跳入&nbsp;F5&nbsp;<br />全局&nbsp;单步跳入选择&nbsp;Ctrl+F5&nbsp;<br />全局&nbsp;调试上次启动&nbsp;F11&nbsp;<br />全局&nbsp;继续&nbsp;F8&nbsp;<br />全局&nbsp;使用过滤器单步执行&nbsp;Shift+F5&nbsp;<br />全局&nbsp;添加/去除断点&nbsp;Ctrl+Shift+B&nbsp;<br />全局&nbsp;显示&nbsp;Ctrl+D&nbsp;<br />全局&nbsp;运行上次启动&nbsp;Ctrl+F11&nbsp;<br />全局&nbsp;运行至行&nbsp;Ctrl+R&nbsp;<br />全局&nbsp;执行&nbsp;Ctrl+U&nbsp;<br /><br />&nbsp;<br />重构<br />作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />全局&nbsp;撤销重构&nbsp;Alt+Shift+Z&nbsp;<br />全局&nbsp;抽取方法&nbsp;Alt+Shift+M&nbsp;<br />全局&nbsp;抽取局部变量&nbsp;Alt+Shift+L&nbsp;<br />全局&nbsp;内联&nbsp;Alt+Shift+I&nbsp;<br />全局&nbsp;移动&nbsp;Alt+Shift+V&nbsp;<br />全局&nbsp;重命名&nbsp;Alt+Shift+R&nbsp;<br />全局&nbsp;重做&nbsp;Alt+Shift+Y</span></div>
          <br/><br/>
          <span style="color:red;">
            <a href="http://bluelzx.javaeye.com/blog/202247#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'