the journey is the reward...

          導航

          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆分類

          文章分類

          隨筆檔案

          文章檔案

          閱讀排行榜

          評論排行榜

          常用鏈接

          統計

          最新評論

          你能通過下面的3道java面試題嗎?

          1.java static inner class 和 non-static inner class的區別?  

          2.請寫出一個singleton模式的class.

          你如果寫出下面的2種樣式,我會問你:請問你如何在同一個jvm中并且在同一個classLoader中得到它的多個實例?(請不要奇怪)

          樣列1:

          public class Singleton {  
           private final static Singleton instance=new Singleton();
           private Singleton(){} 
           public static Singleton newInstance(){  
            return instance;  
           } 
          }

          樣列2:

          public class Singleton { 
           private static volatile int instanceCounter=0; 
           private Singleton(){
            if(instanceCounter>0)
             throw new RuntimeException("can't create multi instances!");
            instanceCounter++;
           }
           
           private final static Singleton instance=new Singleton();
           public static Singleton newInstance(){  
            return instance;  
           }

          3.java 的exception 分checked,unchecked.像RuntimeException,Error都不用顯式try-catch,直接可以throw,

          但是一般的exception是必須catch的:

          throw new Exception("..."),如果這句不在try-catch體內,或者方法的聲明沒有throws,那么編譯是通不過的.

          ok,請看如下的代碼:

          public class TestClass { 
           
           public void  testMethod()/*這里沒有throws 哦!*/{  

                    ......
                     throw new Exception("force throw the exception...");
                    ......
           }
          }

          很明顯上面的方法如果這樣的話是通不過編譯的,但是如果非得要你在testMethod體中在運行時throw一個很一般的Exception,請問你有辦法嗎? 

          這3道題可不是sun出的考題哦!不信你搜搜......

          posted on 2010-03-03 11:28 adapterofcoms 閱讀(966) 評論(4)  編輯  收藏 所屬分類: java bbs

          評論

          # re: 你能通過下面的3道java面試題嗎? 2010-07-29 09:39 epinszteinic

          靜態內部類和非靜態內部類:
          new的方法不一樣。
          非靜態內部類依賴于父親的實例,不允許有靜態成員。

          直接上代碼:

          public class TestAA {

          public static void main(String[] args) {

          new TestAA().new A();
          new TestAA.B();

          new TestAA().testMethod();
          }

          class A {
          public A() {
          System.out.println("A");
          }
          }

          static class B {
          public B() {
          System.out.println("B");
          }
          }

          public void testMethod() {
          throw new RuntimeException(new Exception("一般的Exception"));
          }

          }
            回復  更多評論   

          # re: 你能通過下面的3道java面試題嗎? 2011-01-20 02:44 lin

          第三題就創建一個對象,在對象中拋出異常就得了呀  回復  更多評論   

          # re: 你能通過下面的3道java面試題嗎? 2011-04-28 10:35 鄭思畢

          第三個問題好無聊啊,實際運用中,根本不可能有這樣的事情,明顯違反了的規則,為何還要強求  回復  更多評論   

          # re: 你能通過下面的3道java面試題嗎? 2012-04-07 22:38 Daniel Hu

          用ThreadLocal  回復  更多評論   

          主站蜘蛛池模板: 丘北县| 当涂县| 富源县| 商水县| 安溪县| 乃东县| 临安市| 筠连县| 廊坊市| 桦川县| 泗洪县| 郁南县| 吴忠市| 金秀| 琼中| 平武县| 旬阳县| 唐山市| 临夏县| 崇礼县| 卓尼县| 仪陇县| 浮山县| 嘉峪关市| 三门峡市| 通化市| 塘沽区| 宜城市| 芮城县| 兴义市| 华蓥市| 呼伦贝尔市| 平安县| 来安县| 陆河县| 景泰县| 航空| 土默特左旗| 万宁市| 灵山县| 南华县|