java代碼查錯面試題

    時間:2020-11-10 15:44:17 面試問題 我要投稿

    java代碼查錯面試題

    1.

    java代碼查錯面試題

    abstract class Name

    {

        private String name;

        public abstract boolean isStupidName(String name) {}

    }

     

    答案: 錯。abstract method必須以分號結尾,且不帶花括號。

     

    2.

    public class Something

    {

        void doSomething ()

       {

            private String s = "";

            int l = s.length();

        }

    }

     

    答案: 錯。局部變量前不能放置任何訪問修飾符 (private,public,和protected)。final可以用來修飾局部變量(final如同abstractstrictfp,都是非訪問修飾符,strictfp只能修飾classmethod而非variable)

     

     

    3.

    abstract class Something

    {

        private abstract String doSomething ();

    }

     

    答案: 錯。abstractmethods不能以private修飾。abstractmethods就是讓子類implement(實現)具體細節的,怎么可以用privateabstractmethod封鎖起來呢? (同理,abstract method前不能加final)。

    4.

    public class Something

    {

        public int addOne(final int x)

        {

            return ++x;

        }

    }

     

    答案: 錯。int x被修飾成final,意味著x不能在addOne method中被修改。

     

     

    5.

    public class Something

    {

        public static void main(String[] args)

        {

            Other o = new Other();

            new Something().addOne(o);

        }

        public void addOne(final Other o)

        {

            o.i++;

        }

    }

    class Other

    {

        public int i;

    }

    答案: 正確。在addOne method中,參數o被修飾成final。如果在addOne method里我們修改了oreference(比如: o = new Other();),那么如同上例這題也是錯的。但這里修改的是omember vairable(成員變量),而oreference并沒有改變。

     

     

    6.

    class Something

    {

         int i;

         public void doSomething()

         {

             System.out.println("i = " + i);

         }

    }

     

    答案: 正確。輸出的是"i = 0"。int i屬於instant variable (實例變量,或叫成員變量)instant variabledefault valueint的'default value0

     

     

    7.

    class Something

    {

         final int i;

         public void doSomething()

         {

             System.out.println("i = " + i);

         }

    }

     

    答案: 錯。final int i 是個finalinstant variable (實例變量,或叫成員變量)。finalinstant variable沒有default value,必須在constructor (構造器)結束之前被賦予一個明確的值。可以修改為"final int i = 0;"。

     

    8.

    public class Something

    {

          public static void main(String[] args)

         {

             Something s = new Something();

             System.out.println("s.doSomething() returns " + doSomething());

         }

         public String doSomething()

        {

             return "Do something ...";

         }

    }

     

    答案: 錯?瓷先ピmaincall doSomething沒有什么問題,畢竟兩個methods都在同一個class里。但仔細看,mainstatic的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能訪問non-static instant variable

    【java代碼查錯面試題】相關文章:

    JAVA常用代碼積累08-19

    如何讓JAVA代碼更高效10-06

    在Java中執行JavaScript代碼11-18

    Java中的動態代碼編程08-15

    Java代碼的基本知識08-14

    java證書的加密與解密代碼08-12

    Java定時器代碼的編寫10-05

    java基礎面試題201711-13

    華為Java面試題精選10-24

    高級Java面試題匯總09-12

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      午夜欧美成是人在线观看 | 在线观看日本亚洲一区 | 午夜精品第一区偷拍盗摄 | 中文字幕乱老女人视频 | 亚洲欧美俄罗斯在线观看 | 最新国产初高中生精彩视频在线 |