栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每日一题--错题集(x)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日一题--错题集(x)

Day1_11.29
  1. 要使对象具有序列化能力,则其类应该实现如下哪个接口(A)。
    A java.io.Serializable
    B java.lang.Cloneable
    C java.lang.CharSequence
    D java.lang.Comparable
    错选:D
    A:Serializable接口是专门提供给类实现序列化用的。
    B:Cloneable是用来实现克隆方法的。
    C:实现了CharSequence接口的有:CharBuffer、String、StringBuffer、StringBuilder。            CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,          而String的值是只读序列。
    D:Comparable接口用于对实现它的每个类的对象进行整体排序。
     
  2. 假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?(C)
    public class A {
            public int i;
            static String s;
            void method1(){}
            static void method2(){}
    }
    错选:B
    A System.out.println(a.i);
    B a.method1();
    C A.method1();
    D A.method2();
    静态变量、静态方法通过类名.调用,非静态通过实例的引用去调用。
     
Day2_11.30
  1. A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:
    1. A a0=new A();
    2. A a1=new B();
    3. A a2=new C(); 问以下哪个说法是正确的?(D)
    A 只有第一行能通过编译
    B 第1、2行能通过编译,但第3行编译出错
    C 第1、2、3行能通过编译,但第2、3行运行时出错
    D 第1行,第2行和第3行的声明都是正确的
    错选:B
    此题考查的是父类的引用指向子类的对象,即向上转型。体现java三大特性(封装、继承、多态)中的多态。多态的定义
    1、当同一类型的引用指向不同的对象时,有不同的实现。
    2、同一个对象被转型为不同的类型时,有不同的功能。

     
  2. 下列哪一种叙述是正确的(D)
    A abstract修饰符可修饰字段、方法和类
    B 抽象方法的body部分必须用一对大括号{ }包住
    C 声明抽象方法,大括号可有可无
    D 声明抽象方法不可写出大括号
    错选:A
    A:abstract可以修饰类和方法,不能修饰字段(属性)。
    B、C、D:抽象方法没有方法体,即没有大括号{}。

     
  3. 下列说法正确的有:(C)
    A class中的constructor不可省略
    B constructor必须与class同名,但方法不能与class同名
    C constructor在一个对象被new 时执行
    D 一个class只能定义一个constructor
    错选:B
    A:构造方法可以省略。
    B:构造方法与类名相同。
    D:构造方法支持重载。

     
  4. 在使用 interface 声明一个外部接口时,只可以使用( D)修饰符修饰该接口。
    A private
    B protected
    C private protected
    D public
    错选:B
    接口的是要被实现的,因此需要显式声明public或者默认。虽然protected权限比默认(default)高,但是java限制了类或接口的声明,就仅限于public和默认。



     
Day3_12.01
  1. 以下程序输出结果为:(D)
     
    class base{
        public base(String s){
            System.out.print("B");
        }
    }   
    public class Derived extends base{
        public Derived (String s) {
            System.out.print("D");
        }
        public static void main(String[] args){
            new Derived("C");
        }
    }

    A BD
    B DB
    C C
    D 编译错误
    错选:A
    调用子类构造方法必须要先调用父类构造方法。在子类构造里,有默认的super(),且只能在第一行。这会调用父类无参构造,若父类无构造的前提,父类会自动创建出无参构造,但是如果父类有有参构造,则不会自动创建,那super(),就会无用且出错。

     

  2. 下面关于构造方法的说法不正确的是 (B)
    A 构造方法也属于类的方法,可以创建对象的时候给成员变量赋值
    B 构造方法不可以重载
    C 构造方法没有返回值
    D 构造方法一定要和类名相同
    错选:A
    B:构造方法可以重载。

     

  3. 下列描述中,错误的是(C)
    A SQL语言又称为结构化查询语言
    B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
    C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
    D java是强类型语言,javascript是弱类型语言 E 面向对象的三大特性包括:封装,继承,多态
    错选:B
    B:被static修饰的是全局可见的。
    C:引用传递,除了一些特殊的(String,包装类属于不可变类),一般的引用类型在进行传递的时候,一开始形参和实参都是指向同一个地址的,这个时候形参对对象的改变会影响到实参。

     

  4. 下列哪种说法是正确的?(C)
    A 实例方法可直接调用超类的实例方法
    B 实例方法可直接调用超类的类方法
    C 实例方法可直接调用本类的类方法
    D 实例方法可直接调用其他类的实例方法
    错选:D
    A、D:静态方法不可以调用成员方法。(静态方法不能调用实例方法)。
    B:子类不可以调用父类的私有方法和静态方法。
    C:实例方法可以调用本类的实例方法和类方法(即普通方法可以调用静态方法),类方法只能访问类成员变量和调用类方法()。

     

  5. 程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于 10 ,使用 throw 语句显式地引发异常,异常输出信息为 ”something’swrong!” , 语句为(A)
    A if(i>10)throw new Exception("something’swrong!");
    B if(i>10)throw Exception e("something’swrong!");
    C if(i>10) throw new Exception e("something’swrong!");
    D if(i>10)throw Exception( "something’swrong!");
    错选:C
    throw是语句抛出异常,有两种用法:
    抛出异常e实例或新的Exception实例
    1.catch中的throw e;
    2.方法体中的throw new Exception();
    区别如下: throw e是将已经catch到的e重新抛出,而throw new Exception()是重新生成一个Exception类的对象并抛出。有两点重要区别,第一e中记录了原异常的信息,如除零异常的信息,而new Exception()是一个新对象,当中不包含任何有用的信息;第二e可能存在向上转型,即e的实际类型可能是Exception的子类,而new Exception()就是Exception类的对象。


     

  6. 在创建派生类对象,构造函数的执行顺序(A)
    A 基类构造函数,派生类对象成员构造函数,派生类本身的构造函数
    B 派生类本身的构造函数,基类构造函数,对象成员构造函数
    C 基类构造函数,派生类本身的构造函数,派生类对象成员构造函数
    D 对象成员构造函数,基类构造函数,派生类本身的构造函数
    错选:C
    对象创建时代码的加载顺序为:静态代码 --> 非静态代码 --> 构造方法。
    若继承了父类,则加载顺序为:父类的静态的代码 --> 子类的静态的代码 --> 父类内部非静态代码 --> 父类的构造方法 --> 子类的非静态代码 --> 子类的构造方法。
    其中,静态代码包括(静态方法,静态变量,静态代码块等),非静态代码即(成员方法,成员变量,成员代码块等),同一种代码,写在上面的先加载。


     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657029.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号