Java教程

Java基础周测-02

本文主要是介绍Java基础周测-02,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、选择题

1、关于可变形参,以下说法正确的是()

  A.一个方法允许传入无数个类型相同的参数
  B.一个方法允许传入无数个类型不同的参数
  C.一个方法允许定义无数个可变形参
  D.可变形参可以放在形参列表的任何位置

当可变参数个数多余一个时,必将有一个不是最后一项,所以一个方法只支持有一个可变参数

因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项

2、以下说法错误的是()

  A.使用new关键字产生对象会调用构造方法
  B.静态块会在构造方法被调用之前执行且只执行一次
  C.main方法不必产生对象即可被调用
  D.使用new关键字产生对象会调用main方法

3、以下说法错误的是()

  A.只要实例存在,成员变量即存在
  B.成员变量有默认值
  C.局部变量可以不赋值,在使用时会自动赋给默认值
  D.成员变量与局部变量的生命周期是不同的

4、关于重载以下说法错误的是()

  A.普通方法,构造方法都可以重载
  B.重载是同一个类当中多态的体现
  C.重载要求形参的个数,类型,次序至少有一个不一样
  D.重载要求返回值类型必须一至

5、关于this以下说法错误的是()

  A.访问变量时,变量前面可以用this
  B.调用方法时,方法前面可以用this
  C.this可以用在构造方法中
  D.this可以用在静态块中

this代表当前对象,静态方法中不存在当前对象。

6、关于static以下说法错误的是()

  A.静态方法可以直接访问静态变量和静态方法
  B.静态方法中,不能使用this关键字
  C.static的类和方法优于对象之前加载
  D.静态方法能直接访问普通成员变量或成员方法

非静态方法不能被静态方法直接调用,需要创建对象,用对象名调用。

7、关于final,以下描述正确的是()

  A.final修饰一个变量时,变量引用可变
  B.final修饰一个变量时,变量内容可变
  C.final修饰类的成员变量时,成员变量可以不在定义时初始化,而在构造函数中初始化
  D.final修饰一个类的时候,该类的子类不能覆盖父类已实现的方法

8、JAVA中,final修饰的类、成员方法、变量说法错误的是()

  A.final修饰的类不能被继承
  B.final修饰的方法不能被覆盖
  C.final修饰的变量不能被修改
  D.final修饰的变量不需要显示初始化

如果不在定义的时候或者构造函数中对final变量进行赋值的话,则生成的对象中final变量的值是未知的(编译器也会直接报错),因此必须进行初始化。

9、final 和static 一块用描述错误的()

  A.对于变量,一旦给定值,就不可以修改,并且通过类名可以访问
  B.对于方法,表示不可覆盖,并且可以通过类名直接访问
  C.被static final修饰后的方法和变量只能在方法内部使用
  D.static final修饰的变量在对象实例化之前就已经存在

10、关于抽象类叙述正确的是()

  A.抽象类不能实现接口
  B.抽象类必须有“abstract class”修饰
  C.抽象类必须包含抽象方法
  D.抽象类也有类的特性,可以被实例化

11、抽象类不具备的特征是()

  A.用abstract修饰
  B.它的抽象方法不能包含实现体
  C.从它继承而来的子类,需要重载并实现它的各个抽象方法  重写(覆盖)
  D.不能用new直接实例化

12、抽象类和接口的区别,一下说法错误的是 ()

  A.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的
  B.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface,接口可以实现多重继承
  C.在abstract class 中可以有自己的成员变量,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员,所有的成员方法默认都是 public abstract 类型的
  D.接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法

13、关于static中继承、重载、重写以及加载时机说法错误的是()

  A.java中static方法不能被覆盖
  B.java中static class不能被继承
  C.java中static方法不能被重载
  D.java中static修饰的变量优于对象创建之前

14、关于接口(jdk8)说法错误的是()

  A.在接口中可以添加使用 default 关键字修饰的非抽象方法
  B.接口里可以声明静态方法,并且可以实现
  C.final可以修饰接口
  D.接口中不可以存在构造方法

“修饰符 interface 接口类名(){ } 这是固定的,所以不能修饰。final修饰类,类不可被继承,那实现implements接口也就毫无意义了。”

15、下列关于内部类的说法错误的是()

  A.内部类可以使用它所在类的静态成员变量和实例成员变量
  B.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
  C.内部类不可以用 abstract 修饰符定义为抽象类
  D.内部类可作为其他类的成员,而且可访问它所在类的成员

16、下列关于内部类说法正确的是()

  A.内部类可以与包含它的类名相同
  B.内部类只能使用其所在类的静态成员变量,不能使用其所在类的成员局部变量
  C.内部类可以用abstract修饰定义为抽象类,不能用private或protected定义
  D.外部使用内部类时,必须给出类的全名

17、关于匿名内部类的说法错误的是()

  A.匿名内部类中是可以定义构造方法的
  B.匿名内部类中不能存在任何的静态成员变量和静态方法
  C.匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法
  D.使用匿名内部类时,我们必须是继承一个类或者实现一个接口

18、关于匿名内部类说法错误的是()

  A.匿名内部类就是一个没有名字的方法内部类
  B.方法内部类不允许使用访问权限修饰符public、private、protected均不允许
  C.方法内部类对外部完全隐藏,除了创建这个类的方法可以访问它以外,其他地方均不能访问
  D.匿名内部类可以存在构造方法

19、所有Java类都直接或间接继承了哪个类?( )

  A.String
  B.Object
  C.Interesting
  D.Hero

20、在JAVA中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的( )方法不属于Object类的方法。

  A.equals(Object obj)
  B.hashcode()
  C.toString()
  D.trim()

21、下面有关Java异常处理模型的说法错误的是()

  A.一个try块只能有一条catch语句
  B.一个try块中可以不使用catch语句
  C.catch块不能单独使用,必须始终与try块在一起
  D.finally块不能单独使用,必须始终与try块在一起

22、以下关于方法覆盖描述错误的是( )

  A.覆盖的方法和被覆盖的方法必须具有完全相同的方法名、参数列表和返回类型
  B.覆盖的方法的访问范围不能比被覆盖的方法访问范围小
  C.覆盖的方法不能抛出被覆盖方法不能抛出的异常
  D.被覆盖的方法不能被缺省修饰符修饰

23、Java异常处理机制主要为了捕获( )错误,发生错误时,将引发异常,该异常由一个Java代码块捕获

  A.编译期
  B.运行期
  C.测试期
  D.调试期

24、String类能继承吗()

  A.能
  B.不能
  C.看具体情况
  D.有时能,有时不能

25、关于构造方法的说法正确的是?()

  A.一个类只能有一个构造方法
  B.一个类可以有多个不同名的构造方法
  C.构造方法与类同名
  D.构造方法必须自己显示定义

二、多选题

  1、现有以下代码:
interface W {
}
class Z implements W {
}
class X extends Z {
}
class Y extends Z {
}
  下列哪些代码段是正确的?( )。

  A.
  X x=new X();
  Y y=new Y();
  Z z=new Z();
  y=(Y)x;
  B.
  X x=new X();
  Y y=new Y();
  Z z=new Z();
  x=(X)y;
  C.
  X x=new X();
  Y y=new Y();
  Z z=new Z();
  Z=(Z)x;
  D.
  X x=new X();
  Y y=new Y();
  Z z=new Z();
  W w=(W)x;

  2、请选择所有的正确答案(  )。

  A.在接口中定义的方法默认为private方法
  B.在接口中定义的变量默认为public、static、final的
  C.一个接口可以继承多个接口
  D.关键字implements代表接口之间的继承关系

三、判断题

1、与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。(✔ )

2、访问权限是private的变量,只能在本类和与本类同一个包中的其他类使用。( X)

3、Java中所有的变量,不管是成员变量还是局部变量,在使用前都必须进行初始化。

4、Java语言为所有的Java程序自动导入包“java.lang”,因此Java程序可以直接用“java.lang”中的类和接口。(✔ )

5、父类Person中定义了一个private void show()的方法,那么子类要重写这个方法时,方法的访问修饰符可以是默认的,protected或public。(✔ )

6、构造方法中,第一句话总是super。( X)

7、将子类对象赋给父类引用变量,称为向下转型,将无法访问子类特有的方法。( X)

8、抽象类和接口都不能实例化,都没有构造方法。(X )

9、匿名内部类适合创建那种只需要使用一次的类,它可以实现一个或多个接口,或者继承一个父类。( X)

10、抽象方法的类必须是抽象类,同样抽象类也必须包含抽象方法( X)

四、简答题

1、方法的重载(overload)和重写(overide)的区别?

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态
性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为
重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方
法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。
方法重载的规则:
1.方法名一致,参数列表中参数的顺序,类型,个数不同。
2.重载与方法的返回值无关,存在于父类和子类,同类中。
3.可以抛出不同的异常,可以有不同修饰符。
方法重写的规则:
1.参数列表必须完全与被重写方法的一致,返回类型必须完全与被重写方法的返回类型一致。
2.构造方法不能被重写,声明为 final 的方法不能被重写,声明为 static 的方法不能被重写,但是能够被再次
声明。
3.访问权限不能比父类中被重写的方法的访问权限更低。
4.重写的方法能够抛出任何非强制异常(UncheckedException,也叫非运行时异常),无论被重写的方法是
否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以

2、final用于修饰变量、方法和类分别有什么作用?

在Java中,final关键字有最终的,不可修改的含义。final关键字有三种用途,可以分别应用于变量、成员方法和类。如果将某个变量修饰为final,
那么该变量就成为常量,常量在声明时必须初始化,声明之后不能对其进行二次赋值。
如果将某个成员方法修饰为final,则意味着该方法不能被子类覆盖,这就和抽象方法必须由子类实现的规定互相矛盾,final和abstract不能同时修饰一个方法。
如果将某个类修饰为final,则说明该类无法被继承
这篇关于Java基础周测-02的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!