the journey is the reward...

          常用鏈接

          統計

          最新評論

          你能通過下面的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 閱讀(961) 評論(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  回復  更多評論   

          主站蜘蛛池模板: 仁怀市| 天峨县| 桓台县| 黄梅县| 个旧市| 家居| 禹州市| 建水县| 桃园县| 乌兰浩特市| 和田市| 米泉市| 高平市| 潜山县| 原平市| 阿克苏市| 博爱县| 宁城县| 黔东| 梧州市| 凤台县| 灵武市| 元谋县| 遂昌县| 名山县| 正蓝旗| 奎屯市| 灌南县| 陆良县| 天长市| 崇阳县| 志丹县| 靖江市| 孟津县| 新津县| 内江市| 江门市| 名山县| 青铜峡市| 松原市| 天台县|