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

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

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

    java知識片段

    在面試中,經(jīng)常要評估面試者的java基礎知識和其他知識的掌握情況,包括public/private/protected/默認修飾符、static/final修飾符、集合、字符串操作、對象比較、異常、設計模式和面試者經(jīng)常使用的框架等,整理一下自己經(jīng)常使用的評估方法,:),拋磚中,希望能看到一些好的建議,讓大家更好的學習java知識,同時也更好的判斷人才,挖出真正的“金子”。
    在面試中我更喜歡用一些實際的題目來看面試者對于知識的真正掌握情況,而不是直接問理論,理論的話很多時候都是背出來的,只有在真正的實戰(zhàn)中能結(jié)合這些理論,那么才是真正的掌握了。
    1、public/private/protected/默認修飾符
       有如下一段程序:
       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;
            }
       }
       請問以上TestA、TestB、TestC能編譯過嗎,如編譯不過,原因是什么?
    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());
           }
       }
       請問最后打印出來的是什么,為什么?(這里其實還潛在的考察了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());
           } 
       }
       請問運行上面的程序后會打印出的是什么,為什么?
    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();
       請問以上程序片段中c、d、e的字符串的創(chuàng)建各有什么不同?
    5、對象比較
       有這么一段程序:
       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));
           }
       }
       請問以上程序執(zhí)行的結(jié)果是,為什么?
       潛在問題,如要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);
           }
       }
       請問以上的TestA有問題嗎,如沒問題執(zhí)行的結(jié)果是?
    以上的這些題目更多的是從基礎層面去考慮,而且也只是考察了相應知識點的片面的部分,當面試者能正確的過掉這個基礎關后,完全可以更加深入的交流這些基礎知識,例如可以拿實際程序的題目來繼續(xù)問集合中HashMap和Hashtable的不同(甚至還可以引入并發(fā)場景)、JVM是如何存儲HashMap的key和value的、當存儲的內(nèi)容超過了HashMap的容量時,jvm會怎么做等問題。
    除了這些基礎知識外,還可以進一步評估對于java io、java thread、java concurrent、java net、java NIO等package的掌握程度。
    更進一步,可以繼續(xù)評估面試者對于JMX、JNDI、JTA、RMI、Java classloader、反射、動態(tài)代理、GC、JVM內(nèi)存分配等更為深入的領域的掌握程度,當然,問的問題需要根據(jù)所需招的崗位的知識體系來定。
    而設計模式也是在面試時經(jīng)常會考察的一點:
    例如單態(tài)模式,可以請面試者直接手寫一段單態(tài)模式的代碼,然后針對代碼可以問些不同的問題,例如有用同步方式寫的,可以問如何減少getInstance的鎖競爭等問題。
    進而可以評估面試者對于更復雜的組合模式以及相關實現(xiàn)技術的掌握程度,例如MVC模式,可以請面試者說出假設不用任何開源的MVC框架,而是自己寫,那么這個時候提交的request的整個處理流程是怎么樣的,如果面試者答的不錯的話,可以繼續(xù)問這其中涉及的例如配置文件解析、反射等等問題,另外還可以評估下面試者自己的想法,同樣還有像事件機制如何實現(xiàn)、提供出3個spring bean xml,在沒有spring的情況下怎么將xml中定義的bean初始化并且將所有的依賴注入等等問題。
    在和面試者交流了這些后,可以交流下面試者在其熟悉的框架上的掌握程度。
    還有一點最需要評估的是面試者對于技術的興趣程度,在面試過程中要注意察言觀色,再結(jié)合一些技術興趣方面的問題,基本就可以判斷出來了,例如對于技術感興趣的很多會研究一些冷門的技術、對于所感興趣的技術會有比較多的了解、或用技術做一些好玩的東西等等。
    以上所有的問題更多的是面試官根據(jù)企業(yè)的需求來進行主動的提問,在最后應該問問面試者是否有未問到的,但面試者自己認為比較熟悉的領域,如果有的話,也應進行交流,以能夠更加準確的評估面試者,但畢竟面試的時間通常不會太長,問的問題必然會出現(xiàn)片面性,這個時候面試就存在了一定的運氣成分,因此要很準確的評估是很難做到的,多數(shù)的面試方法都是通過多輪面試的方法,以盡量更加準確的進行評估,:)。

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

    評論

    # re: java知識片段 2008-10-17 00:20 Kane

    總結(jié)的很好!  回復  更多評論   

    # re: java知識片段[未登錄] 2008-10-17 01:04 trace

    不錯 都是很基本的東西 ,不過很有用   回復  更多評論   

    # re: java知識片段 2008-10-17 09:07 yeshucheng

    這題目咋看不難,但是很有陷阱。。。哈哈
    確實不錯,四個作用域都考到了。

    其實還可以測試類的調(diào)用順序  回復  更多評論   

    # re: java知識片段 2008-10-17 09:17 foy

    可惜沒遇到博主這樣好的面試官啊  回復  更多評論   

    # re: java知識片段 2008-10-17 10:23 YYX

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

    能過面試不?  回復  更多評論   

    # re: java知識片段 2008-10-17 10:24 YYX

    是自己想出來的面試題吧?其實可以參考scjp的題出。  回復  更多評論   

    # re: java知識片段 2008-10-17 10:42 galaxystar

    @YYX
    接下來幾題, 還考察了 string pool.
      回復  更多評論   

    # re: java知識片段[未登錄] 2008-10-17 11:19 henry1451

    這些題對于有了一,二年開發(fā)經(jīng)驗的人來說,都不在話下,但面試的時候,在說明問題的原因時,有些面試者可能說的不太準確,但不妨礙使用,比如第4題,呵呵.  回復  更多評論   

    # re: java知識片段 2008-10-17 14:38 Kane

    @YYX
    5, 要同時重載hashCode(), equals()  回復  更多評論   

    # re: java知識片段[未登錄] 2008-10-17 18:43 小xiong

    其實都是些基礎的知識,但是又有難度。

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

    同時也要謝謝博主,對于我這樣未畢業(yè)的大學生來說,實在好東西。

    謝謝您了!  回復  更多評論   

    # re: java知識片段 2008-10-17 18:53 yeshucheng

    這里第三題個人覺得沒有考出水平,其實可以結(jié)合hashCode(),equals()來做把Set提煉出來  回復  更多評論   

    # re: java知識片段 2008-10-18 11:53 fangfeimengxiang

    請問JAVA 學什么啊
    最初學什么知識啊
    我學JAVA的怎么從計算機基礎學啊
    到現(xiàn)在還不知道是JAVA  回復  更多評論   

    # re: java知識片段 2008-10-23 18:07 ic

    @YYX
    1. TestC也過不了的,因為對name的訪問超過了包訪問權限  回復  更多評論   

    # re: java知識片段 2008-10-23 18:12 ic

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

    # re: java知識片段 2008-10-23 18:13 ic

    哎,就要找工作了,還有很多知識不曉得啊。。  回復  更多評論   

    # re: java知識片段 2009-01-23 11:45 MyYate

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

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

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導航

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

    統(tǒng)計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品欧洲精品| 日韩在线视频线视频免费网站| 成人免费无毒在线观看网站| 婷婷国产偷v国产偷v亚洲| 亚洲中文字幕无码爆乳AV| 18女人毛片水真多免费| 在线观看亚洲精品专区| 337p日本欧洲亚洲大胆艺术| 四虎永久免费观看| 99re6在线精品视频免费播放| 亚洲AV无码一区二区大桥未久| 国产亚洲婷婷香蕉久久精品| 成年私人影院免费视频网站| 久久国产精品成人免费| 亚洲AV无码国产剧情| 亚洲AV永久无码精品| 日韩中文无码有码免费视频| 无码成A毛片免费| 另类小说亚洲色图| 亚洲国产成人久久三区| 国产亚洲精品a在线无码| 成人黄18免费视频| jjizz全部免费看片| 成人网站免费大全日韩国产| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲国产精品线在线观看| 免费夜色污私人影院在线观看| 免免费国产AAAAA片| 中文字幕无码免费久久| 免费看一级一级人妻片| 亚洲色最新高清av网站| 亚洲视频在线观看视频| 亚洲日韩一页精品发布| 成人性生交大片免费看午夜a| 91制片厂制作传媒免费版樱花 | 亚洲hairy多毛pics大全| 亚洲一区二区在线免费观看| 国产亚洲人成网站在线观看| 国产又粗又长又硬免费视频| 无码人妻一区二区三区免费| 免费国产黄网站在线观看可以下载 |