第九章 常用实用类
一. 单选题
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