第五章多线程
选择题
1. 线程调用了sleep()方法后,该线程将进入( C )状态。
A.可运行状态
B.运行状态
C.阻塞状态
D.终止状态
2. 关于java线程,下面说法错误的是(D)
A.线程是以CPU为主体的行为
B. java利用线程使整个系统成为异步
C.创建线程的方法有两种:实现Runnable接口和继承Thread类
D. 新线程一旦被创建,它将自动开始运行
3.在java语言中,临界区可以是一个语句块,或者是一个方法,并用(A )关键字标识。
A.synchronized
B.include
C.import
D.Thread
4. 线程控制方法中,yield()的作用是(D)
A.返回当前线程的引用
B.使比其低的优先级线程执行
C.强行终止线程
D.只让给同优先级线程运行
5. java用(A)机制实现了进程之间的异步执行
A.监视器
B.虚拟机
C.多个CPU
D.异步调用
6. 下面代码运行的结果是什么?(D)
public class MyThread implements Runnable {
String myString = "Yes ";
public void run() {
this.myString = "No ";
}
public static void main(String[] args) {
MyThread t = new MyThread();
new Thread(t).start();
for (int i=0; i < 10; i++)
System.out.print(t.myString);
}
}
A. 打印yes yes yes yes yes yes B. 打印no no no no no no no no
C. 打印yes no yes no ye no ye no D. 不确定
二、填空题
1.____多线程____是java程序的并发机制,它能同步共享数据、处
理不同的事件。
2.线程的创建有两种方法:实现_____ Runnable ____接口和继承
Thread类。
3.多线程程序设计的含义是可以将程序任务分成几个____并行____
的子任务。
4.java中,新建的线程调用start()方法、如myThread.start(),将
使线程的状态从New(新建状态)转换为___可运行状态______。
第六章
一、是非题
1. 所谓缺省构造函数就是没有参数的构造函数。
()
2.对象成员变量在对象创建时会获得一个缺省的初始值。
()
3.Java数组随时可以改变大小。
()
4.InputStream和OutputStream读写的数据是8位的。
()
5.Java是强类型语言。
()
6.Java没有指针,引用不能等同于指针。
()
7.protected的成员只能被继承类成员存取。
()
8.任何的Applet都完全不能访问本地资源。
()
9. Anonymous Inner Class (匿名内部类) 可以extends(继承)其它类。
()
10.final类是为防止他人从你的类上派生新类,此类是不可继承的。
()
11.super()和this()方法只能在构造函数里调用。
()
12.接口的所有方法默认都是public,abstract和non-static的。
()
13.接口可以声明成final。
()
二、简述题
1.一个空数组与一个长度为0的数组有什么区别?
2.Vector对象的大小与容量之间有什么区别?
3.String类和StringBuffer类的主要区别是什么?
答案:
一、
1. T
2. T,初始值是0
3. F
4. T, reader和writer是16位
5. T, 要有确定类型的,除过list和log
6. T,指针是可计算的,引用是不可计算的
7. F,包内和子类8. F,授权后可以访问9. T 10.T 11.T 12.T
13.F
二、
答:一个空数组是指不包括任何Object引用的数组对象。
而一个长度为0的数组是指有0个元素的数组对象。
答:一个Vector对象的大小是包含的Object引用的实际数量。
而容量是指为Object 引用分配的存储空间的数量。
答:String类:用于比较两个字符串,查找和抽取串中的字符或子串,字符串与其他类型的转换等,String类对象的内容一旦被初始化就不能再改变。
StringBuffer 类:用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中原来的内容。
1、阅读下列代码后,正确的说法是(C)
public class Person {
static int arr[] = new int[10];
public static void main(String args[]) {
System.out.println(arr[1]);
}
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空
2、仔细分析下面程序,正确的输出结果是( C )
public class Test1 {
public static void changeStr(String str) {
str = "welcome";
}
public static void main(String[] args) {
String str = "1234";
changeStr(str);
System.out.println(str);
}
}
A、welcome
B、welcome1234
C、1234
D、1234welcome
3、Java语言中的一些常用的实用工具,如处理时间的Date类,处理变长数组的Vector 类等,所在的包是( D )。
A、ng包
B、java.io包
C、java.awt包
D、java.util包
4、下面代码执行后,正确的输出结果是:( A )
String s1="You are hired!";
System.out.println(s1.replace('h','f')); //用f把字串中的h替换了
System.out.println(s1);
A. You are fired!
B. You are fired!
You are hired! You are fired!
C. You are hired!
D. You are hired!
You are hired! You are fired!
5、下面的程序段执行后输出的结果是( C )
StringBuffer buf=new StringBuffer("China2008");
buf.insert(5,"@");
System.out.println(buf.toString());
A、China2008@
B、@China2008
C、China@2008
D、China#2008
6、在Java中,所有类的根类是( A )。
A、ng.Object
B、ng.Class
C、java.applet.Applet
D、java.awt.Frame
7、应用程序的main方法中有以下语句,则输出的结果是( A )。
String s1=new String("abc");
String s2=new String("abc");
boolean b1=s1.equals(s2);
boolean b2=(s1= =s2);
System.out.print(b1+" "+b2);
A)true false B) false true C) true true D)false false
友情提示:部分文档来自网络整理,供您参考!文档可复制、编制,期待您的好评与关注!。