the journey is the reward...

          常用鏈接

          統(tǒng)計

          最新評論

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

          1.java static inner class 和 non-static inner class的區(qū)別?  

          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 閱讀(961) 評論(4)  編輯  收藏 所屬分類: java bbs

          評論

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

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

          直接上代碼:

          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

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

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

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

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

          用ThreadLocal  回復  更多評論   

          主站蜘蛛池模板: 新郑市| 稷山县| 靖州| 石嘴山市| 花莲市| 肇东市| 通渭县| 新乡市| 夏河县| 斗六市| 含山县| 梓潼县| 达州市| 江门市| 五华县| 屏山县| 平果县| 嘉兴市| 松阳县| 长泰县| 汾阳市| 金昌市| 阳新县| 成安县| 鄂尔多斯市| 静乐县| 玉溪市| 沂源县| 米脂县| 巴林左旗| 南皮县| 成武县| 白朗县| 印江| 建德市| 荣成市| 子洲县| 定日县| 威宁| 鄯善县| 合水县|