Java面试通关宝典—Java基础03错题集二

5 篇文章 0 订阅
4 篇文章 1 订阅

1.以下关于Java语言继承的说法正确的是( )

A.Java中的类可以有多个直接父类

B.抽象类不能有子类

C.Java中的接口支持多继承

D.最终类可以作为其它类的父类

【正确答案】C

【答案解析】A单继承,B抽象类可以有子类,Dfinal修饰的类不能被继承,典型代表String类。

2 下列语句序列执行后,k 的值是( )。 int x=6; int y=10; int k=5; switch(x%y) { case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; }

A.60

B.5

C.0

D.54

【正确答案】D

【答案解析】先执行case6 但是没有break,所以最终会执行default k=54

3 关于instanceof的描述错误的是( )

A.instanceof是Java中的二元运算符

B.左边是对象,右边是类

C.当对象是右边类或子类所创建对象时,返回true;否则,返回false

D.instanceof左边显式声明的类型与右边对象不能是同种类或存在继承关系

【正确答案】D

【答案解析】instanceof左边显式声明的类型与右边对象是同种类或存在继承关系

4 数组的创建方式以下哪种方式错误( )

A.int[] a = new int[5];

B.int[] a = {1,5,3,2};

C.int[] a = new int[5]{3,2,7,1,5};

D.a = new int[]{3,2,7};

【正确答案】C

【答案解析】数组三中创建方式:int[] a = new int[5];int[] a={1,2,3};a=int[]{1,2,3}

5 关于数组的长度属性描述错误的是( )

A.a.length()可以得出数组长度

B.长度不可变

C.最大下标 a.length-1

D.数组具有长度

【正确答案】A

【答案解析】数组长度:a.length

6 定义变量b:boolean b=true;则String.valueOf(b)的类型是( )

A.boolean

B.String

C.FALSE

D.int

【正确答案】B

【答案解析】返回值是true,是字符串。

7 Integer类缓存数组范围是( )?

A.[0,255]

B.[-127,128]

C.[-128,127]

D.以上都不对

【正确答案】C

【答案解析】[-128,127]

8 以下关于this和super,说法正确的是( )

A.都可以用在main()方法中

B.都是指一个内存地址

C.不能用在main()方法中

D.意义相同

【正确答案】C

【答案解析】A main方法是静态的,this是对本类对象的引用,静态先于对象。B,this是对当前对象的引用,super是对对象父类的引用,D意义不同

9 关于 java.util.Arrays 工具类的描述错误的是

A.该工具类是数组工具类

B.Arrays.copyOf(a, b) 是用来把数组,复制成指定长度的新数组

C.Arrays.copyOf()不会新建数组

D.Arrays.sort(a)用来把数组排序

【正确答案】C

【答案解析】Arrays.copyOf()是对数组的复制,会新建数组。

10.下列说法不正确的是( )

A.final饰的方法,不能重载

B.普通可以通过类名.方法名进行调用

C.构造方法可以被重载,不能被重写

D.static修饰的类可以被继承

【正确答案】A,B

【答案解析】final修饰的方法不能重写,普通方法要新建对象才能调用。

11.Object的描述错误的是( )

A.Object是顶层父类 

B.一个类,如果不继承其他类,默认继承 Object 

C.调用Object下toString方法是返回对象的字符串表示形式 

D.Object下的equals方法是用来比较对象是否数值相等 

【正确答案】D

【答案解析]equals方法是用来比较当前对象与参数对象是否相等,即两个对象内容是否相等。

12.下面关于继承的哪些叙述是正确的?

A.在java中允许多继承。 

B.在java中一个类只能实现一个接口。 

C.在java中一个类不能同时继承一个类和实现一个接口。 

D.java的单一继承使代码更可靠。

【正确答案】D

【答案解析】Ajava只允许单继承(即一个子类只有一个父类),B一个类可以实现多个接口,C一个类能同时继承类和实现接口。(多继承:一个类有多个父类)

13.(单选题)以下关于面向对象概念的描述中,不正确的一项是(C) 。 

A.在构造方法中,this()只能出现在构造方法第一行位置. 

B.在构造方法中,super()只能出现在构造方法第一行位置. 

C.this()和super()可以同时出现在同一个构造方法中,this()指代调用本类中其他构造方法,super()指代调用父类构造方法. 

D.this()和super()不能同时出现在同一个构造方法中,否则编译器会报错.

解析:this()和super()都只能出现在构造方法第一行位置,所以不能出现在同一构造方法中,否则编译器会报错。

14.(多选题)查看下面的代码,哪几行会有错误 (CD ) 

1.public class MyClass {  

2.      static String s1;  

3.      String s2;  

4.      public static void main(String args[]) {  

5.           String s3;  

6.           System.out.println("s1 =" + s1);  

7.           System.out.println("s2 =" + s2);  

8.         System.out.println("s3 =" + s3);  

9.      }  

10.} 

A.5     B.6    C.7    D.8 

解析:main方法是静态方法,静态方法不能访问非静态变量,7错,局部变量要先赋初值才能用,8错。

15. (单选题)程序执行的结果是(B ) 

  public class Test {  

    String name="Tom";  

    public Test(String name){  

        name=name; 

    }  

    public static void main(String [] args){  

        Test t = new Test("Jack");  

        System.out.println(t.name);  

    }  

  }  

 A.  null    B.  Tom   C.  Jack    D.  " "  

解析:新建Test对象将“jack”传入构造方法,但是name=name是局部变量给局部变量赋值,所以不会改变成员变量name的值。

16.子类继承父类先调用父类构造方法,再调用子类构造方法,子类构造方法默认有super()。

17.重载和重写

重载:方法名相同,参数数量或参数类型不同。

重写:两同两小一大

    两同:方法名相同,参数列表相同

    两小:(1)子类方法的返回值类型小于或等于父类方法,

          1)void类型时必须相同

          2)基本类型时必须相同

          3)引用类型时,子类方法的返回值类型小于或等于父类方法

        (2)子类方法抛出的异常小于或等于父类方法。

    一大:子类方法的访问修饰符权限大于或等于父类方法。

18.构造方法的作用

构造方法的作用是在新建对象时对类中的成员变量进行初始化。

19 (单选题)下列关于修饰符混用的说法,错误的是(D )                  : 

A.static修饰的属性称为静态属性,可以使用类名直接调用. 

B.static修饰的方法称为静态方法,可以直接使用类名调用. 

C.static静态块比构造方法要先执行 

D.static 方法中能处理非 static 的属性 

解析:静态方法和静态变量存在方法区,只有一份,在类加载时被优先加载到方法区,与对象无关,静态方法不能使用非静态变量。静态变量每次用的都是同一份。

20.软件执行顺序:静态变量,静态块(可以有多个),main方法

21 (单选题)下列关于Jave语言内存回收的说明正确的是:(B ) 

A. 程序员必须创建一个线程来释放内存       

B. 内存回收程序负责释放无用内存 

C. 内存回收程序允许程序员直接释放内存     

D. 内存回收程序可以在指定的时间释放内存对象 

解析:垃圾回收机制是JVM的一个线程,用于回收没有引用的对象,java程序员不用担心内存管理,垃圾回收器会自动进行回收管理。

22.子类继承父类,在新建子类对象时会有一个隐式的super()先调用父类的构造方法,若父类没有无参的构造方法则编译出错。

23.方法的返回值类型为void类型,可以有return,但是return后面不能有值,用来跳出方法体。

24. 重载是方法签名相同,运行期绑定,根据对象的类型调用相应的方法(错 )

重载是编译期绑定。

25.一个Unicode字符占4个字节。  (错)Unicode:2个字节

26.JVM将内存分为了几个区域,每个区域都存储的是什么? 

JVM将内存分为方法区,堆,栈,分别存储不同的数据

方法区:用于存储类的各种信息(包括方法)

栈:用于存储new关键字所创建的对象,以及对象中的成员变量

堆:用于存储方法中的局部变量

27、(多选题)java7以后switch case支持的数据类型有哪些:ABCDE 

  A. byte 

  B. short 

  C. int 

  D. char 

  E. String 

28.(多选题)从下列选项中选择正确的Java表达式    BCD

  A.  int k = 10000L; 

  B.  byte b = 23; 

  C.  char c = 74; 

  D.  long j = 8888; 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值