java多线程

2021/6/3 22:30:07

本文主要是介绍java多线程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1
以下关于Runnable接口的描述错误的是( )
A、通过实现Runnable接口可以创建多线程程序
B、Runnable接口是在java.lang包下
C、实现Runnable接口必须重写run()方法
D、通过Runnable接口中的start()方法可以开启线程
正确答案: D 我的答案:D

答案解析:

Runnable接口中只有run()这一个方法,除此之外没有其他的方法。

2
下列选项,可用于存储结果集的对象是()
A、ResultSet
B、Connection
C、Statement
D、PreparedStatement
正确答案: A 我的答案:A

3、下列关于线程优先级的描述,错误的是( )
A、NORM_PRIORITY代表普通优先级,默认值是5
B、一般情况下,主函数具有普通优先级
C、新建线程的优先级默认为最低
D、优先级高的线程获得先执行权的几率越大
正确答案: C 我的答案:C

答案解析:

新建线程将继承创建它的父线程的优先级,因此不一定是最低的优先级。

4、下列有关线程的两种创建方式说法错误的是( )
A、通过继承Thread类与实现Runnable接口都可以创建多线程程序
B、实现Runnable接口相对于继承Thread类来说,可以避免由于Java的单继承带来的局限性
C、通过继承Thread类与实现Runnable接口创建多线程这两种方式没有区别
D、大部分的多线程应用都会采用实现Runnable接口方式创建
正确答案: C 我的答案:C

答案解析:

继承Thread 类与实现Runnable接口这两种方式都可以创建线程,但是它们是有区别的,大部分的多线程应用都会采用实现Runnable接口的方式,因为它能避免由于单继承带来的局限性,能提高程序的扩展性。

5、下面Statement接口的方法中,用于执行insert、update和delete语句的是( )(单选)
A、executeUpdate(String sql)
B、executeQuery(String sql)
C、execute(String sql)
D、executeDelete(String sql)
正确答案: A 我的答案:A

6、JDBC驱动器也称为JDBC驱动程序,它的提供者是()
A、SUN
B、数据库厂商
C、ORACLE
D、ISO
正确答案: B 我的答案:B

7、下面选项中,能够将游标从当前位置向下移一行的方法是
A、next()
B、absolute(introw)
C、previous()
D、last()
正确答案: A 我的答案:A

答案解析:

absolute(int row)将游标移动到此ResultSet 对象的指定行 previous()将游标移动到此 ResultSet 对象的上一行

8、下面选项,关于ResultSet中游标指向的描述正确的是( )
A、ResultSet对象初始化时,游标在表格的第一行
B、ResultSet对象初始化时,游标在表格的第一行之前
C、ResultSet对象初始化时,游标在表格的最后一行之前
D、ResultSet对象初始化时,游标在表格的最后一行
正确答案: B 我的答案:B

9、JDBC API主要位于下列选项的那个包中()
A、java.sql.*
B、java.util.*
C、javax.lang.*
D、java.text.*
正确答案: A 我的答案:A

答案解析:

java.util是实现工具包,java.lang是基础包,java.text是进行文本格式化国际化的相关包

10、下面选项中,用于将参数化的SQL语句发送到数据库的方法是( )
A、prepareCall(String sql)
B、prepareStatement(String sql)
C、registerDriver(Driver driver)
D、createStatement()
正确答案: B 我的答案:B得分: 5.0分

答案解析:

getMetaData()用于返回表示数据库的元数据的DatabaseMetaData对象
createStatement()创建一个Statement对象来将SQL语句发送到数据库 registerDriver(Driver
driver)用于注册JDBC驱动

11、下列关于线程状态转换的描述中,错误的是( )
A、死亡状态下的线程调用start()方法可以使其重新进入就绪状态
B、运行状态下的线程调用wait()方法可以使其进入到阻塞状态
C、线程获得CPU使用权后会从就绪状态转换成运行状态
D、线程失去CPU使用权后会从运行状态转换成就绪状态
正确答案: A 我的答案:A

答案解析:

多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。
一旦进入死亡状态,线程将不再拥有运行的资格,也不能再转换到其他状态

12
public class Demo extends Thread implements Runnable{ -----①
public void run(){
System.out.println(“this is run()”);
}
public static void main(String args[]){
Thread thread=new Thread(new Demo()); -----②
thread.start();
}
}
下列关于程序运行结果的说法中,正确的是()
A、①行出现编译错误
B、②行出现编译错误
C、出现运行错误
D、程序正常执行输出thisisrun()
正确答案: D 我的答案:D

答案解析:

使用Thread(Runnable
target)构造函数可以实现线程的创建,创建线程可以通过继承Thread类或实现Runnable接口,但是继承Thread的同时实现Runnable接口也是可以的。

13
下列关于同步代码块的特征说法错误的是( )
A、可以解决多线程的安全问题
B、降低程序的性能
C、使用synchronized关键字修饰
D、多线程同步的锁只能是object对象
正确答案: D 我的答案:D

答案解析:

同步代码块中的锁对象可以是任意类型的对象。

14、下面选项中,用于创建Statement对象的方法是( )
A、getMetaData()
B、getConnection(String url,String user,String pwd)
C、registerDriver(Driver driver)
D、createStatement()
正确答案: D 我的答案:D

答案解析:

getMetaData()用于返回表示数据库的元数据的DatabaseMetaData对象
createStatement()创建一个Statement对象来将SQL语句发送到数据库

15、JAVA中调用Thread类的sleep()方法后,当前线程状态如何转换( )
A、由运行状态进入阻塞状态
B、由运行状态进入等待状态
C、由阻塞状态进入等待状态
D、由阻塞状态进入运行状态
正确答案: A 我的答案:A

答案解析:

sleep()方法使线程线程休眠,从运行状态进入到阻塞状态。

16、下列属于定义同步代码块的关键字的是( )
A、abstract
B、volatile
C、synchronized
D、goto
正确答案: C 我的答案:C

答案解析:

定义同步代码块使用关键字synchronized。

17、下列关于线程插队的说法正确的是( )
A、当在某个线程中调用其它线程的join()方法时,调用的线程将被阻塞,直到被join()方法加入的线程执行完成后它才会继续运行
B、当在某个线程中调用其它线程的join()方法时,调用的线程将被继续运行
C、当在某个线程中调用其它线程的join()方法时,调用的线程将永远不再执行
D、当在某个线程中调用其它线程的join()方法时,调用的线程和被join()方法加入的线程同时执行
正确答案: A 我的答案:A

答案解析:

当在某个线程中调用其它线程的join()方法时,调用的线程将被阻塞,直到被join()方法加入的线程执行完成后它才会继续运行。

18、关于Thread类yield()方法的作用,下列描述中正确的是( )
A、使线程由运行状态进入阻塞状态
B、使线程由运行状态进入就绪状态
C、使线程由阻塞状态进入等待状态
D、使线程由阻塞状态进入运行状态
正确答案: B 我的答案:B

答案解析:

yield()方法不会阻塞该线程,它只是将线程转换成就绪状态,让系统的调度器重新调度一次。

19
下面关于JDBC驱动器API与JDBC驱动器关系的描述,正确的是( )(单选)
A、JDBC驱动器API是接口,而JDBC驱动器是实现类
B、JDBC驱动器API内部包含了JDBC驱动器
C、JDBC驱动器内部包含了JDBC驱动器API
D、JDBC驱动器是接口,而JDBC驱动器API是实现类
正确答案: A 我的答案:A

答案解析:

JDBC驱动器实现了JDBC驱动器API,负责与特定的数据库连接,以及处理通信细节。

20
下面关于executeQuery(String sql)方法,说法正确的是( )
A、可以执行insert语句
B、可以执行update语句
C、可以执行select语句
D、可以执行delete语句
正确答案: C 我的答案:C

答案解析:

executeUpdate(String sql)用于执行SQL中的insert、update和delete语句。
executeQuery(String sql)执行查询。没有executeDelete方法



这篇关于java多线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程