Java高级编程知识总结及复习(一)

1.所有异常类的父类是(A)。

答案

A

Throwable

B

Error

C

Exception

D

RunTimeException

java父异常不能比子异常先捕获 java中所有异常的父类是_优先级

Throwable是Error和Exception的父类,用来定义所有可以作为异常被抛出来的类。

Error是编译时错误和系统错误。

Exception则是可以被抛出的基本类型。

RunTimeException:运行时异常,又称不受检查异常。

2.下面属于非检查型异常的类是(A、B)。

A

ClassNotFoundException

B

NULLPointerException

C

Exception

D

IOException

ClassNotFoundException :RunTimeException 的子类,非检查型异常类,找不到类异常,当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。

NULLPointerException :RunTimeException 的子类,非检查型异常类,空指针异常类,当应用程序试图在需要对象的地方使用 null 时,抛出异常。

Exception :受检查的异常。

IOException :Exception 的子类,输入或输出异常(即写读异常)。

3.能单独和finally语句一起使用的块是(A)。

A

try

B

catch

C

throws

D

throw

处理异常常用的两种方式:

  1. try-catch-finally(捕获处理机制)
  2. throws(冒泡处理机制)

使用try…catch块捕获时可以没有catch块,但当没用catch块的时候必须得有finally块。故选A

4.用来手动抛出异常的关键字是(D)。

A

catch

B

throws

C

pop

D

throw

throw:在代码块中使用,主要是手工进行异常对象的抛出。

throws:是在方法定义上使用的,表示将此方法中可能产生的异常明确告诉给调用处并由调用处进行处理。

catch:异常处理关键字,与try连用构成try-catch-finally进行捕获处理。

5.下列关于异常,说法错误的是(C)。

A

一个try可以跟多个catch(√)

B

try后面可以没有catch块

C

try可以单独使用,后面可以没有catch、finally部分

D

finally块都会被执行,即使try或catch中遇到return也会被执行(√)

try块是必须的,catch和finally块是可选的,二者至少出现其一,或者同时出现,即:

  1. try……finally
  2. try……catch……finally

6.下面说法错误的是(B)。

A

自定义异常类都继承Exception或RuntimeException类。(√)

B

使用throws声明抛出一个异常序列,使用分号”;“隔开。

C

使用throw抛出一个异常对象。(√)

D

异常分为检查型异常和非检查型两种。(√)

7.下面类不属于Collection集合体系的是(D)。

A

ArrayList(√)

B

LinkedList(√)

C

TreeSet(√)

D

HashMap

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiLuX8h3-1593527837461)(C:\Users\zhuan\AppData\Roaming\Typora\typora-user-images\image-20200630123122380.png)]

2.创建一个ArrayList集合实例,该集合中只能存放String类型数据,下列代码正确的是(B)。

A

ArrayList myList = new ArrayList()

B

ArrayList myList = new ArrayList<>()

C

ArrayLis<> myList = new ArrayListt()

D

ArrayList<> myList = new ArrayList<>()

3.下面集合类能够体现FIFO特点的是(A)。

A

LinkedList

B

Stack

C

TreeSet

D

HashSet

FIFO:先进先出。

4.在Java中LinkedList和ArrayList类同属于集合框架类,下列方法中两类都有的是(D)。

A

addFirst()

B

getFirst()

C

removeFirst()

D

add(Object o)

addFirst()、getFirst() 、removeFirst()都是LinkedList特有的方法。

5.下列有关集合框架特征的描述中,不正确的是(A)。

A

Map集合中键对象不允许重复、有序

B

List集合中的元素允许重复、有序(√)

C

Set集合中的元素不允许重复、无序(√)

D

Collection集合中的元素允许重复、无序

TreeMap和LinkedHashMap是有序的,HashMap是无序的。

6.下列不是Map接口中的方法的是(B)。

A

clear()

B

peek()

C

get(Object key)

D

remove(Object key)

7.下列关于Iterator接口说法错误的是(C)。

A

Iterator接口是Collection接口的父接口(√)

B

从JDK5开始,所有实现了Iterator的集合类都是可迭代的,都支持foreach循环(√)

C

可以通过hasNext()方法获取下一个元素

D

remove()方法移除迭代器返回的最后应该元素

hasNext()判断是否有下一个可访问的元素。

1.下面类是由InputStream类直接派生出来的是(C)。

A

BufferedInputStream

B

PushbackInputStream

C

ObjectInputStream

D

DataInputStream

java父异常不能比子异常先捕获 java中所有异常的父类是_同步代码块_02

2.以下方法中不是InputStream类的方法的是(B)。

A

int read(byte[] buffer)

B

void flush()

C

void colse()

D

int available()

int read(byte[] buffer):将数据读入到自己数组中,并返回实际读取的字节数。

int available():用于返回在不发生阻塞情况下,从输入流中可以读取的字节数。

void colse():关闭输入流,并释放与该流关联的所有系统资源。

3.下列可以作为FilterInputStream类的构造方法的参数的类是(A)。

A

InputStream

B

File

C

FileOutputStream

D

String

4.在FilenameFilter接口中,提供了(B、D)两种类方法。

A

filter()

B

list()

C

listFile()

D

listFiles()

list()返回File对象所对应目录中满足指定过滤条件的文件名和子目录

listLises()返回File对象所对应目录满足指定过滤条件的文件和子目录

5.以下方法中(C、E)方法不是OutputStream类的方法。

A

void write(int c)

B

void write(byte[] b)

C

void reset()

D

void write(byte[] b,int offset, int len)

E

void writeTo(OutPutStream out)

6.下列关于Reader的说法中正确的是(A、D)。

A

Reader是一个抽象类,不能直接实例化,可以通过继承类来完成具体功能

B

Reader是一个接口,不能直接实例化,可以通过实现类来完成具体功能

C

Reader是一个普通类,能够直接实例化

D

Reader是字符输入流,用于从数据源以字符为单位进行读取数据

7.下列关于DataInputStream的说法中错误的是(A)。

A

DataInputStream是FileInputStream的子类

B

DataInputStream是DataInput接口的实现类

C

DataInputStream是FileIernputStream都是InputStream的子类

D

DataInputStream使用缓冲区来提高读取效率

DataInputStream是FilterInputStream的子类。

8.下列关于序列化和反序列化的说法中,正确的是(A、B、C、D)。

A

只有实现Serializable接口的对象才可以利用序列化工具保存和复原

B

对象的序列化是将对象数据写到一个输入流中的过程

C

如果一个类是可序列化的,则该类必须实现java.lang包下的Serializable接口或Externalizable接口

D

对象的反序列化是指从一个输入流中读取一个对象

9.下列关于NIO的说法中错误的是(D)。

A

NIO和传统的IO有 相同的目的,都是用于数据的输入/输出(√)

B

NIO新增的类都放在java.nio包及子包下(√)

C

传统的IO是面向流的处理,而NIO是面向块的处理(√)

D

Buffer和Channel是NIO的核心,两者都是抽象类,使用时需要通过子类来实现具体功能。

1.下面是线程类的是(B)。

A

Runnable

B

Thread

C

ThreadGroup

D

Throwable

Runnable为接口。

2.要建立一个线程,可以从下面哪个接口继承()。

A

Runnable

B

Thread

C

run

D

Throwable

Thread为类。

run为方法。
3.下面让线程休眠一分钟的正确做法是(D)。

A

sleep(1)

B

sleep(60)

C

sleep(1000)

D

sleep(60000)

sleep()单位为毫秒。

4.下列关于线程的说法错误的是(C、D)。

A

通过继承Thread类并重写run()方法来实现一个线程类。(√)

B

通过实现Runnable接口并重写run()方法来实现一个线程类。

C

在Java中,线程的优先级从1-10,与操作系统无关。

D

在Java8开始,可以使用Lambda表达式来创建一个Runnable对象。

在Java中,线程的优先级从1-10,与操作系统有关。

在Java8开始,可以使用Lambda表达式来创建一个Callable对象。

5.下列关于Thread类提供的线程优先级的说法中错误的是(C)。

A

MAX_PRIORITY表示线程的优先级最高。(10)

B

MIN_PRIORITY表示线程的优先级最低。(1)

C

NORMAL_PRIORITY表示线程的普通优先级,也是默认优先级。(NORM_PRIORITY)

D

NORM_PRIORITY表示线程的普通优先级,也是默认优先级。(5)

7.下列关于线程同步的说法错误的是(C)。

A

线程同步用于保证某个资源在某一时刻只能由一个线程访问,保证共享数据及操作的完整性。

B

线程的同步分为同步代码块、同步方法和同步锁三种形式。

C

同步代码块、同步方法和同步锁均使用synchronize关键字来实现。

D

同步锁提供了比同步代码块、同步方法更广泛的锁定操作,实现更加灵活。

只有同步代码块、同步方法使用synchronize关键字来实现。

8.下列不是java.util.Timer类的方法的是(C)。

A

start()

B

schedule(TimerTask task,Date time)

C

stop()

D

cancel()

schedule(TimerTask task,Date time):在指定时间执行特定任务。

cancel():取消任务