java高级开发 章节练习题(选择、填空、判断)

第九章 常用实用类

一. 单选题

1. (单选题)String类的equals方法,其作用是:

  • A. 比较2个字符串对象是否为同一个对象
  • B. 比较2个字符串对象的字符长度是否相同
  • C. 比较2个字符串对象的首地址是否相同
  • D. 比较2个字符串对象的字符序列是否相同

答案: D:比较2个字符串对象的字符序列是否相同;

2. (单选题)String类的方法中,能够判断字符序列前缀的方法是()

  • A. compareTo()
  • B. contains()
  • C. startsWith()
  • D. trim()

答案: C:startsWith()

3. (单选题)下面哪一个不是String类提供的合法的方法()

  • A. equals()
  • B. trim()
  • C. append()
  • D. indexOf()

答案: C:append();

4. (单选题)关于字符串的方法,如下代码执行结果是(     )。

Plain Text

String fileName = "中国China";  System.out.println(fileName.indexOf("国"));

  • A. 0
  • B. 1
  • C. 2
  • D. 3

答案: B:1

5. (单选题)下列String类的( )方法返回指定字符串的一部分。

  • A. extractstring()
  • B. substring()
  • C. Substring()
  • D. Middlestring()

答案: B:substring();

6. (单选题)下列代码执行后,s2的值是()

Plain Text

String s1 = "Happy#day"; String s2 = s1.substring(1,5);

  • A. "Happ"
  • B. "Happy"
  • C. "appy"
  • D. "appy#"

答案: C:"appy"

7. (单选题)关于StringBuffer对象的操作,有如下程序代码,程序运行的结果是( )。

Plain Text

StringBuffer buf1=new StringBuffer("abcd"); StringBuffer buf2=buf1.append("def"); System.out.print(buf1+" "); System.out.print(buf2+" ");  System.out.println(buf1==buf2);

  • A. abcd     abcddef    false
  • B. abcddef    abcddef    true
  • C. abcd   abcddef   true
  • D. abcddef   abcddef   false

答案: B:abcddef abcddef true;

8. (单选题)关于对StringBuffer类对象的操作,下面代码执行后,输出结果是(     )。

Plain Text

StringBuffer buffer=new StringBuffer(); StringBuffer buffer2=buffer.append("abc").append("123"); System.out.println(buffer==buffer2);

  • A. true
  • B. false
  • C. 0
  • D. 1

答案: A:true;

9. (单选题)以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?(      )  

  • A. ceil()
  • B. floor()
  • C. abs()
  • D. random()

答案: C:abs()

10. (单选题)下列叙述错误的是()

  • A. "default966".matches("[^bc]+[789]{1}[6]{2}")的值是true
  • B. 表达式"RedBird".lastIndexOf("Bird")的值是4
  • C. 表达式"RedBird".indexOf("Bird")的值是3
  • D. 表达式"RedBird".indexOf("Cat")的值是-1

答案: B:表达式"RedBird".lastIndexOf("Bird")的值是4;

11. (单选题)下列叙述错误的是()

  • A. 表达式"D:/java/book".lastIndexOf("/")的值是8
  • B. 表达式"3.14".matches("[0-9]+[.]{1}[0-9]+")的值是true
  • C. 表达式"220301200210250286".startsWith("2203")的值是true
  • D. 表达式"2203012002102502286".endsWith("286")的值是true

答案: A:表达式"D:/java/book".lastIndexOf("/")的值是8;

二. 判断题

12. (判断题)"89762.34".matches("[0-9.]+")的值是true.

  • A. 对
  • B. 错

答案: 对

13. (判断题)表达式"3.1415926".matches("[0-9]+[.]{1}[0-9]+")的值是true

  • A. 对

  • B. 错

答案: 对

14. (判断题)表达式"java88_hello_99".matches("[a-zA-Z0-9_]+")的值是true

  • A. 对
  • B. 错

答案: 对

15. (判断题)"\natural"是正确的String常量。

  • A. 对
  • B. 错

答案: 对

16. (判断题)"\hello"是正确的String常量。

  • A. 对
  • B. 错

答案: 错

17. (判断题)Random对象的nextInt(int n)方法随机返回[0,n)的一个整数。

  • A. 对
  • B. 错

答案: 对

18. (判断题)表达式"\t\nABC".length()的值是5.

  • A. 对
  • B. 错

答案: 对

三. 挑错题

19. (挑错题)下列哪行代码有错误()

public class E{

    public static void main(String[] args){

        String s=new String("ABCABC");

        boolean m=s.equals("");                    //A

        s=s.replaceAll("[ABC]+","**");            //B

        s=s.substring(1);                                //C

        int n=s.length;                                    //D

        System.out.println(s);

    }

}

  • A. A
  • B. B
  • C. C
  • D. D

答案: D.D

20. (挑错题)下列哪行代码有错误()

public class E{

    public static void main(String[] args){

        String str=new String("ABCABC");

        int m=str.equals(" ");                    //A

        byte[] b=str.getBytes();                //B

        String s=str.substring(1);            //C

        char[] c=str.toCharArray();         //D

    }

}

  • A. A
  • B. B
  • C. C
  • D. D

答案: A:A;

第十章 swing

一. 填空题

1. (填空题)Java swing中使用()类可以创建文本框。

答案:

(1) JTextField
 

2. (填空题)Java swing中使用()类可以创建文本区。

答案:

(1) JTextArea
 

3. (填空题)Java swing中使用()类可以创建按钮。

答案:

(1) JButton 

4. (填空题)Java swing中使用()类可以创建标签。

答案:

(1) JLabel 

5. (填空题)getKeyCode方法可以获得按键的()

答案:

(1) 键码值

6. (填空题)getKeyChar方法可以获得按键的()

答案:

(1) 字符

7. (填空题)setLayout方法用于()

答案:

(1) 设置布局

8. (填空题)setSize方法用于()

答案:

(1) 设置尺寸;设置大小

二. 单选题

9. (单选题)以下属于MouseMotionListener接口方法的是

  • A. mousePressed
  • B. mouseReleased
  • C. mouseDragged
  • D. mouseClicked

答案: C:mouseDragged;

10. (单选题)以下不属于MouseListener接口方法的是()

  • A. mousePressed
  • B. mouseReleased
  • C. mouseClicked
  • D. mouseMoved

答案: D:mouseMoved

11. (单选题)当鼠标按键被释放的时候,会调用以下那个事件处理器方法?()

  • A. mouseReleased()
  • B. mousePressed
  • C. mouseEntered
  • D. mouseExited

答案: A:mouseReleased();

12. (单选题)下列选项中布局()是JPanel容器的默认布局

  • A. GridLayout
  • B. BorderLayout
  • C. CardLayout
  • D. FlowLayout

答案: D:FlowLayout;

13. (单选题)下列哪个不属于容器?

  • A. JFrame
  • B. JButton
  • C. JPanel
  • D. JSplitPane

答案: B:JButton

14. (单选题)按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件?

  • A. FocusListener
  • B. ComponentListener
  • C. WindowListener
  • D. ActionListener

答案: D:ActionListener

15. (单选题)下面哪个可以改变容器的布局?( )

  • A. setLayout(aLayoutManager);
  • B. addLayout(aLayoutManager);
  • C. layout(aLayoutManager);
  • D. setLayoutManager(aLayoutManager);

答案: A:setLayout(aLayoutManager);

16. (单选题)下列叙述错误的是()

  • A. JCheckBox选择框提供两种状态,一种是选中,另一种是未选中
  • B. JTextArea上不能触发MouseEvent事件
  • C. JCheckBox选择框可以触发ItemEvent事件
  • D. JTextArea文本区的Document对象可以触发DocumentEvent事件

答案: B:JTextArea上不能触发MouseEvent事件

17. (单选题)()布局管理器使容器中各个组件呈网格布局,平均占据容器空间。

  • A. FlowLayout
  • B. BorderLayout
  • C. GridLayout
  • D. CardLayout

答案: C:GridLayout;

三. 判断题

18. (判断题)创建ActionEvent事件的处理器类必须实现KeyListener接口。

  • A. 对
  • B. 错

答案: 错

19. (判断题)JFrame类的对象的默认布局是BorderLayout布局。

  • A. 对
  • B. 错

答案: 对

20. (判断题)对于有处理器的JTextField文本框,如果该文本框处于活动状态(有输入焦点)时,用户即使不输入文本,只要按回车键(Enter),也可以触发ActionEvent事件。

  • A. 对
  • B. 错

答案: 对

21. (判断题)JPanel面板的默认布局是FlowLayout布局。

  • A. 对
  • B. 错

答案: 对

22. (判断题)使用GridLayout布局的容器中的单元格大小相同。

  • A. 对
  • B. 错

答案: 对

第十二章 输入流输出流

一. 单选题

1. (单选题)如果按字节读取文件内容,应当使用

  • A. FileReader
  • B. FileWriter
  • C. FileInputStream
  • D. FileOutputStream

答案: C:FileInputStream

2. (单选题)如果按字符读取文件内容,应当使用

  • A. FileReader
  • B. FileWriter
  • C. FileInputStream
  • D. FileOutputStream

答案: A:FileReader

3. (单选题)如果按行读取文件内容,应当使用

  • A. FileReader
  • B. FileWriter
  • C. BufferedReader
  • D. BufferedWriter

答案: C:BufferedReader

4. (单选题)下面()类创建的流既可以读数据也可以写数据

  • A. FileReader
  • B. RandomAccessFile
  • C. BufferedReader
  • D. FileInputStream

答案: B:RandomAccessFile;

5. (单选题)下面()方法可以判断文件是否存在

  • A. isFile
  • B. canRead
  • C. canWrite
  • D. exists

答案: D:exists;

6. (单选题)如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()。

  • A. FileInputStream
  • B. FileOutputStream
  • C. DataOutputStream
  • D. FileWriter

答案: A:FileInputStream

7. (单选题)随机流可以使用()方法定位文件的读写位置

  • A. read
  • B. write
  • C. getFilePointer
  • D. seek

答案: D:seek;

8. (单选题)FileOutputStream类的父类是(       )。

  • A. File
  • B. FileOutput
  • C. OutputStream
  • D. InputStream

答案: C:OutputStream;

二. 判断题

9. (判断题)BufferedReader流能直接指向一个文件对象。

  • A. 对
  • B. 错

答案: 错

10. (判断题)

使用语句

new File("C:\book\test.dat");

创建File对象,没有错误。

  • A. 对
  • B. 错

答案: 错

11. (判断题)可以使用File类进行输入/输出。

  • A. 对
  • B. 错

答案: 错

12. (判断题)Serializable接口是个标记接口,它只是一个表示对象可以序列化的特殊标记。

  • A. 对
  • B. 错

答案: 对

13. (判断题)InputStream类中的close()方法是用于关闭流并且释放流所占的系统资源。

  • A. 对
  • B. 错

答案: 对

14. (判断题)File类用于管理本地磁盘的文件和目录。

  • A. 对
  • B. 错

答案: 对

15. (判断题)通过read()方法可以从字节输入流读出各种类型的数据。

  • A. 对
  • B. 错

答案: 对

三. 填空题

16. (填空题)使用()类可以创建文件字节输入流

我的答案:

(1) FileInputStream

17. (填空题)使用()类可以创建文件字节输出流

答案:

(1) FileOutputStream

18. (填空题)使用()类可以创建文件字符输入流

我的答案:

(1) FileReader

19. (填空题)使用()类可以创建文件字符输出流

答案:

(1) FileWriter

20. (填空题)使用()类可以创建缓冲输入流

答案:

(1) BufferedReader

21. (填空题)使用()类可以创建缓冲输出流

答案:

(1) BufferedWriter

22. (填空题)使用()类可以创建随机流

答案:

(1) RandomAccessFile

23. (填空题)使用()类可以创建数据输入流

答案:

(1) DataInputStream

24. (填空题)使用()类可以创建数据输出流

答案:

(1) DataOutputStream

25. (填空题)使用()类可以创建对象输入流

答案:

(1) ObjectInputStream

26. (填空题)使用()类可以创建对象输出流

答案:

(1) ObjectOutputStream

27. (填空题)使用对象流读/写对象时,要保证对象是()的。

答案:

(1) 序列化;可序列化

28. (填空题)一个对象的(    )是指该对象的一个“复制品”,复制品实体的变化不会引起原对象实体的变化。

答案:

(1) 克隆

第十三章 泛型与集合框架

一. 填空题

1. (填空题)树集采用树结构存储数据,树结点中的数据会按存放数据的“大小"顺序依次排列,在同一层中的结点从左到右按()的顺序排列。

答案:

(1) 从小到大

2. (填空题)堆栈对象可以使用push方法实现()操作。

答案:

(1) 入栈;压栈;进栈

3. (填空题)堆栈对象可以使用(    )方法实现出栈操作。

答案:

(1) pop;pop()

4. (填空题)在Java中实现栈操作的类是            。

答案:

(1) Stack;Stack

5. (填空题)            类创建的对象以链表结构存储数据。

答案:

(1) LinkedList;LinkedList

6. (填空题)            类创建的对象称为树集。

答案:

(1) TreeSet;TreeSet

7. (填空题)            类创建的对象称为树映射。

答案:

(1) TreeMap;TreeMap

二. 判断题

8. (判断题)映射表将键和值一起保存,键可以重复。

  • A. 对
  • B. 错

答案: 错

9. (判断题)集合中不允许有相同的元素。

  • A. 对
  • B. 错

答案: 对

三. 单选题

10. (单选题)有声明Cone one;下列关于泛型的范围说法错误的是()

  • A. 是Geometry的子类
  • B. 是实现Geometry接口的类
  • C. 是Geometry类本身
  • D. 是Geometry的父类

答案: D:是Geometry的父类;

11. (单选题)在Java中,以下()类的对象是以键-值的方式存储对象。

  • A. List
  • B. ArrayList
  • C. HashMap
  • D. LinkedList

答案: C:HashMap;

12. (单选题)“后进先出”指的是下面哪种数据结构

  • A. 链表
  • B. 栈
  • C. 集合
  • D. 散列映射

答案: B:栈;

13. (单选题)实现下列哪个接口,可以启用比较功能(     )

  • A. Runnable接口
  • B. Iterator接口
  • C. Serializable接口
  • D. Comparable接口

答案: D:Comparable接口;

14. (单选题)使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法(   )

  • A. next()
  • B. hash()
  • C. hasPrevious()
  • D. hasNext()

答案: D:hasNext();

15. (单选题)在Java中,以下()类的对象能实现集合的交集、并集和差集。

  • A. Stack
  • B. HashMap
  • C. HashSet
  • D. LinkedList

答案: C:HashSet

 

第十四章 JDBC

一. 单选题

1. (单选题)下面的描述错误的是(      )

  • A. Statement的executeQuery()方法会返回一个结果集。
  • B. Statement的executeUpdate()方法会返回是否更新成功的boolean值。
  • C. Statement的execute ()方法会返回boolean值,含义是是否返回结果集。
  • D. Statement的executeUpdate()方法会返回值是int类型,含义是SQL数据操作影响的记录数。

答案: B:Statement的executeUpdate()方法会返回是否更新成功的boolean值。

2. (单选题)默认情况下,Connection连接对象的提交方式为自动提交,如果要取消自动提交,则使用的方法是(        )。

  • A. commit()
  • B. rollback()
  • C. setAutoCommit(false)
  • D. close()

答案: C:setAutoCommit(false)

3. (单选题)在JDBC编程中执行完下列SQL语句: SELECT name, rank, serialNo FROM emp,能得到结果集rs的第一列数据的代码是?(        )

  • A. rs.getString(0);
  • B. rs.getString("name");
  • C. rs.getString(2);
  • D. rs.getString(“ename”);

答案: B:rs.getString("name");

4. (单选题)下列(        )不是getConnection()方法的参数。

  • A. 数据库用户名
  • B. 数据库的访问密码
  • C. JDBC驱动器的版本
  • D. 连接数据库的URL

答案: C:JDBC驱动器的版本;

5. (单选题)Statement接口中的executeQuery(String sql)方法返回的数据类型是(        )。

  • A. ResultSet类的对象
  • B. Connection接口实例
  • C. DatabaseMetaData类的对象
  • D. Statement接口实例

答案: A:ResultSet类的对象

6. (单选题)如果事务处理失败,会调用下面(        )方法进行处理。

  • A. Connection
  • B. setAutoCommit
  • C. commit
  • D. rollback

答案: D:rollback;

7. (单选题)JDBC API主要位于(     )包中,该包中定义了一系列访问数据库的接口和类。

  • A. java.sql
  • B. java.util
  • C. java.jdbc
  • D. java.lang

答案: A:java.sql;

8. (单选题)

使用JDBC连接数据库的顺序有下面几个,其中正确的顺序是( )

A) 加载驱动 B) 创建Statement对象及sql语句 C) 发送并处理SQL语句 D) 建立于数据库的连接 E) 关闭连接

  • A. ABDCE
  • B. ABCDE
  • C. ADBCE
  • D. BADCE

答案: C:ADBCE;

9. (单选题)下面选项中,能够将游标从当前位置向下移一行的方法是( )

  • A. next()
  • B. absolute(int row)
  • C. previous()
  • D. last()

答案: A:next();

10. (单选题)下面Statement接口的方法中,用于执行SQL中查询语句的是( )

  • A. executeUpdate(String sql)
  • B. executeQuery(String sql)
  • C. execute(String sql)
  • D. executeDelete(String sql)

答案: B:executeQuery(String sql);

11. (单选题)下面Statement接口的方法中,用于执行SQL中insert、update和delete语句的是( )

  • A. executeUpdate(String sql)
  • B. executeQuery(String sql)
  • C. execute(String sql)
  • D. executeDelete(String sql)

答案: A:executeUpdate(String sql);

12. (单选题)下面关于executeQuery(String sql)方法,说法正确的是( )

  • A. 可以执行insert语句
  • B. 可以执行update语句
  • C. 可以执行select语句
  • D. 可以执行delete语句

答案: C:可以执行select语句;

13. (单选题)下面选项,关于ResultSet中游标指向的描述正确的是( )

  • A. ResultSet对象初始化时,游标在表格的第一行
  • B. ResultSet对象初始化时,游标在表格的第一行之前
  • C. ResultSet对象初始化时,游标在表格的最后一行之前
  • D. ResultSet对象初始化时,游标在表格的最后一行

答案: B:ResultSet对象初始化时,游标在表格的第一行之前;

14. (单选题)下面Statement接口的方法中,用于执行insert、update和delete语句的是( )

  • A. executeUpdate(String sql)
  • B. executeQuery(String sql)
  • C. execute(String sql)
  • D. executeDelete(String sql)

答案: A:executeUpdate(String sql);

15. (单选题)下列选项,可用于存储结果集的对象是()

  • A. ResultSet
  • B. Connection
  • C. Statement
  • D. PreparedStatement

答案: A:ResultSet;

16. (单选题)下列选项中,能够实现预编译的是()

  • A. Statement
  • B. Connection
  • C. PreparedStatement
  • D. DriverManager

答案: C:PreparedStatement;

17. (单选题)Statement接口中executeQuery()方法的返回值是( )

  • A. ResultSet
  • B. int
  • C. Boolean
  • D. Result

答案: A:ResultSet;

18. (单选题)下面关于 ResultSet接口中getXXX()方法的描述错误的是( )

  • A. 可以通过字段的名称来获取指定数据
  • B. 可以通过字段的索引来获取指定的数据
  • C. 字段的索引是从1开始编号的
  • D. 字段的索引是从0开始编号的

答案: D:字段的索引是从0开始编号的;

19. (单选题)修改user表里面id=1的username为"QQQ",修改password为"999",SQL语句为:(    )。

  • A. update user  username='QQQ',password='999' where id=1;
  • B. update user set username='QQQ' and password='999' where id=1;
  • C. update user set username='QQQ',password='999'  id=1;
  • D. update user set username='QQQ',password='999' where id=1;

答案: D:update user set username='QQQ',password='999' where id=1;

二. 填空题

20. (填空题)使用JDBC技术访问数据库的主要步骤是:

1.()

2.()

3.创建语句对象:通过连接对象实例化Statement或PreparedStatement对象。

4.执行SQL语句,获得结果

5.关闭建立的对象,释放资源

答案:

(1) 加载驱动程序;加载数据库驱动程序;加载连接器

(2) 连接数据库;建立数据库连接;建立连接;建立连接对象

21. (填空题)

使用JDBC连接MySQL数据库时,括号内补全加载驱动程序的代码

String dbDriver="com.mysql.jdbc.Driver";

        try {
           ___________________ ;
        } catch (ClassNotFoundException e) {          
            e.printStackTrace();
        }

答案:

(1) Class.forName("com.mysql.jdbc.Driver");Class.forName(dbDriver);

22. (填空题)

建立数据库连接后,可以通过_____(语句对象)或____(预处理语句对象)来执行SQL语句,并获取结果。

答案:

(1) Statement

(2) PreparedStatement

23. (填空题)JDBC中通过                    类加载数据库驱动程序。

答案:

(1) Class

24. (填空题)内部类的字节码文件的名字是          

答案:

(1) 外嵌类名$内部类名

25. (填空题)在连接mysql数据库时,出现了如下错误提示,原因可能是()

java高级开发 章节练习题(选择、填空、判断)_第1张图片

答案:

(1) 密码错误;数据库密码错误

三. 判断题

26. (判断题)ResultSet接口既可以通过字段的名称来获取指定数据,也可以通过字段的索引来获取指定的数据,字段的索引是从0开始编号的。

  • A. 对
  • B. 错

答案: 错

27. (判断题)

使用PreparedStatement要比使用Statement性能更高。

  • A. 对
  • B. 错

答案: 对

28. (判断题)ResultSet接口表示select查询语句得到的结果集,该结果集封装在一个逻辑表格中。

  • A. 对
  • B. 错

答案: 对

29. (判断题)Statement接口的executeUpdate(String sql)返回值是int,它表示数据库中受该SQL语句影响的记录的数目。

  • A. 对
  • B. 错

答案: 对

四. 挑错题

30. (挑错题)

在连接mysql数据库时,出现了如下错误提示,可能是哪行代码出错()

        Class.forName("com.mysql.jdbc.Driver");        //A

        Connection con=null;                                      //B
        String uri="jdbc:mysql://localhost:3306/Book?characterEncoding=utf-8";
        String user="root";                                            //C
        String password="";                                            //D
        con=DriverManager.getConnection(uri,user,password);

错误提示:
access denied for user root@localhost (using password:YES)

  • A. A
  • B. B
  • C. C
  • D. D

答案: D:D;

第十五章 多线程

一. 单选题

1. (单选题)当线程调用start( )后,其所处状态为(        )。

  • A. 阻塞状态
  • B. 运行状态
  • C. 就绪状态
  • D. 新建状态

答案: C:就绪状态;

2. (单选题)线程通过()方法可以休眠一段时间,然后恢复运行。

  • A. run
  • B. setPrority
  • C. start
  • D. sleep

答案: D:sleep;

3. (单选题)线程在()状态时调用isAlive()方法返回的值是false.

  • A. 新建
  • B. 就绪
  • C. 运行
  • D. 等待

答案: A:新建;

4. (单选题)下列哪个叙述是正确的?

  • A. 多线程需要多个CPU才可以
  • B. 多线程需要多个进程来实现
  • C. 一个进程可以产生多线程
  • D. 线程之间无法实现数据共享

答案: C:一个进程可以产生多线程;

5. (单选题)以下哪个方法用于定义线程的执行体? (   )

  • A. start()
  • B. init()
  • C. run()
  • D. ynchronized()

答案: C:run();

6. (单选题)线程的启动方法是(       )

  • A. run()
  • B. start()
  • C. begin()
  • D. accept

答案: B:start();

7. (单选题)下列哪个叙述是正确的?

  • A. 多线程需要多个CPU才可以
  • B. 多线程需要多个进程来实现
  • C. 一个进程可以产生多线程
  • D. 线程之间无法实现数据共享

答案: C:一个进程可以产生多线程;

8. (单选题)编写线程类,要继承的父类是()

  • A. Object
  • B. Runnable
  • C. Thread
  • D. Serializable

答案: C:Thread;

9. (单选题)

以下哪个最准确描述synchronized关键字?

  • A. 允许两线程并行运行,而且互相通信;
  • B. 保证在某时刻只有一个线程可访问方法或对象;
  • C. 保证允许两个或更多处理同时开始和结束;
  • D. 保证两个或更多线程同时开始和结束。

答案: B:保证在某时刻只有一个线程可访问方法或对象;

10. (单选题)下列有关线程的创建方式说法错误的是( )

  • A. 通过继承Thread类与实现Runnable接口都可以创建多线程程序
  • B. 实现Runnable接口相对于继承Thread类来说,可以避免由于Java的单继承带来的局限性
  • C. 通过继承Thread类与实现Runnable接口创建多线程这两种方式没有区别
  • D. 大部分的多线程应用都会采用实现Runnable接口方式创建

答案: C:通过继承Thread类与实现Runnable接口创建多线程这两种方式没有区别;

二. 填空题

11. (填空题)调用线程类对象的(    )方法将启用一个线程。

答案:

(1) start

12. (填空题)创建线程具有两种方式,分别是实现 (    )接口或者继承(   ) 类.

答案:

(1) Runnable

(2) Thread

13. (填空题)当JVM将CPU的使用权切换给就绪状态的线程时,线程的(  )方法会被执行。

答案:

(1) run;run()

14. (填空题)()类及其子类的对象表示线程。

答案:

(1) Thread

15. (填空题)线程完成了全部的任务,进入()状态

答案:

(1) 死亡;终止;销毁

16. (填空题)线程调用setDaemon(true);会将自己设为()线程

答案:

(1) 守护

17. (填空题)线程在生命周期中要经历5种状态,分别是           状态、            状态、              状态、            状态、          状态。

答案:

(1) 新建

(2) 就绪

(3) 运行

(4) 阻塞

(5) 死亡

18. (填空题)程序是指()

答案:

(1) 一段静态的代码

19. (填空题)进程是程序的()过程,它对应了从代码加载、执行到执行完毕的一个完整过程。

答案:

(1) 一次动态执行

20. (填空题)线程是比()更小的执行单位。

答案:

(1) 进程

21. (填空题)调用线程对象的()方法可以启动线程,使线程处于可运行状态。

答案:

(1) start

三. 判断题

22. (判断题)如果线程死亡,它便不能运行。

  • A. 对
  • B. 错

答案: 对

23. (判断题)一个新线程创建后会自动进入就绪状态,等待CPU的调度。

  • A. 对
  • B. 错

答案: 错

24. (判断题)用Thread.currentThread().getName()来获取当前线程的名字。

  • A. 对
  • B. 错

答案: 对

25. (判断题)
Java中直接调用Thread类中的run()方法可以启动一个线程。

  • A. 对
  • B. 错

答案: 错

26. (判断题)当我们创建一个线程对象时,该对象表示的线程就立即开始运行。

  • A. 对
  • B. 错

答案: 错

四. 程序填空题

27. (程序填空题)通过实现接口来定义线程类,在线程体执行阶乘计算。(注意如需空格只加一个)

public class Main {

    public static void main(String[] args) {
        Factorial fac=new Factorial(5);           

        Thread t1=____________; //创建线程  (不用加分号,注意区分大小写)  
       ________________; //启动线程    (不用加分号,注意区分大小写)     
    }

}

class Factorial ___________{ //声明线程类    (注意区分大小写)  
   private int n;
   private long factorial;
   
   public Factorial(int n){
       this.n=n;
   }      

   //线程体
   @Override
   ______________________{ //接口中定义的方法
       factorial=1;
       for (int i = ___; i <= ____; i++)
           ____________________;    (注意分号已给出)
       System.out.println(factorial);
   }
}
 

答案:

(1) new Thread(fac)

(2)  t1.start()

(3) implements Runnable

(4) public void run();void run()

(5) 1;2

(6) n

(7) factorial=factorial*i

你可能感兴趣的:(java,开发语言)