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

1、(单选题)下面关于java.lang.Exception类的说法正确的是()

A.继承自Throwable

B.继承自Serialable

C.继承自Error

D.以上说法均不正确

【正确答案】A

【答案解析]java异常的基类为java.lang.Throwable,java.lang.Exception和java.lang.Error都继承至Throwable,RuntimeException和其他Exception继承至Exception。

2、(单选题)计算机中的流是()

A.流动的字节

B.流动的对象

C.流动的文件

D.流动的数据缓冲区

【正确答案】D

【答案解析】流,最早从C语言引入,看成是一个流动的数据缓冲区,数据从数据原方向经过数据缓冲区流向目标方向,在流动过程中,数据是串行传送的,java.io包定义了常见的流的接口和类,最基本的流的抽象类是InputStream和OutputStream。

3、(单选题)判断两个字符串的内容是否相同,下面哪个选项正确( )

A.==

B.=

C.equals()

D.以上的都不对

【正确答案】C

【答案解析】equls用来比较两个字符串是否相同,==用来比较两个字符串对象的地址是否相同,=用来赋值

4、(单选题)下面程序的运行结果:()

public static void main(String args[]) {

Thread t = new Thread() {

public void run() {

pong();

}

};

t.run();

System.out.print("ping");

}

static void pong() {

System.out.print("pong");

}

A.pingpong

B.pongping

C.pingpong和pongping都有可能

D.都不输出

【正确答案】B

【答案解析】直接调run方法无法启动线程,和调普通的方法一样

5、(单选题)FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型( )

A.OutputStream

B.File

C.InputStream

D.BufferedOutputStream

【正确答案】A

【答案解析】参考API手册

6、(单选题)getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果() public void getCustomerInfo() { try { // do something that may cause an Exception } catch (java.io.FileNotFoundException ex) { System.out.print("FileNotFoundException!"); } catch (java.io.IOException ex) { System.out.print("IOException!"); } catch (java.lang.Exception ex) { System.out.print("Exception!"); } }

A.IOException!

B.IOException!Exception!

C.FileNotFoundException!IOException!

D.FileNotFoundException!IOException!Exception!

【正确答案】A

【答案解析】当用多个catch语句时,catch匹配有先后次序之分,从最前面的catch语句块开始匹配,如果前面是父类型,就会匹配上,这样子类型永远匹配不上,所以一般将异常类父类Exception放在catch语句块的最后。

7、(单选题)下面代码的执行结果是( )

import java.util.*;

public class ShortSet{ public static void main(String args[]){ Set s=new HashSet(); for(Short i=0;i<100;i++) { s.add(i); s.remove(i-1); } System.out.println(s.size()); } }

A.1

B.100

C.Throws Exception.

D.None of the Above.

【正确答案】B

【答案解析】i类型为short,i-1是int类型,包装类是Integer,s.remove(i-1)不能移除set集合中的short类型对象。

8、(单选题)下列程序的功能是在控制台上,每隔1秒钟显示字符串"Hello",能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是( )

public class Test implements Runnable{ public static void main(String[] args){ Test t=new Test(); Thread tt=new Thread(t); tt.start(); } public void run(){ for(;;){ try{ __________ }catch(_________ e ){} System.out.println(“Hello”); } } }

A.Thread. sleep (1000) InterruptedException

B.sleep (1000) InterruptedException

C.t. sleep (1000) InterruptedException

D.Thread. sleep (1000) RuntimeException

【正确答案】A

【答案解析]睡眠需要用到Thread.sleep()方法,传一个long类型的毫秒值,打断睡眠会抛出InterruptedException的异常。

9、(单选题)Java I/O 程序设计中,下列描述正确的是( )

A.OutputStream用于写操作

B.InputStream用于写操作

C.I/O库不支持对文件可读可写API

D.InputStream是一个接口

【正确答案】A

【答案解析】I/O支持对文件的读写,InputStream是一个抽象类。

10、(单选题)下列哪种异常是检查型异常,需要在编写程序时声明( )

A.NullPointerException

B.ClassCastException

C.FileNotFoundException

D.IndexOutOfBoundsException

【正确答案】C

【答案解析】A B D属于运行时异常

11、(多选题)final、finally、finalize三个关键字的区别是()

A.final是修饰符(关键字)可以修饰类、方法、变量

B.finally在异常处理的时候使用,提供finally块来执行任何清除操作

C.finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作

D.finally和finalize一样都是用异常处理的方法

【正确答案】A,B,C

【答案解析】finally是关键字不是方法

12、(多选题)以下关于hashCode说法正确的是( )

A.两个对象如果hashCode值不同,则两个对象可能相同。

B.两个对象如果hashCode值相同,则两个对象必定相同。

C.两个对象如果hashCode值相同,则两个对象可能相同。

D.两个对象如果hashCode值不同,则两个对象必定不同。

【正确答案】C,D

【答案解析】先通过hashcode来判断对象放在哪个桶里,但这个桶里可能有很多对象,再通过equals方法来这个桶里找到我们需要的对象。

13、(多选题)有关线程的哪些叙述是对的( )

A.一旦一个线程被创建,它就立即开始运行。

B.使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。

D.一个线程可能因为不同的原因停止并进入就绪状态。

【正确答案】B,D

【答案解析】线程被创建后不一定立即执行。同级线程间是轮转式的,它的运行可能因为轮回,而它因抢占而停止时只能排在轮换队列中,而不能排在前面。不同优先级线程间是抢先式的,即使因为抢先而停止,也不一定排在可运行队列的前面。

14、(多选题)以下说法符合xml语法规则的是( )

A.标记头和标记末的大小写一致

B.元素之间要正确的嵌套

C.结束标记可有可无

D.每个XML文档只能有一个根元素

【正确答案】A,B,D

【答案解析】必须有XML声明语句,是否有DTD文件,注意大小写,所有标识必须有结束标识,空标识必须被关闭。

15、(多选题)以下声明正确的是( )

A.

B.

C.

D.<%xml-stylesheet type="txt/css" href="abc.css"%>

【正确答案】B,C

【答案解析】单引号和双引号都可以用在属性上

16、(多选题)关于异常(Exception),下列描述正确的是( )

A.异常的基类为 Exception,所有异常都必须直接或者间接继承它

B.异常可以用 try{ . . .}catch(Exception e){ . . .}来捕获并进行处理

C.如果某异常继承 RuntimeException,则该异常可以不被声明

D.异常可以随便处理,而不是抛给外层的程序进行处理

【正确答案】A,B,C

【答案解析】异常可以在自己的方法内部处理,当自己无法处理时,需要抛出去给调用者处理

17、(多选题)在XML中,下列关于DOM的叙述是正确的( )

A.DOM是独立于开发语言和平台的,因此使用Visnal Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的

B.XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树

C.通过DOM API,软件开发人员可以控制XML文档的结构和内容

D.通过DOM在XML文档中只能按照顺序方式导航

【正确答案】A,B,C

【答案解析】SAX解析文档需要按照顺序,DOM可以随意

18、(多选题)下列选项中,哪一个是预定义实体?( )

A.<

B.&left;

C.>

D.&right;

【正确答案】A,C

【答案解析】表示>号

19、(多选题)String s = new String("hello"); String t = new String("hello"); char c [ ] = {'h', 'e', 'l', 'l', 'o'}; 下列哪些表达式返回 true ( )

A.s.equals(t);

B.t.equals(c);

C.s==t;

D.t.equals (new String("hello"));

【正确答案】A,D

【答案解析】String类的equals方法已经覆盖了object类的equals方法,比较的是两个字符串的内容是否相等,==比较的是两个字符串对象的内存地址是否相等。

20、以下选项中错误的是()

A.整数字面值是int类型

B.byte,short,char三种比int大的整数可以用范围内的值直接赋值

C.float r =3.14f;执行成立

D.浮点数的字面值是double类型

【正确答案】B

【答案解析】byte,short,char可以用范围内的值直接赋值,范围外的值不能赋值。byte a=127对,byte a=128错。

21 this.xxx的讲述错误的是( )

A.this 特殊引用,引用当前对象的地址

B.this.xxx 调用成员

C.当有重名局部变量,必须用this.xx调用成员变量

D.this.xxx就是xxx是当前变量值

【正确答案】D

【答案解析】this.xxx调用当前对象的成员变量。

22.下面选项中,不属于基本类型包装类的是( )?

A.Integer

B.Long

C.Double

D.Char

【正确答案】D

【答案解析】char对应的包装类型为Character

23.关于JDK的概述错误的是

A.JDK是 Java 语言的软件开发工具包

B.JDK是整个java开发的核心

C.JDK包含了:JAVA开发工具(jdk\bin),基础开发库(jdk\jre\lib\rt.jar),基础开发库的源码(jdk\src.zip)

D.JDK安装包里不包含JVM

【正确答案】D

【答案解析】JDK包含了JAVA开发工具(jdk/bin),基础开发库(jdk/jre/lib/rt.jar),基础开发库的源码(jdk/src.lib)。包含JVM。

24.下面关于抽象类正确的是( )

A.抽象类有构造方法

B.抽象类跟接口没有区别

C.抽象类中必须有抽象方法

D.以上说法都不对

【正确答案】A

【答案解析】抽象类中有构造方法,但是不一定有抽象方法

25.在Java中下面代码是()条语句 int i;i=123; int j=0,k=0; System.out.println(i+";"+";"+j+""+k);

A.3

B.4

C.5

D.6

【正确答案】B

【答案解析】java的每一句代码以分号为结尾。

26.关于抽象类和抽象方法的描述错误的是( )

A.抽象类是半成品类、没有完成的类

B.抽象方法是只有方法的定义,没有方法代码

C.抽象类能创建对象

D.public abstract void f();定义了一个抽象方法

【正确答案】C

【答案解析】抽象类不能创建对象。

27.以下关于二进制的描述错误的是( )

A.计算机表示任何数据,都是二进制数字

B.二进制的前缀是0b

C.布尔类型中,真用二进制表示为00000000

D.Integer.toBinaryString()是十进制转二进制的方法

【正确答案】C

【答案解析】布尔类型真用0b00000001,假用0b00000000表示。

28.关于java.lang.String类,以下描述正确的一项是( )

A.String类是final类故不可以继承

B.String类是final类故可以继承

C.String类不是final类故不可以继承

D.String类不是final类故可以继承

【正确答案】A

【答案解析】String类是final的,在java中final修饰的类不能被继承。

29.编译并运行下述程序段的结果是:

public class Test{ 

public static void main(String argv[]){ 

int[] count = new int[4]; 

System.out.println(count[4]); 

} 

}

A.编译时错误

B.运行时错误

C.输出0

D.输出null

【正确答案】B

【答案解析】count[4]下标越界异常,在运行时会报错。

30.在正则表达式中$代表什么()

A.结束位置

B.非数字字符

C.任意一个字母

D.任意的空白符

【正确答案】A

【答案解析】$在正则表达式中代表结束位置

31.下列初始化字符数组的语句中,正确的是( )

A.char str[5]="hello";

B.char str[]={'h','e','l','l','o','\0'};

C.char str[5]={"hi"};

D.char str[100]="";

【正确答案】B

【答案解析】ACD格式错误,A正确格式为char str[5]={'h','e','l','l','o'};

32.下面说法错误的是()

A.final 不能修饰方法。

B.abstract 可 修 饰 类 、 方 法 。

C.抽 象 方 法 只 有 方 法 头 , 没 有 方 法 体 。

D.关键字final 和 abstract 不 能 同 时 使 用 。

【正确答案】A

【答题时间】2020-02-27 11:47:08

【答案解析]final修饰的常量不可变,修饰的方法不可被重写,修饰的类不可被继承

33.以下选项不能得出精确结果的是( )

A.int a=3d; int b=2; System.out.println(a/b);

B.byte a=2; byte b=3; int c=a+b;

C.System.out.println(300000000l*60*60*24*365);

D.System.out.println(1-0.9);

【正确答案】D

【答案解析】D整数减去一个浮点型,由于浮点型运算不精确,所以该选项得不到精确结果,要利用Math工具类完成精确计算。

34.关于方法的递归算法,说法正确的是( )

A.递归就是在方法中自己调用自己

B.递归的次数最好过大,否则会导致结果不准确

C.使用递归算法,方法必须有返回值

D.简化成最简问题,再正向向倒推,求出结果

【正确答案】A

【答案解析】B一般不同时做多次递归调用,运算量会急剧增加,考虑用循环替代。C递归不一定有返回值,D简化成最简问题,再反向倒推,得出结果。

35.下面有关java的instanceof、?、&、&&说法正确的有?

A.instanceof 可用来判断某个实例变量是否属于某种类的类型。

B."?:" 三目运算符

C.&在逻辑运算中是非短路逻辑与,在位运算中是按位与

D.&& 逻辑运算:逻辑与

【正确答案】A,B,C,D

【答案解析】instanceof判断某个实例变量是否属于某种类的类型

36.关于实例方法和类方法,以下描述正确的是( )

A.实例方法也可访问静态变量

B.类方法既可以访问类变量,也可以访问实例变量

C.类方法只能通过类名来调用

D.实例方法只能通过对象来调用

【正确答案】A,D

【答案解析】类方法只能访问静态变量,类方法可以通过对象调用或类名调用。

37 (单选题)下面哪个流类属于面向字符的输入流( )

A.ByteArrayInputStream

B.FileInputStream

C.ObjectInputStream

D.InputStreamReader

【正确答案】D

【答案解析】ABC属于字节流

38、(单选题)

称呼 CDATA #IMPLIED

姓名 CDATA #REQUIRED

职位 CDATA #REQUIRED> 关于上述DTD 定义的描述正确的是( )

A.Customer 元素能包含子元素,并且能为空

B.Customer 元素能包含文本,并且能为空

C.Customer 元素不能包含文本,也不能包含子元素

D.Customer 元素的所有实例的“称呼”属性必须有值,不能为空

【正确答案】C

【答案解析】EMPTY表示元素不能包含文本,也不能包含子元素,#REQUIRED表示该属性必须有值,#IMPLIED表示该属性可以没有值。

39、(单选题)以下代码的执行结果是( ) public class Base { private void test() { System.out.println(6 + 6 + "(Result)"); } static public void main(String[] a) { new Base().test(); } }

A.66(Result)

B.12(Result)

C.运行时出错。不能将一个int转成一个String。

D.Compilation Error.Incompatible type for +. Can't add a string to an int. 运行时出错。不能将一个String与一个int相加。

【正确答案】B

【答案解析】字符串与基本数据类型连接的问题,如果第一个是字符串,那么后面都是按字符串处理,如果第一个...第n个都是基本数据类型,第n+1个是字符串类型,那么前n个按加法计算出结果再与字符串连接。

40、(单选题)下面是文档注释的是

A./** */

B.//

C./* */

D.//*/

【正确答案】A

【答案解析】A是文档注释,BC是普通注释。

41、(单选题)XML的命名规则中说法正确的是( )

A.可以包含字母、数字、以及其他字符

B.名字可以任何字母、数字或符号开始

C.名字没有任何限制

D.以上均不正确

【正确答案】A

【答案解析】名称可以包含字母,数字或其他字符,名称不能以数字或标点符号开始,名称不能以字符xml(XML Xml结尾),名称不能含有空格。

42、(多选题)有关javadoc命令生成文档叙述正确的是

A.如果是一个包命令为javadoc –d docDir nameOfPackage

B.如果是一个包命令为javadoc –d docDir nameOfPackages

C.如果文件在默认包中命令为javadoc –d docDir *.java

D.如果文件在默认包中命令为javadoc –d docDir *.javac

【正确答案】A,C

【答案解析】BD语法错误

43、(多选题)下列文档注释规范说明正确的是

A.@author Lee Boynton代表作者

B.@version 1.2.1代表版本号

C.@see import java.util.Arrays;代表参见

D.@since JDK1.8 代表JDK版本

【正确答案】A,B,C,D

【答案解析】均正确

44、(多选题)关于异常(Exception),下列描述正确的是( )

A.异常的基类为 Exception,所有异常都必须直接或者间接继承它

B.异常可以用 try{ . . .}catch(Exception e){ . . .}来捕获并进行处理

C.如果某异常继承 RuntimeException,则该异常可以不被声明

D.异常可以随便处理,而不是抛给外层的程序进行处理

【正确答案】A,B,C

【答案解析】异常可以在自己方法内部处理,当自己无法处理时,需要抛给调用者处理。

45、(单选题)关于 sleep()和 wait(),以下描述错误的一项是( )

A.sleep 是线程类(Thread)的方法,wait 是 Object 类的方法

B.sleep 不释放对象锁,wait 放弃对象锁

C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复

D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态

【正确答案】D

【答案解析】sleep是线程类的方法,此线程停止执行时,执行另一线程,不释放对象锁,监控仍然保持,结束后会自动恢复。wait是Object类的方法,会导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法后才进入对象锁定池准备获得对象进入运行状态。

46、(单选题)下列可以解析XML的有( )

A.CSS

B.DTD

C.SAX

D.XSL

【正确答案】C

【答案解析】java解析XML四种方式SAX,DOM,JDOM,DOM4J

47、(单选题)方法 resume()负责恢复哪些线程的执行( )

A.通过调用 stop()方法而停止的线程。

B.通过调用 sleep()方法而停止的线程。

C.通过调用 wait()方法而停止的线程。

D.通过调用 suspend()方法而停止的线程。

【正确答案】D

【答案解析】suspend挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行。resume恢复挂起的线程,让这个线程继续执行下去。

你可能感兴趣的:(javase,Java,编程,java,javase,编程)