JAva基礎知識テスト、何点取れるか見てみましょうか?

4606 ワード

1はじめに


Javaの基礎知識が5つある単項選択問題は、1つ20点、合計100点です.解析と答えは最後にあります.コメントエリアで自分のテスト点数を書くことができます.

2試験問題


2.1次のプログラムの実行結果は何ですか。

class Parent {
    public Parent(String s) {
        System.out.print("B");
    }
}
public class Son extends Parent {
    public Son(String s) {
        System.out.print("D");
    }
    public static void main(String[] args) {
        new Son("");
        System.out.print("C");
    }
}
  • **A.**   BD
    
  • **B.**   DB
    
  • **C.**   BDC
    
  • **D.**  DBC
    
  • E.コンパイル失敗
  • 2.2次のプログラムの実行結果は何ですか。

    public class Mixer {
        Mixer() {}
        Mixer(Mixer m) {
            m1 = m;
        }
        Mixer m1;
        public static void main(String[] args) {
            Mixer m2 = new Mixer();
            Mixer m3 = new Mixer(m2);
            m3.go();
            Mixer m4 = m3.m1;
            m4.go();
            Mixer m5 = m2.m1;
            m5.go();
        }
        void go() {
            System.out.print("hi ");
        }
    }
    
  • **A.**   hi
    
  • **B.**   hi hi
    
  • **C.**   hi hi hi
    
  • **D.**   
    
  • **E.**  hi   
    
  • **F.**  hi hi   
    

  • 2.3次のどの選択肢の言い方が正しいですか?

    public class Operate{
        public static void main(String[] args) {
            String s = "";
            Boolean b1 = true;
            boolean b2 = false;
            if((b2=false) | (21%5)>2)
                s += "x";
            if(b1 || (b2=true)) {
                s += "y";
            if(b2 == true)
                s += "z";
            System.out.println(s);
            }
        }
    }
    
  •  **A.**    
    
  •  **B.**     x
    
  •  **C.**     y
    
  •  **D.**     z
    
  •  **E.**   
    

  • 2.4次のどの選択肢の言い方が正しいですか?

    public static void sort1() {
        Set set = new TreeSet();
        set.add("2");
        set.add(3);
        set.add("1");
        Iterator it = set.iterator();
        while (it.hasNext())
            System.out.print(it.next() + "");
    }
    
  •  **A.**   sort1  1 2
    
  •  **B.**  sort1  1 2 3
    
  •  **C.**   sort1 3 , 
    
  •  **D.**   
    
  •  **E.**   
    

  • 2.5次のプログラムの実行結果は何ですか?

    class A {
        void m() {
            System.out.println("outer");
        }
    }
    public class Inners {
        public static void main(String[] args) {
            new Inners().go();
        }
        void go() {
          new A().m();
          class A {
            void go() {
              System.out.println("inner");
            }
          }
        }
        class A {
          void m() {
            System.out.println("middle");
          }
        }
    }
    
  •  **A.**   inner
    
  •  ** B.**  outer
    
  •  **C. **  middle
    
  •  **D.**   
    
  •  **E.**   
    

  • 3解析


    3.1 2.1問題Eが正しい


    パラメータに変数コンストラクタがないため、Sonコンストラクタに隠されているsuper()呼び出しを満たすことはできません.コンパイラは、クラスに明示的に定義されたコンストラクション関数がない場合にのみ、デフォルトのトランスフォームなしコンストラクション関数を生成します.

    3.2 2.2問題Fが正しい


    m 2オブジェクトのm 1インスタンス変数は初期化されないため、m 5が使用しようとするとNull PointerException異常が放出されます.

    3.3 2.3問題Cが正しい


    まず、梱包はブール演算の処理を担当します.最初のif行には、除算演算の余剰を返す余剰演算子が使用されます.ここでは1です.また、この行はb 2をfalseに設定し、b 2の値をテストしません.2番目のif行はb 2をtrueに設定し、この値はテストされません.ただし、短絡演算子は、試験式b 2=trueをブロックする.

    3.4 2.4問題Eが正しい


    StringとIntegerを同じTreeSetに同時に入れることはできません.汎用型を採用しないと、コンパイラはどのタイプがこのTreeSetに適しているか分からないので、コンパイルを許可します.実行時、TreeSetは要素の追加時に深さをソートし、IntegerとStringを比較しようとするとClassCastException例外が放出されます.

    3.5 2.5問題Cが正しい


    クラスAの「内部」バージョンは使用されません.なぜなら、その宣言はgo()メソッド内でAのインスタンスを作成した後にあるからです.

    4答え[E,F,C,E,C]


    5結語


    本文はただ简単な収集と5つのjavaSEの基础题目を整理して、みんなはテストすることができて、自分のjavaの基础知识の情况に対して1つの简単な理解があります.実用的な技術を学ぶ時、自分のjavaの基礎的な素養の向上にも注意してほしい.上記のいくつかの質問に対する回答状況だけで本当のjavaレベルを評価することはできませんが、生活は完璧ではありません.がんばってね、みんな!勉強の途中で一緒に行きましょう.コメントエリアで自分のテスト点数を書くことができます.