<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java知識(shí)片段

    在面試中,經(jīng)常要評(píng)估面試者的java基礎(chǔ)知識(shí)和其他知識(shí)的掌握情況,包括public/private/protected/默認(rèn)修飾符、static/final修飾符、集合、字符串操作、對(duì)象比較、異常、設(shè)計(jì)模式和面試者經(jīng)常使用的框架等,整理一下自己經(jīng)常使用的評(píng)估方法,:),拋磚中,希望能看到一些好的建議,讓大家更好的學(xué)習(xí)java知識(shí),同時(shí)也更好的判斷人才,挖出真正的“金子”。
    在面試中我更喜歡用一些實(shí)際的題目來(lái)看面試者對(duì)于知識(shí)的真正掌握情況,而不是直接問(wèn)理論,理論的話(huà)很多時(shí)候都是背出來(lái)的,只有在真正的實(shí)戰(zhàn)中能結(jié)合這些理論,那么才是真正的掌握了。
    1、public/private/protected/默認(rèn)修飾符
       有如下一段程序:
       package a.b.c;
       public class Test{
           String name="BlueDavy";
           protected String desc="blog.bluedavy.cn";
       }
       package a.b.c;
       public class TestA{
           private String name;
           private String desc;
           public TestA(){
               Test test=new Test();
               name=test.name;
               desc=test.desc;
           }
       }
       package a.b.c.d;
       public class TestB{
            private String name;
            private String desc;
            public TestB(){
               Test test=new Test();
               name=test.name;
               desc=test.desc;
            }
       }
       package a.b.c.d;
       import a.b.c.Test;
       public class TestC extends Test{
            private String cname;
            private String cdesc;
            public TestC(){
               cname=name;
               cdesc=desc;
            }
       }
       請(qǐng)問(wèn)以上TestA、TestB、TestC能編譯過(guò)嗎,如編譯不過(guò),原因是什么?
    2、static/final修飾符
       有如下一段程序:
       package a.b.c;
       public class Test{
           private static int i=0;
           public int getNext(){
              return i++;
           }
       }
       package a.b.c;
       public class TestB{
           public static void main(String[] args){
               Test test=new Test();
               System.out.println(test.getNext());
               Test testObject=new Test();
               System.out.println(testObject.getNext());
               System.out.println(test.getNext());
           }
       }
       請(qǐng)問(wèn)最后打印出來(lái)的是什么,為什么?(這里其實(shí)還潛在的考察了i++和++i的不同)   
    3、集合
       有這樣一段程序:
       package a.b.c;
       public class Test{
           public static void main(String[] args){
               List list=new ArrayList();
               list.add("a");
               list.add("b");
               list.add("a");
               Set set=new HashSet();
               set.add("a");
               set.add("b");
               set.add("a");
               System.out.println(list.size());
               System.out.println(set.size());
           } 
       }
       請(qǐng)問(wèn)運(yùn)行上面的程序后會(huì)打印出的是什么,為什么?
    4、字符串操作
       有這么一段程序:
               String a=new String("a");
               String b="b";
               String c=a+b;
               StringBuffer strBuf=new StringBuffer();
               strBuf.append("a");
               strBuf.append("b");
               String d=strBuf.toString();
               StringBuilder strBuilder=new StringBuilder();
               strBuilder.append("a");
               strBuilder.append("b");
               String e=strBuilder.toString();
       請(qǐng)問(wèn)以上程序片段中c、d、e的字符串的創(chuàng)建各有什么不同?
    5、對(duì)象比較
       有這么一段程序:
       package a.b.c;
       public class Test{
           public String name="BlueDavy";
       }
       package a.b.c;
       public class TestA{
           public static void main(String[] args){
               Test test=new Test();
               Test testB=new Test();
               System.out.println(test.equals(testB));
               System.out.println(test.name.equals(testB.name));
           }
       }
       請(qǐng)問(wèn)以上程序執(zhí)行的結(jié)果是,為什么?
       潛在問(wèn)題,如要test.equals(testB)為true,需要怎么做?
    6、異常
       有這樣一段程序:
       package a.b.c;
       public class TestException extends Exception{
           public TestException(String message){
               super(message);
           }
       };
       package a.b.c;
       public class Test{
           public void call(int state) throws IllegalStateException{
               if(state==0)
                  throws new IllegalStateException("state is 0");
           }
           public void invoke(int state) throws TestException{
               if(state==0)
                  throws new TestException("state is 0");
           }
       }
       package a.b.c;
       public class TestA{
           public static void main(String[] args){
                Test test=new Test();
                test.call(0);
                test.invoke(0);
           }
       }
       請(qǐng)問(wèn)以上的TestA有問(wèn)題嗎,如沒(méi)問(wèn)題執(zhí)行的結(jié)果是?
    以上的這些題目更多的是從基礎(chǔ)層面去考慮,而且也只是考察了相應(yīng)知識(shí)點(diǎn)的片面的部分,當(dāng)面試者能正確的過(guò)掉這個(gè)基礎(chǔ)關(guān)后,完全可以更加深入的交流這些基礎(chǔ)知識(shí),例如可以拿實(shí)際程序的題目來(lái)繼續(xù)問(wèn)集合中HashMap和Hashtable的不同(甚至還可以引入并發(fā)場(chǎng)景)、JVM是如何存儲(chǔ)HashMap的key和value的、當(dāng)存儲(chǔ)的內(nèi)容超過(guò)了HashMap的容量時(shí),jvm會(huì)怎么做等問(wèn)題。
    除了這些基礎(chǔ)知識(shí)外,還可以進(jìn)一步評(píng)估對(duì)于java io、java thread、java concurrent、java net、java NIO等package的掌握程度。
    更進(jìn)一步,可以繼續(xù)評(píng)估面試者對(duì)于JMX、JNDI、JTA、RMI、Java classloader、反射、動(dòng)態(tài)代理、GC、JVM內(nèi)存分配等更為深入的領(lǐng)域的掌握程度,當(dāng)然,問(wèn)的問(wèn)題需要根據(jù)所需招的崗位的知識(shí)體系來(lái)定。
    而設(shè)計(jì)模式也是在面試時(shí)經(jīng)常會(huì)考察的一點(diǎn):
    例如單態(tài)模式,可以請(qǐng)面試者直接手寫(xiě)一段單態(tài)模式的代碼,然后針對(duì)代碼可以問(wèn)些不同的問(wèn)題,例如有用同步方式寫(xiě)的,可以問(wèn)如何減少getInstance的鎖競(jìng)爭(zhēng)等問(wèn)題。
    進(jìn)而可以評(píng)估面試者對(duì)于更復(fù)雜的組合模式以及相關(guān)實(shí)現(xiàn)技術(shù)的掌握程度,例如MVC模式,可以請(qǐng)面試者說(shuō)出假設(shè)不用任何開(kāi)源的MVC框架,而是自己寫(xiě),那么這個(gè)時(shí)候提交的request的整個(gè)處理流程是怎么樣的,如果面試者答的不錯(cuò)的話(huà),可以繼續(xù)問(wèn)這其中涉及的例如配置文件解析、反射等等問(wèn)題,另外還可以評(píng)估下面試者自己的想法,同樣還有像事件機(jī)制如何實(shí)現(xiàn)、提供出3個(gè)spring bean xml,在沒(méi)有spring的情況下怎么將xml中定義的bean初始化并且將所有的依賴(lài)注入等等問(wèn)題。
    在和面試者交流了這些后,可以交流下面試者在其熟悉的框架上的掌握程度。
    還有一點(diǎn)最需要評(píng)估的是面試者對(duì)于技術(shù)的興趣程度,在面試過(guò)程中要注意察言觀(guān)色,再結(jié)合一些技術(shù)興趣方面的問(wèn)題,基本就可以判斷出來(lái)了,例如對(duì)于技術(shù)感興趣的很多會(huì)研究一些冷門(mén)的技術(shù)、對(duì)于所感興趣的技術(shù)會(huì)有比較多的了解、或用技術(shù)做一些好玩的東西等等。
    以上所有的問(wèn)題更多的是面試官根據(jù)企業(yè)的需求來(lái)進(jìn)行主動(dòng)的提問(wèn),在最后應(yīng)該問(wèn)問(wèn)面試者是否有未問(wèn)到的,但面試者自己認(rèn)為比較熟悉的領(lǐng)域,如果有的話(huà),也應(yīng)進(jìn)行交流,以能夠更加準(zhǔn)確的評(píng)估面試者,但畢竟面試的時(shí)間通常不會(huì)太長(zhǎng),問(wèn)的問(wèn)題必然會(huì)出現(xiàn)片面性,這個(gè)時(shí)候面試就存在了一定的運(yùn)氣成分,因此要很準(zhǔn)確的評(píng)估是很難做到的,多數(shù)的面試方法都是通過(guò)多輪面試的方法,以盡量更加準(zhǔn)確的進(jìn)行評(píng)估,:)。

    posted on 2008-10-16 23:41 BlueDavy 閱讀(6598) 評(píng)論(16)  編輯  收藏 所屬分類(lèi): Java

    評(píng)論

    # re: java知識(shí)片段 2008-10-17 00:20 Kane

    總結(jié)的很好!  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段[未登錄](méi) 2008-10-17 01:04 trace

    不錯(cuò) 都是很基本的東西 ,不過(guò)很有用   回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 09:07 yeshucheng

    這題目咋看不難,但是很有陷阱。。。哈哈
    確實(shí)不錯(cuò),四個(gè)作用域都考到了。

    其實(shí)還可以測(cè)試類(lèi)的調(diào)用順序  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 09:17 foy

    可惜沒(méi)遇到博主這樣好的面試官啊  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 10:23 YYX

    1.testB不過(guò)
    2.0 1 2
    3. 3 2
    4.只不過(guò)想比較下stringbuilder和stringbuffer不同吧,那就是線(xiàn)程安全性上區(qū)別而已,另外這里c和e創(chuàng)建過(guò)程是一樣的.
    5.false,true,如要test.equals(testB)為true就重寫(xiě)equals方法,讓他對(duì)name比較.
    6.call方法和TestA都有問(wèn)題,call方法聲明了個(gè)RuntimeException作為未捕獲異常是編譯不過(guò)的,TestA的main方法則沒(méi)有捕獲聲明的TestException.

    能過(guò)面試不?  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 10:24 YYX

    是自己想出來(lái)的面試題吧?其實(shí)可以參考scjp的題出。  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 10:42 galaxystar

    @YYX
    接下來(lái)幾題, 還考察了 string pool.
      回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段[未登錄](méi) 2008-10-17 11:19 henry1451

    這些題對(duì)于有了一,二年開(kāi)發(fā)經(jīng)驗(yàn)的人來(lái)說(shuō),都不在話(huà)下,但面試的時(shí)候,在說(shuō)明問(wèn)題的原因時(shí),有些面試者可能說(shuō)的不太準(zhǔn)確,但不妨礙使用,比如第4題,呵呵.  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 14:38 Kane

    @YYX
    5, 要同時(shí)重載hashCode(), equals()  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段[未登錄](méi) 2008-10-17 18:43 小xiong

    其實(shí)都是些基礎(chǔ)的知識(shí),但是又有難度。

    等自己畢業(yè)后出去找工作,要好好的多看這一類(lèi)面試題目。

    同時(shí)也要謝謝博主,對(duì)于我這樣未畢業(yè)的大學(xué)生來(lái)說(shuō),實(shí)在好東西。

    謝謝您了!  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-17 18:53 yeshucheng

    這里第三題個(gè)人覺(jué)得沒(méi)有考出水平,其實(shí)可以結(jié)合hashCode(),equals()來(lái)做把Set提煉出來(lái)  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-18 11:53 fangfeimengxiang

    請(qǐng)問(wèn)JAVA 學(xué)什么啊
    最初學(xué)什么知識(shí)啊
    我學(xué)JAVA的怎么從計(jì)算機(jī)基礎(chǔ)學(xué)啊
    到現(xiàn)在還不知道是JAVA  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-23 18:07 ic

    @YYX
    1. TestC也過(guò)不了的,因?yàn)閷?duì)name的訪(fǎng)問(wèn)超過(guò)了包訪(fǎng)問(wèn)權(quán)限  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-23 18:12 ic

    @YYX
    5. 重寫(xiě)equals()方法,才能使之相等,根據(jù)Object的equals()的規(guī)約
    if a.equals(b) -> a.hashCode()==b.hashCode()
    所以要把兩個(gè)方法都重寫(xiě)了。  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2008-10-23 18:13 ic

    哎,就要找工作了,還有很多知識(shí)不曉得啊。。  回復(fù)  更多評(píng)論   

    # re: java知識(shí)片段 2009-01-23 11:45 MyYate

    if(state==0)
    throws new IllegalStateException("state is 0");
    這個(gè)肯能是筆誤吧,throws=》throw

    對(duì)于這個(gè)問(wèn)題?
    在沒(méi)有spring的情況下怎么將xml中定義的bean初始化并且將所有的依賴(lài)注入等等問(wèn)題、
    這個(gè)我想肯定也是和spring方式一樣,全部預(yù)先讀取,然后初始化,注入(這兩步也是分單例和原型的)、
    我想請(qǐng)問(wèn)樓主,這個(gè)您是想考察面試者哪些方面的知識(shí)?  回復(fù)  更多評(píng)論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導(dǎo)航

    <2008年10月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計(jì)

    隨筆分類(lèi)

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲av无码片区一区二区三区| 在线观看永久免费视频网站| 99久久免费国产精精品| 皇色在线免费视频| 久久www免费人成看国产片| 精品熟女少妇aⅴ免费久久| 中文字幕在线免费播放| 中文字幕免费人成乱码中国| 青青操在线免费观看| 青青操免费在线观看| 污视频在线观看免费| 69pao强力打造免费高清| 永久在线免费观看| 欧美三级在线电影免费| 韩国欧洲一级毛片免费| 全部免费毛片免费播放| 久久亚洲高清综合| 亚洲va久久久噜噜噜久久| 亚洲国产精品久久久久婷婷软件 | 成人免费毛片内射美女-百度| 日韩免费精品视频| 在线免费观看一区二区三区| 国产网站免费观看| 国产成人精品曰本亚洲79ren| 国产偷v国产偷v亚洲高清| 亚洲精品熟女国产| 亚洲另类自拍丝袜第五页| 国产精品亚洲综合天堂夜夜| 一个人看的www免费在线视频| 精品在线免费观看| 日韩欧毛片免费视频| 全部免费毛片免费播放| 亚洲成AV人片在线观看| 亚洲免费二区三区| 青青草国产免费国产是公开| 在线看片免费人成视频播| 日韩视频在线精品视频免费观看 | 一个人免费观看在线视频www | 久久大香伊焦在人线免费| 无码av免费毛片一区二区| 亚洲AV无码一区二区三区国产 |