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

news2024/11/23 21:41:47

第九章 常用实用类

一. 单选题

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<E>

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

答案:

(1) LinkedList;LinkedList<E>

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

答案:

(1) TreeSet;TreeSet<E>

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

答案:

(1) TreeMap;TreeMap<K,V>

二. 判断题

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

  • A. 对
  • B. 错

答案: 错

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

  • A. 对
  • B. 错

答案: 对

三. 单选题

10. (单选题)有声明Cone<? extends Geometry> 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数据库时,出现了如下错误提示,原因可能是()

答案:

(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1431886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HBase 数据导入导出

HBase 数据导入导出 1. 使用 Docker 部署 HBase2. HBase 命令查找3. 命令行操作 HBase3.1 HBase shell 命令3.2 查看命名空间3.3 查看命名空间下的表3.4 新建命名空间3.5 查看具体表结构3.6 创建表 4. HBase 数据导出、导入4.1 导出 HBase 中的某个表数据4.2 导入 HBase 中的某…

2V2无人机红蓝对抗仿真

两架红方和蓝方无人机分别从不同位置起飞&#xff0c;蓝方无人机跟踪及击毁红方无人机 2020a可正常运行 2V2无人机红蓝对抗仿真资源-CSDN文库

css1字体属性

一.font-family(字体系列&#xff09; 不同字体系统用&#xff0c;隔开&#xff1b; 多个字母的字体系统用“”&#xff1b; 二.font-size&#xff08;字体大小&#xff09;&#xff08;有单位px&#xff09;&#xff08;默认字体16px&#xff09; 三.font-weight&#xff08…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用&#xff0c;大数据信用越来越被人熟知&#xff0c;由于线下没有查询大数据信用的地方&#xff0c;想要查询大数据信用报告只有在线上查询&#xff0c;那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…

Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

HDRP和URP无法平滑切换&#xff0c;因为属性、功能差异巨大。 本脚本仅对可对应的默认脚本和属性做了转换处理。细节调整还需自己搞。 自动转换可以节省手动更换shader、texture、通用属性的劳动成本。 操作步骤 使用前确保当前项目中存在HDRP和URP的包&#xff0c;没有请到p…

Vue.js 学习14 集成H265web.js播放器实现webpack自动化构建

Vue.js 学习14 集成H265web.js播放器实现webpack自动化构建 一、项目说明1. H265web.js 简介2. 准备环境 二、项目配置1. 下载 H265web.js2. 在vue项目里引入 H265web3. 设置 vue.config.js 三、代码引用1. 参照官方demo &#xff0c; 创建 executor.js2. 在 vue 页面里引用htm…

批量检测微信小程序是否封禁接口源码

<?php // 要检测的 appid 列表 $appids array(appid1, appid2, appid3); // 使用实际的 appid // 循环调用接口检测小程序状态 foreach ($appids as $appid) { $url https://yan.changxunwangluo.cn/xcx/check_mini_program.php?appid . urlencode($appid); $…

【已解决】c++ qt选中该行为什么该列部分变色

笔者开启了QTableView中交替行改变颜色&#xff0c;发现笔者自定义绘制的水平滚动条&#xff0c;在选中后不发生颜色改变&#xff0c;这让笔者很疑惑。笔者查阅资料后发现&#xff0c;自定义绘制的控件&#xff0c;要自身设置颜色。当笔者解决了这个问题时&#xff0c;顺手就将…

GPT原始论文:Improving Language Understanding by Generative Pre-Training论文翻译

1 摘要 自然语理解包括文本蕴含、问题回答、语义相似性评估和文档分类等一系列多样化的任务。尽管大量未标注的文本语料库很丰富&#xff0c;但用于学习这些特定任务的标注数据却很稀缺&#xff0c;这使得基于区分性训练的模型难以充分发挥作用。我们展示了通过在多样化的未标…

高级Java开发工程师岗位的基本职责(合集)

高级Java开发工程师岗位的基本职责1 职责&#xff1a; 1、负责区块链产品的研发&#xff0c;独立或与团队合作&#xff0c;按时保质完成软件开发项目; 2、参与产品系统设计、概要设计工作&#xff0c;核心功能的代码编写; 3、独立解决和指导其他同事处理开发中遇到的难点问题; …

GaussDB新体验,新零售选品升级注入新思路【华为云GaussDB:与数据库同行的日子】

选品思维&#xff1a;低频VS高频 一个的商超&#xff0c;假设有50个左右的品类&#xff0c;每个品类下有2到10个不等的商品。然而如此庞大的商品&#xff0c;并非所有都是高频消费品。 结合自身日常的消费习惯&#xff0c;对于高频和低频的区分并不难。一般大型家电、高端礼盒…

14.2 Java正则表达式(❤❤)

14.2 Java正则表达式 1. 正则表达式1.1 简介1.2 字符范围匹配1.3 元字符1.4 多次重复匹配1.5 定位匹配1.6 贪婪模式与非贪婪模式1.7 表达式分组1. 正则表达式 1.1 简介 开源 在线正则表达式测试 1.2 字符范

mapbox 高亮相同特征的要素数据

一、完整代码 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>Highlight features containing similar data</title> <meta name"viewport" content"initial-scale1,maximum-scale1,user-scal…

VUE3+TS使用OpenSeadragon学习之旅,实现多图片切换效果

1.官方网站&#xff1a;OpenSeadragon 2.使用npm下载插件&#xff1a;npm install openseadragon 3.在 index.html文件引入资源 <link rel"stylesheet" href"node_modules/openseadragon/build/openseadragon/openseadragon.css" /><script src…

正点原子--STM32定时器学习笔记(1)

这部分是笔者对基本定时器的理论知识进行学习与总结&#xff01;&#xff0c;主要记录自己在学习过程中遇到的重难点&#xff0c;其他一些基础点就一笔带过了&#xff01; 1. 定时器概述 1.1 软件定时原理 使用纯软件&#xff08;CPU死等&#xff09;的方式实现定时&#xf…

Python之运算符汇总

1.算数运算符 假设 a 10, b 20 2.比较运算符 3.赋值运算符 4.逻辑运算符 逻辑运算的顺序排列:从左往右开始执行 () > not > and > or and or 一真一假 都为真: 取后面的 取前面的 取假的…

sentinel的Context创建流程分析

sentinel入门 功能 限流&#xff1a;通过限制请求速率、并发数或者用户数量来控制系统的流量&#xff0c;防止系统因为流量过大而崩溃或无响应的情况发生。 熔断&#xff1a;在系统出现故障或异常时将故障节点从系统中断开&#xff0c;从而保证系统的可用性。 降级&#xf…

PyTorch 2.2 中文官方教程(十三)

在 C中注册一个分发的运算符 原文&#xff1a;pytorch.org/tutorials/advanced/dispatcher.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 分发器是 PyTorch 的一个内部组件&#xff0c;负责确定在调用诸如torch::add这样的函数时实际运行哪些代码。这可能并不简…

元数据驱动的思想

元数据驱动的思想 元数据驱动的思想应该不会陌生&#xff0c;但元数据驱动的实践应该会非常陌生。 因为元数据驱动架构是为了解决高频个性化的复杂业务而诞生的&#xff0c;而这种业务场景只存在2B领域。 有关元数据驱动的架构思想&#xff0c;在这里暂先简单抛几个点。&#…

【动态规划】【树形dp】【C++算法】968监控二叉树

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode:968监控二叉树 给定一个二叉树&#xff0c;我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所…