zoukankan      html  css  js  c++  java
  • 【考试】java基础知识测试,看你能得多少分?

    1 前言

    共有5道java基础知识的单项选择题,每道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()调用,因为Parent中没有无变元构造函数。仅当类没有显式定义的构造函数时,编译器才会产生默认的无变元构造函数。

    3.2 2.2题 F 正确

    m2对象的m1实例变量从来不会被初始化,因此当m5试图使用它时,将抛出NullPointerException异常。

    3.3 2.3题 C 正确

    首先装箱负责处理布尔运算。第一个if所在行使用了求余运算符,它返回除法运算的余数,这里为1。而且,这一行还将b2设置成false,它不会测试b2的值。第二个if所在行将b2设置成true,它不会测试这个值。但是,短路运算符会阻止测试表达式b2=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基础知识情况有一个简单的了解。希望大家在学习实用技术的时候,也多注意自己java基础素养的提高。
    不能仅凭对上述几道问题的回答情况来评价一个人真正的java水平,但是生活并不完美。
    加油吧,同学们!学习的路上我们一起。

  • 相关阅读:
    Java项目远程调试
    Linux虚拟机安装
    研究Quarkus出现的各种错误集锦
    debian 安装 ifconfig ping
    adb shell pm list packages 高级用法
    2020年深港澳金融科技师专才计划一级考试报名简章
    k8s组件
    查询Kubernetes中etcd数据
    curl
    kubelet
  • 原文地址:https://www.cnblogs.com/ifat3/p/6955314.html
Copyright © 2011-2022 走看看