基本问题

下面哪些方法是java.lang.Thread类中的方法?哪些方法是能抛出异常InterruptedException的?哪些方法在Java中是禁用的?

run(), start(), stop(), suspend(), resume(), sleep(), interrupt(), yield(), join()

查阅jdk手册知:run(), start(), stop() 已弃用, suspend() 已弃用, resume() 已弃用, sleep(), interrupt(), yield(), join()均为java.lang.Thread中的方法。

各方法对应抛出的异常类型有:

方法 异常类型
run() 不抛出异常
start() IllegalThreadStateException
stop() SecurityException
suspend() SecurityException
resume() SecurityException
sleep() IllegalArgumentException、InterruptedException
interrupt() SecurityException
yield() 不抛出异常
join() InterruptedException

因此可以抛出InterruptedException的方法有:sleep(), yield()
其中在java中已弃用的方法有:stop(), suspend(), resume()

编写一个测试程序,用多线程计算1万以内素数之和与完全数之和的乘积。

何为流?根据流的方向,流可分为哪两种?

“流”是对输入输出设备的一种抽象,是一组有序的数据序列,就像一个水流管道,能将数据从从一个地方(源)带到另一个地方(目的地)。流的创建可以更加方便地处理数据的输入和输出。

根据流的方向,流可以分为输入流输出流

  • 输入流的指向称为它的,输入流从源(文件、各种输入设备等)中将数据读取到进程(内存)中。
  • 输出流的指向称为它的目的地,输出流从进程中读取数据,并将数据写入到目的地(永久储存的媒介中或者传送给其他的应用程序)中。

InputStream,OutputStream,Reader和Writer类的功能有何异同?

InputStream, OutputStream, Reader和Writer类都能够创建流。
InputStream和Reader都是是输入流,用于读取信息。但是InputStream是字节输入流,以字节为单位读取文件,而Reader是字符输入流,以字符为单位读取文件。
OutputStream和Writer都是输出流,用于写入信息。但是OutputStream是字节输出流,以字节为单位向文件写入内容,而Reader是字符输出流,以字符为单位向文件写入内容。