??xml version="1.0" encoding="utf-8" standalone="yes"?>在线综合欧美,国产高清精品一区,亚洲精品一区avhttp://www.aygfsteel.com/gdufo/category/33689.htmlzh-cnThu, 04 Sep 2008 07:43:46 GMTThu, 04 Sep 2008 07:43:46 GMT60jsp自定义标{?taglib)~写的原理和实现http://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.htmlgdufogdufoThu, 04 Sep 2008 07:31:00 GMThttp://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.htmlhttp://www.aygfsteel.com/gdufo/comments/226974.htmlhttp://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.html#Feedback0http://www.aygfsteel.com/gdufo/comments/commentRss/226974.htmlhttp://www.aygfsteel.com/gdufo/services/trackbacks/226974.html阅读全文

gdufo 2008-09-04 15:31 发表评论
]]>
面试题:(x)解析一个字W串Q?/title><link>http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Mon, 25 Aug 2008 06:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.html</guid><description><![CDATA[     摘要:   <a href='http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.html'>阅读全文</a><img src ="http://www.aygfsteel.com/gdufo/aggbug/224164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gdufo/" target="_blank">gdufo</a> 2008-08-25 14:57 <a href="http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA面试题解惑系列(三)(j)——变量(属性)(j)的覆?/title><link>http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Fri, 22 Aug 2008 05:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html</guid><wfw:comment>http://www.aygfsteel.com/gdufo/comments/223721.html</wfw:comment><comments>http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gdufo/comments/commentRss/223721.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gdufo/services/trackbacks/223721.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html'>阅读全文</a><img src ="http://www.aygfsteel.com/gdufo/aggbug/223721.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gdufo/" target="_blank">gdufo</a> 2008-08-22 13:07 <a href="http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA面试题解惑系列(四)(j)——final、finally和finalize的区?/title><link>http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Fri, 22 Aug 2008 03:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.html</guid><description><![CDATA[     摘要:   <a href='http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.html'>阅读全文</a><img src ="http://www.aygfsteel.com/gdufo/aggbug/223704.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gdufo/" target="_blank">gdufo</a> 2008-08-22 11:37 <a href="http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA面试题解惑系列(一Q——类的初始化序http://www.aygfsteel.com/gdufo/archive/2008/08/22/223639.htmlgdufogdufoFri, 22 Aug 2008 00:26:00 GMThttp://www.aygfsteel.com/gdufo/archive/2008/08/22/223639.html阅读全文

gdufo 2008-08-22 08:26 发表评论
]]>
java static到底有什么用http://www.aygfsteel.com/gdufo/archive/2008/08/19/223107.htmlgdufogdufoTue, 19 Aug 2008 12:33:00 GMThttp://www.aygfsteel.com/gdufo/archive/2008/08/19/223107.html阅读全文

gdufo 2008-08-19 20:33 发表评论
]]>
java|络~程QAjax+servlet实例http://www.aygfsteel.com/gdufo/archive/2008/08/18/222720.htmlgdufogdufoMon, 18 Aug 2008 03:49:00 GMThttp://www.aygfsteel.com/gdufo/archive/2008/08/18/222720.html阅读全文

gdufo 2008-08-18 11:49 发表评论
]]>
final ?abstract 的问?/title><link>http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html</link><dc:creator>gdufo</dc:creator><author>gdufo</author><pubDate>Thu, 14 Aug 2008 13:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html</guid><wfw:comment>http://www.aygfsteel.com/gdufo/comments/222107.html</wfw:comment><comments>http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/gdufo/comments/commentRss/222107.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/gdufo/services/trackbacks/222107.html</trackback:ping><description><![CDATA[W一?<br />    class Something{<br />         final int f;<br />       public void doSomething(){<br />             System.out.println("f="+f)<br />         }<br />     }<br /> W二?<br />     abstract class Something{<br />         private abstract void doSomething();<br />     }<br /> <br /> 出错在哪里?<br /> <br /> 1)Somethingcd实例化的时候,?x)对成员变量q行初始化,f?x)被赋g0Q按照语法结果就是f=0,可是实际上不是。Java~译器ؓ(f)?jin)减h犯低U错误,对final修饰的变量不?x)再q行默认初始化,而是强制要求你显C的赋一个倹{Java~译器考虑的可真周到啊Q把它自q语法都给推翻?jin)。这么低U的E序我是写不出来Q所以我{错?jin)?br /> 2Q这一题按照语法也没错?jin),可是Z么会(x)被编译不q去呢,说白?jin)原因也是Java~译器ؓ(f)我们考虑太周C(jin)Q我们ؓ(f)什么要在抽象类中定义一个抽象方法,我们大家都知道抽象类是不能实例化Q定义抽象方法就是ؓ(f)?jin)定义一个子cLl承该抽象类q实现它的抽象方法,但是题目中给定的抽象Ҏ(gu)是private修饰的,也就是说它是不能被承的Q也是说我们根本不肯能写出来一个能实现该抽象方法的c,说的更具体一点也是q个抽象c被定义的毫无意义。Java~译器真是太Z(jin)Q连q个也被考虑C(jin)Q反正我是从来没写过q么低的程序,更不?x)去写出来一个毫无意义的抽象cR?br /> 一句话Q这两道题考得不是final和abstract的语法,因ؓ(f)完全合法Q而是语义Q也是Java~程规范?br />  PSQ关于ؓ(f)什么final修饰的成员变量不能被默认初始化的问题Q我想了(jin)很久Q终于想明白?jin)。我们大安知道对象初始化分Z步:(x)<br /> 1Q默认初始化<br /> 2Q赋值初始化<br /> 3Q构造方法初始化<br /> 如果你在cM定义的是一个普通的成员变量非final成员变量Q对该类的对象初始化Ӟ该成员变量会(x)严格按照以上三步q行初始化。如果是该类的成员变量是用final修饰的,该类对象初始化时Q对该成员变量的初始化按照常规也应该p三步l成Q但是由于final修饰的变量是帔RQ不能进行二ơ赋|所以对该类型的变量初始化只能由其中一步来完成Q不能出C叉,否则?x)有~译错误。下面是两个可以正常~译、运行的写法Q?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_0_125_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_125_Open_Text.style.display='none'; Codehighlighter1_0_125_Closed_Image.style.display='inline'; Codehighlighter1_0_125_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_125_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_125_Closed_Text.style.display='none'; Codehighlighter1_0_125_Open_Image.style.display='inline'; Codehighlighter1_0_125_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_125_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span id="Codehighlighter1_0_125_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * <br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="color: #808080">@author</span><span style="color: #008000"> <a href="mailto:flustar2008@163.com">flustar</a><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="color: #808080">@version</span><span style="color: #008000"> 1.0 Creation date: Mar 22, 2008 7:18:18 PM<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_150_335_Open_Image" onclick="this.style.display='none'; Codehighlighter1_150_335_Open_Text.style.display='none'; Codehighlighter1_150_335_Closed_Image.style.display='inline'; Codehighlighter1_150_335_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_150_335_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_150_335_Closed_Text.style.display='none'; Codehighlighter1_150_335_Open_Image.style.display='inline'; Codehighlighter1_150_335_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TestFinal </span><span id="Codehighlighter1_150_335_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_150_335_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> f</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br /> <img id="Codehighlighter1_195_230_Open_Image" onclick="this.style.display='none'; Codehighlighter1_195_230_Open_Text.style.display='none'; Codehighlighter1_195_230_Closed_Image.style.display='inline'; Codehighlighter1_195_230_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_195_230_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_195_230_Closed_Text.style.display='none'; Codehighlighter1_195_230_Open_Image.style.display='inline'; Codehighlighter1_195_230_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> doSomething() </span><span id="Codehighlighter1_195_230_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_195_230_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">f=</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> f);<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_272_333_Open_Image" onclick="this.style.display='none'; Codehighlighter1_272_333_Open_Text.style.display='none'; Codehighlighter1_272_333_Closed_Image.style.display='inline'; Codehighlighter1_272_333_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_272_333_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_272_333_Closed_Text.style.display='none'; Codehighlighter1_272_333_Open_Image.style.display='inline'; Codehighlighter1_272_333_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String args[]) </span><span id="Codehighlighter1_272_333_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_272_333_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        TestFinal test </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> TestFinal();<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        test.doSomething();<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div> ?br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_0_125_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_125_Open_Text.style.display='none'; Codehighlighter1_0_125_Closed_Image.style.display='inline'; Codehighlighter1_0_125_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_0_125_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_125_Closed_Text.style.display='none'; Codehighlighter1_0_125_Open_Image.style.display='inline'; Codehighlighter1_0_125_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span id="Codehighlighter1_0_125_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span id="Codehighlighter1_0_125_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * <br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="color: #808080">@author</span><span style="color: #008000"> <a href="mailto:flustar2008@163.com">flustar</a><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="color: #808080">@version</span><span style="color: #008000"> 1.0 Creation date: Mar 22, 2008 7:18:18 PM<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_150_364_Open_Image" onclick="this.style.display='none'; Codehighlighter1_150_364_Open_Text.style.display='none'; Codehighlighter1_150_364_Closed_Image.style.display='inline'; Codehighlighter1_150_364_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_150_364_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_150_364_Closed_Text.style.display='none'; Codehighlighter1_150_364_Open_Image.style.display='inline'; Codehighlighter1_150_364_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TestFinal </span><span id="Codehighlighter1_150_364_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_150_364_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> f;<br /> <img id="Codehighlighter1_185_195_Open_Image" onclick="this.style.display='none'; Codehighlighter1_185_195_Open_Text.style.display='none'; Codehighlighter1_185_195_Closed_Image.style.display='inline'; Codehighlighter1_185_195_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_185_195_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_185_195_Closed_Text.style.display='none'; Codehighlighter1_185_195_Open_Image.style.display='inline'; Codehighlighter1_185_195_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> TestFinal()</span><span id="Codehighlighter1_185_195_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_185_195_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        f</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_224_259_Open_Image" onclick="this.style.display='none'; Codehighlighter1_224_259_Open_Text.style.display='none'; Codehighlighter1_224_259_Closed_Image.style.display='inline'; Codehighlighter1_224_259_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_224_259_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_224_259_Closed_Text.style.display='none'; Codehighlighter1_224_259_Open_Image.style.display='inline'; Codehighlighter1_224_259_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> doSomething() </span><span id="Codehighlighter1_224_259_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_224_259_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">f=</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">+</span><span style="color: #000000"> f);<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img id="Codehighlighter1_301_362_Open_Image" onclick="this.style.display='none'; Codehighlighter1_301_362_Open_Text.style.display='none'; Codehighlighter1_301_362_Closed_Image.style.display='inline'; Codehighlighter1_301_362_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_301_362_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_301_362_Closed_Text.style.display='none'; Codehighlighter1_301_362_Open_Image.style.display='inline'; Codehighlighter1_301_362_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String args[]) </span><span id="Codehighlighter1_301_362_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_301_362_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        TestFinal test </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> TestFinal();<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        test.doSomething();<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div> 下面再让我们回过头来看看下面q个E序它完全符合Java的语法:(x) <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_15_124_Open_Image" onclick="this.style.display='none'; Codehighlighter1_15_124_Open_Text.style.display='none'; Codehighlighter1_15_124_Closed_Image.style.display='inline'; Codehighlighter1_15_124_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_15_124_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_15_124_Closed_Text.style.display='none'; Codehighlighter1_15_124_Open_Image.style.display='inline'; Codehighlighter1_15_124_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">class</span><span style="color: #000000"> Something</span><span id="Codehighlighter1_15_124_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_15_124_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="color: #0000ff">final</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> f;<br /> <img id="Codehighlighter1_69_118_Open_Image" onclick="this.style.display='none'; Codehighlighter1_69_118_Open_Text.style.display='none'; Codehighlighter1_69_118_Closed_Image.style.display='inline'; Codehighlighter1_69_118_Closed_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_69_118_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_69_118_Closed_Text.style.display='none'; Codehighlighter1_69_118_Open_Image.style.display='inline'; Codehighlighter1_69_118_Open_Text.style.display='inline';" alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />      </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> doSomething()</span><span id="Codehighlighter1_69_118_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_69_118_Open_Text"><span style="color: #000000">{<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">f=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">f)<br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span></span><span style="color: #000000"><br /> <img alt="" src="http://www.aygfsteel.com/Images/OutliningIndicators/None.gif" align="top" /></span></div> Z么说它完全符合语法:(x)<br /> 1Q按照常理会(x)对f默认初始化ؓ(f)0Q?br /> 2Q程序中q没有出C叉,也就是说q没有进行二ơ赋值的可能?br /> 但是~译器ؓ(f)什么不放过它呢Q?br /> 现在让我们来假设一下如果不lf变量不显C的赋一个|它一定会(x)被初始化?Q按照final的定义一旦被初始化一个值后׃能修改了(jin)Q也是说f的值只能是0?jin)。再x当初我们Z么要定义一个final修饰的常量,N仅仅是Z(jin)得到一个默认的不能修改的初始值吗Q这恐怕有q我们当初定义final变量的真正意愿,那么我定义这个final变量又有何意义呢。所以在对对象进行初始化Ӟ发现对象的成员是用final修饰的就?x)查看它是否被显C的赋了(jin)|如果没有׃(x)不能正常~译。这也是Java~程规范中ؓ(f)什么要强制对final变量q行昄赋值的真正原因。同L(fng)道理在abstractc里面定义private abstractҎ(gu)Q这个又有何意义呢?Java中把那些W合语法但不W合常规的用法定义成?jin)规范,我想q也是JavaZ么会(x)有编E规范的原因吧,呵呵Q扯q了(jin)。。?br /> <img src ="http://www.aygfsteel.com/gdufo/aggbug/222107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/gdufo/" target="_blank">gdufo</a> 2008-08-14 21:39 <a href="http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA 面试http://www.aygfsteel.com/gdufo/archive/2008/08/11/221333.htmlgdufogdufoMon, 11 Aug 2008 08:45:00 GMThttp://www.aygfsteel.com/gdufo/archive/2008/08/11/221333.html
  面试是没什么道理可讲的Q它的题目有的不合情理、脱d际。有在纸上写的,有当面考你的,也有在电(sh)话里问的Q给你IDE的估计很?否则你赶快去买彩, 说不定中)。所以如果你看完此文后,请不要抱怨说q些问题都能用IDE来解冟뀂你必须在Q何情况下准确回答q些问题Q在面试中如果出C两题回答不准很有可能你p拒之门外?jin)?nbsp;

  当然q些都是Java的基本题Q那些面试的人大多数不会(x)问你Hibernate有多先进QEclipse的三个组成部分,或command design patternQ他们都是老一辈了(jin)Q最喜欢问的是基础知识。别看?jin)这些基Q我朋友水^一,l果栽在一到基知识的问题下Q和高薪无缘?nbsp;




扑ַ作要面试Q有面试有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及(qing)其它大小公司?nbsp;

  面试是没什么道理可讲的Q它的题目有的不合情理、脱d际。有在纸上写的,有当面考你的,也有在电(sh)话里问的Q给你IDE的估计很?否则你赶快去买彩, 说不定中)。所以如果你看完此文后,请不要抱怨说q些问题都能用IDE来解冟뀂你必须在Q何情况下准确回答q些问题Q在面试中如果出C两题回答不准很有可能你p拒之门外?jin)?nbsp;

  当然q些都是Java的基本题Q那些面试的人大多数不会(x)问你Hibernate有多先进QEclipse的三个组成部分,或command design patternQ他们都是老一辈了(jin)Q最喜欢问的是基础知识。别看?jin)这些基Q我朋友水^一,l果栽在一到基知识的问题下Q和高薪无缘?nbsp;

  好了(jin)废话说Q开始正题?nbsp;

  W一Q谈谈final, finally, finalize的区别?nbsp;

  final 用于声明属性,Ҏ(gu)和类Q分别表C属性不可变Q方法不可覆盖,cM可ѝ?br /> finally是异常处理语句结构的一部分Q表CL执行?br /> finalize是Objectcȝ一个方法,在垃圾收集器执行的时候会(x)调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回Ӟ例如关闭文g{?br />
  W二QAnonymous Inner Class (匿名内部c? 是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)? 
可以l承其他cL完成其他接口Q在swing~程中常用此方式?br />   W三QStatic Nested Class ?nbsp;Inner Class的不同,说得多好(面试题有的很W统)?nbsp;
Static Nested Class是被声明为静(rn)态(staticQ的内部c,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部cd例化后才能实例化?br />   W四Q?amp;?amp;&的区别?nbsp;
&是位q算W,表示按位与运,&&是逻辑q算W,表示逻辑与(andQ?
  W五QHashMap和Hashtable的区别?nbsp;
HashMap是Hashtable的轻量实现Q非U程安全的实玎ͼ(j)Q他们都完成?jin)Map接口Q主要区别在于HashMap允许I(nullQ键|keyQ?׃非线E安全,效率上可能高于Hashtable.


  W六QCollection ?nbsp;Collections的区别?nbsp;

  Collection是集合类的上U接口,l承与他的接口主要有Set 和List.
Collections是针寚w合类的一个帮助类Q他提供一pd?rn)态方法实现对各种集合的搜索、排序、线E安全化{操作?br />
  W七Q什么时候用assert?nbsp;
1.4新增关键字(语法Q,用于试boolean表达式状态,可用于调试程序?br /> 使用Ҏ(gu) assert <boolean表达?gt;Q表C如果表辑ּ为真QtrueQ?则下面的语句执行Q否则抛出AssertionError?br /> 另外的用方式assert < boolean表达?gt;:<other表达?gt;Q表C如果表辑ּ为真Q后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数?br /> 注意~译时要增加-source 1.4 参数Q否则报错。]q行时要增加 -ea参数Q否则assert行被忽略

  W八QGC是什? Z么要有GC? 

  GC是垃圾收集的意思(Gabage CollectionQ?内存处理是编Eh员容易出现问题的地方Q忘记或者错误的内存回收?x)导致程序或pȝ的不E_甚至崩溃QJava提供的GC功能可以自动监测对象是否过作用域从而达到自动回收内存的目的QJava语言没有提供释放已分配内存的昄操作Ҏ(gu)?nbsp;

  W九(ji)QString s = new String("xyz");创徏?jin)几个String Object? 
两个
  W十QMath.round(11.5){於多少? Math.round(-11.5){於多少? 
Math.round(11.5)==12
Math.round(-11.5)==-11
roundҎ(gu)q回与参数最接近的长整数Q参数加1/2后求其floor.
  W十一Qshort s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 
short s1 = 1; s1 = s1 + 1; Qs1+1q算l果是int型,需要强制{换类型)(j)
short s1 = 1; s1 += 1;Q可以正编译)(j)
  W十二,sleep() ?nbsp;wait() 有什么区? 
sleep是线E类QThreadQ的Ҏ(gu)Q导致此U程暂停执行指定旉Q给执行Z(x)l其他线E,但是监控状态依然保持,到时后会(x)自动恢复。调用sleep不会(x)释放对象锁?br /> wait是ObjectcȝҎ(gu)Q对此对象调用waitҎ(gu)D本线E放弃对象锁Q进入等待此对象的等待锁定池Q只有针Ҏ(gu)对象发出notifyҎ(gu)Q或notifyAllQ后本线E才q入对象锁定池准备获得对象锁q入q行状态?br />   W十三,Java有没有goto? 
没有
  很十三的问题Q如果哪个面试的问到q个问题Q我劝你q是别进q家公司。(完)(j)Qjob.sohu.comQ?br />



W十四,数组有没有length()q个Ҏ(gu)? String有没有length()q个Ҏ(gu)Q?br /> 数组没有length()q个Ҏ(gu)Q有length的属性?br /> String有有length()q个Ҏ(gu)?br />
W十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的cd?
Ҏ(gu)的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现。如果在子类中定义某Ҏ(gu)与其父类有相同的名称和参敎ͼ我们说该Ҏ(gu)被重?nbsp;(Overriding)。子cȝ对象使用q个Ҏ(gu)Ӟ调用子cM的定义,对它而言Q父cM的定义如同被"屏蔽"?jin)。如果在一个类中定义了(jin)多个同名的方法,它们或有不同的参C数或有不同的参数cdQ则UCؓ(f)Ҏ(gu)的重?Overloading)。Overloaded的方法是可以改变q回值的cd?br />
W十六,Set里的元素是不能重复的Q那么用什么方法来区分重复与否? 是用==q是equals()? 它们有何区别?
Set里的元素是不能重复的Q那么用iterator()Ҏ(gu)来区分重复与否。equals()是判M个Set是否相等?br /> equals()?=Ҏ(gu)军_引用值是否指向同一对象equals()在类中被覆盖Qؓ(f)的是当两个分ȝ对象的内容和cd盔R的话Q返回真倹{?br />
W十七,l我一个你最常见到的runtime exception?br /> ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, 
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

W十八,error和exception有什么区?
error 表示恢复不是不可能但很困隄情况下的一U严重问题。比如说内存溢出。不可能指望E序能处理这L(fng)情况?br /> exception 表示一U设计或实现问题。也是_(d)它表C如果程序运行正常,从不?x)发生的情况?br />

W十?ji),List, Set, Map是否l承自Collection接口?
ListQSet?br /> Map不是

W二十,abstract class和interface有什么区?
声明Ҏ(gu)的存在而不d现它的类被叫做抽象类Qabstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ(f)该类声明Ҏ(gu)Q但不能在该cM实现该类的情c(din)不能创建abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象?rn)态方法。Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ(f)。取而代之,在子cM实现该方法。知道其行ؓ(f)的其它类可以在类中实现这些方法?br /> 接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了(jin)该实现类不能从接口定义中l承行ؓ(f)。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ(gu)。然后,它可以在实现?jin)该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ(f)引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现?jin)接口?br />
W二十一Qabstract的method是否可同时是static,是否可同时是nativeQ是否可同时是synchronized?
都不?br />
W二十二Q接口是否可l承接口? 抽象cL否可实现(implements)接口? 抽象cL否可l承实体c?concrete class)?
接口可以l承接口。抽象类可以实现(implements)接口Q抽象类是否可承实体类Q但前提是实体类必须有明的构造函数?br />
W二十三Q启动一个线E是用run()q是start()?
启动一个线E是调用start()Ҏ(gu)QɾU程所代表的虚拟处理机处于可运行状态,q意味着它可以由JVM调度q执行。这q不意味着U程׃(x)立即q行。run()Ҏ(gu)可以产生必须退出的标志来停止一个线E?br />


W二十四Q构造器Constructor是否可被override?
构造器Constructor不能被承,因此不能重写OverridingQ但可以被重载Overloading?br />
W二十五Q是否可以承Stringc?
StringcLfinalcL不可以ѝ?br />
W二十六Q当一个线E进入一个对象的一个synchronizedҎ(gu)后,其它U程是否可进入此对象的其它方?
不能Q一个对象的一个synchronizedҎ(gu)只能׃个线E访问?br />
W二十七Qtry {}里有一个return语句Q那么紧跟在q个try后的finally {}里的code?x)不会(x)被执行Q什么时候被执行Q在return前还是后?
?x)执行,在return前执行?br />

W二十八Q编E题: 用最有效率的Ҏ(gu)出2乘以8{於?
有C背景的程序员特别喜欢问这U问题?br /> 2 << 3

W二十九(ji)Q两个对象值相?x.equals(y) == true)Q但却可有不同的hash codeQ这句话对不?
不对Q有相同的hash code?br />
W三十,当一个对象被当作参数传递到一个方法后Q此Ҏ(gu)可改变这个对象的属性,q可q回变化后的l果Q那么这里到底是g递还是引用传? 
是g递。Java ~程语言只由g递参数。当一个对象实例作Z个参数被传递到Ҏ(gu)中时Q参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变Q但对象的引用是永远不会(x)改变的?br />

W三十一Qswtich是否能作用在byte上,是否能作用在long上,是否能作用在String?
switchQexpr1Q中Qexpr1是一个整数表辑ּ。因此传递给 switch ?nbsp;case 语句的参数应该是 int?nbsp;short?nbsp;char 或?nbsp;byte。long,string 都不能作用于swtich?br />
W三十二Q编E题: 写一个Singleton出来?br /> Singleton模式主要作用是保证在Java应用E序中,一个类Class只有一个实例存在?br /> 一般Singleton模式通常有几U种形式:
W一UŞ? 定义一个类Q它的构造函Cؓ(f)private的,它有一个static的private的该cd量,在类初始化时实例话,通过一个public的getInstanceҎ(gu)获取对它的引?l而调用其中的Ҏ(gu)?br /> public class Singleton {
  private Singleton(){}
  //在自己内部定义自׃个实例,是不是很奇怪?
  //注意q是private 只供内部调用
  private static Singleton instance = new Singleton();
  //q里提供?jin)一个供外部讉K本class的静(rn)态方法,可以直接讉K  
  public static Singleton getInstance() {
    return instance;   
   } 

W二UŞ? 
public class Singleton { 
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //q个Ҏ(gu)比上面有所改进Q不用每ơ都q行生成对象Q只是第一ơ     
  //使用时生成实例,提高?jin)效率?br />   if (instance==null)
    instanceQnew Singleton();
return instance;   } 

其他形式:
定义一个类Q它的构造函Cؓ(f)private的,所有方法ؓ(f)static的?br /> 一般认为第一UŞ式要更加安全?br />

gdufo 2008-08-11 16:45 发表评论
]]>
վ֩ģ壺 ˮ| | Դ| | | | | ߰| Ӣɽ| | ½| ɽ| | | Ԫ| | | | | ʩ| | | Ϲ| | | »| | | | | | | | | | ˮ| | ʯ| | ˳| ˮ|