Java语言程序设计Java线程作业
北语19秋《Java语言程序设计》作业2参考满分答案
[北京语言大学]-【奥鹏】-北语19秋《Java语言程序设计》作业2试卷总分:100 得分:100一、单选题 (共 10 道试题,共 100 分)1.Java程序的安全性体现在平台层的是_______。
A.语法检查B.访问权限的合法性C.堆栈的溢出D.可设定访问资源域,无需分本地和远程标准参考满分解析答案:D2.下列哪个类声明是正确的?A.public final class NewClass extends superClass implements Interface1{…}B.public abstract class String{…}C.abstract public class classmates{…}D.abstract class G2 extends superClass1,superClass2{…}标准参考满分解析答案:A3.下面的程序段,在程序执行到第13行的声明时,将调用_______。
class Person{ public void printValue(int i,int j){} public void printValue(int i){} } public class Teacher extends Person { public void printValue(int i,int j){} public void printValue(int i){}A.第9行的方法B.第8行的方法C.第4行的方法D.第3行的方法标准参考满分解析答案:B4.下列哪个是合法的Java标识符?A.time/2B.publicC.i_CountD.1varName标准参考满分解析答案:C5.下面程序段的输出结果是_______。
public class Test{ public static void main(String。
奥鹏14秋《Java语言程序设计》作业4满分答案
14秋《Java语言程序设计》作业4一,单选题1. 下列说法哪一项是正确的?A. 一个程序可以包含多个源文件B. 一个源文件中只能有一个类C. 一个源文件中可以有多个公共类D. 一个源文件只能供一个程序使用?正确答案:A2. 下列说法正确的是_______。
A. 用abstract关键字修饰的方法,不能再被子类重写B. 用final关键字修饰的方法,不能再被子类重写C. 抽象类中一定要包含abstract方法D. 某个类中包含了abstract方法,该类可以不声明为abstract类?正确答案:B3. 下面程序段的输出结果为_______。
package test; public class classA{ int x=20; static int y=6; public static void main(String args[]){ classB b=new classB(); ##go(10); System.out.println("x="+##x); }A. x=10B. x=20C. x=6D. 编译不能通过?正确答案:C4. 下面程序段的输出结果为_______。
class OverMethod{ void printMeth(){ System.out.println("There is none parameter."); } void printMeth(String t){ System.out.println("There is one parameter."); } void printMeA. There is none parameter.There is one parameter.There are t正确答案:B5. 下列选项不属于对象生命周期的是_______。
A. 生成B. 使用C. 消除D. 封装?正确答案:D。
奥鹏14秋《Java语言程序设计》作业1满分答案
14秋《Java语言程序设计》作业1一,单选题1. 定义一个长度为5值为空的字符串数组,下列选项正确的是_______。
A. String a[]={"","","","",""};B. String a[5];C. String [5] a;D. String []a=new String[5];for(int i=0;i<5;a[i++]=null);?正确答案:A2. 下列与其它选项不相等的是_______。
A. 15B. 0xFC. 015D. 0XF?正确答案:C3. 在Java语言中,如果数字之后没有任何字母,计算机默认为_______。
A. int类型B. float类型C. double类型D. short类型?正确答案:C4. 当编译和运行下面的代码时,出现的结果为_______。
public class NewClass { static int total=10; public static void main(String args[]){ new NewClass(); } public NewClass(){ System.out.println("In Test"); System.out.println(this);A. 在第2行将出现编译错误B. 在第9行将会出现编译错误C. 屏幕上将会有10输出正确答案:C5. 下面程序段的运行结果为_______。
public class OperatorsAndExpressions { void equalsMethod1(){ int i=10,j=15; System.out.println(i==j); String s1=new String("how are you"); String s2=new String("how are you"); System.oA. 0 0B. 0 1C. false falseD. false true正确答案:C。
java多线程练习题
java多线程练习题在Java编程中,多线程是一个非常重要的概念,它允许程序同时执行多个任务,提高程序的效率和响应性。
以下是一些Java多线程的练习题,可以帮助你更好地理解和掌握多线程的概念和应用。
# 练习题1:线程的创建和启动编写一个Java程序,创建一个继承自Thread类的子类,并重写run 方法。
然后创建该子类的实例,并启动线程。
```javaclass MyThread extends Thread {public void run() {System.out.println("线程启动了!");}}public class Main {public static void main(String[] args) {MyThread thread = new MyThread();thread.start();}}```# 练习题2:线程的同步编写一个Java程序,模拟两个线程交替打印1到10的数字。
使用同步方法或同步代码块来保证线程安全。
```javaclass Counter {private int count = 1;public synchronized void increment() {System.out.println(Thread.currentThread().getName() + "打印了:" + count);count++;}}public class Main {public static void main(String[] args) {Counter counter = new Counter();Thread thread1 = new Thread(() -> {for (int i = 0; i < 5; i++) {counter.increment();}});Thread thread2 = new Thread(() -> {for (int i = 0; i < 5; i++) {counter.increment();}});thread1.start();thread2.start();}}```# 练习题3:使用wait和notify编写一个Java程序,模拟生产者和消费者问题。
java基础编程练习题
Java基础编程练习题一、基本语法1. 编写一个Java程序,输出“Hello, World!”。
2. 声明一个整型变量并赋值为10,然后输出该变量的值。
3. 编写一个Java程序,实现两个整数的加、减、乘、除运算。
4. 编写一个Java程序,判断一个整数是奇数还是偶数。
5. 编写一个Java程序,交换两个变量的值。
二、控制结构1. 使用ifelse语句判断一个年份是否为闰年。
2. 编写一个Java程序,使用for循环输出1到100的所有偶数。
3. 使用while循环计算1+2+3++100的和。
4. 编写一个Java程序,使用dowhile循环输出1到10的所有整数。
5. 使用switch语句实现一个简单的计算器程序,支持加、减、乘、除四种运算。
三、数组1. 声明一个整型数组,并初始化为{1, 2, 3, 4, 5},然后输出数组中的每个元素。
2. 编写一个Java程序,计算数组中所有元素的和。
3. 实现一个方法,用于查找数组中的最大值。
4. 编写一个Java程序,将一个字符串数组按照字母顺序排序。
5. 使用二维数组输出一个5x5的乘法表。
四、字符串操作1. 编写一个Java程序,连接两个字符串。
2. 实现一个方法,判断一个字符串是否为回文。
3. 编写一个Java程序,将字符串中的所有小写字母转换为大写字母。
4. 使用StringBuilder类实现字符串的逆序输出。
5. 编写一个Java程序,计算一个字符串中某个字符出现的次数。
五、面向对象基础1. 创建一个名为Person的类,包含姓名、年龄和性别属性,并提供相应的构造方法和getter/setter方法。
2. 编写一个Java程序,实现两个Person对象的比较(按年龄比较)。
3. 创建一个Student类,继承自Person类,并添加成绩属性。
4. 编写一个Java程序,实现Student类的多态。
5. 创建一个接口Animal,包含吃、睡觉和叫三个方法,然后创建两个类Dog和Cat实现该接口。
15春《JAVA语言程序设计》作业3满分答案
15春《JAVA语言程序设计》作业3单选题ssa一、单选题(共 10 道试题,共 100 分。
)1. 下列有关Java的叙述中,正确的是_______。
A. Java语言的标识符是区分大小写的B. 编译器生成的类的扩展名为.jarC. Java源文件的扩展名为.javaD. 归档工具生成的文件扩展名为.ser-----------------选择:A2. Java程序的执行方式是_______。
A. 即时编译方式和非解释执行方式B. 非即时编译方式和非解释执行方式C. 非即时编译方式和解释执行方式D. 即时编译方式和解释执行方式-----------------选择:D3. 下列说法不属于Java语言实现的机制的是_______。
A. Java虚拟机B. 垃圾回收机制C. 代码安全检查D. 内存管理-----------------选择:D4. 开发出Java程序设计语言的公司是_______。
A. SUNB. MicrosoftC. IBMD. Borland-----------------选择:A5. Java语言是由_______发展而来的。
A. BasicB. CC. C++D. Oak-----------------选择:D6. 下列关于字节代码的说法不正确的是_______。
A. 字节代码是一种二进制文件B. 可以看作是虚拟机的机器码C. 可以直接在操作系统上运行D. Java程序首先由编译器转换为标准字节代码-----------------选择:C7. 下列不属于提高Java语言安全保障的方式的是_______。
A. 不允许使用指针B. 对字节码执行前进行检查C. 防治对内存的非法入侵D. 采用半编译和半解释型执行模式-----------------选择:D8. 下列选项中不属于Java核心包的一项是_______。
A. javax.namingB. javax.rmiC. javax.soundD. java.math-----------------选择:D9. 下列关于类、包和源文件的叙述中,不正确的一项是_______。
奥鹏14秋《Java语言程序设计》作业3满分答案
B. Visual Basic
C. C++
D. C
?
正确答案:D
4.下列特点中,是Java虚拟机执行的特点之一的是_______。
A.字节代码
B.多进程
C.静态链接
D.编译
?
正确答案:A
5.要激活一个Java小程序Applet,需要有_______。
A. .class文件
B. .exe文件
C. .html文件
D. .java文件
?
正确答案:C
6.在Java中,程序先由编译器转换为_______。
A.机器码
B.标准字节代码
C.汇编程序
D.标准比特代码
?
正确答案:B
7.下列说法中,正确的一项是_______。
A. Java语言是以类为程序的基本单位的
B. Java语言是部分大小写的
C.多行解释语句必须以//开始
14秋《Java语言程序设计》作业3
一,单选题
1.下列哪一项不属于面向对象程序设计的基本要素?
A.类
B.对象
C.方法
D.安全
?
正确答案:D
2.在创建Applet应用程序时,需要用户考虑的问题是_______。
A.如何创建窗口
B.绘制的图形在窗口中的位置
C.程序的框架
D.事件处理
?
正确答案:B
3.下列不属于面向对象语言的是_______。
D.在Java语言中,公共类的源文件和该类名可以不相同
?
正确答案:A
8. Java语言使用_______进行解释执行。
A.字节码
B.机器码
java程序设计练习题
《java程序设计》1.填空题(1)Java程序编译成(class )文件(2)Java程序在(JVM )上执行(3)Java程序的执行方式是(半编译和半解释型)执行的(4)在Java程序中,创建对象的操作是(new )(5)在Java语言中,指明一个类从父类派生的关键字是(extends )(6)线程是进程中的一个执行(单元)(7)在Java语言中,指代父类的关键字是(super )(8)表明一个变量是数组的符号是([] )(9)在Java程序中,用关键字(import )引入其它文件中的类(10)在Java程序中定义包的关键字为(package )2.简答题(1)简述Java语言的特点。
答:Java语言的特点有以下几点:1.简单性。
2.面向对象。
3.平台无关性。
4.可移植性。
5.解释性。
6.离性能。
7.动态性。
8.可靠性和安全性。
9.多线程。
10.分布式处理。
(2)简述面向对象程序设计的三大基本特点。
(3)答:封装性:封装性是指将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类。
封装隐藏了对象的具体实现,当要操纵对象时,只需调用其中的方法,而不用管方法的具体实现。
继承性:一个类继承另一个类,继承者可以获得被继承类的所有方法和属性,并且可以根据实际的需要添加新的方法或者对被继承类中的方法进行覆写,被继承者称为父类或者超类,继承者称为子类或导出类,继承提高了程序代码的可重用性,Java中一个子类只能继承一个父类,Object类是所有类的最终父类。
多态性:多态性是指不同的对象对同一事物而做出的相同行为,一个类A可以指向其自身类和其导出类,一个接口可以指向其接口实现类,在方法参数中,使用多态可以提高参数的灵活性。
(4)解释Java程序跨平台的原理。
答:ava源码--->JVM虚拟机编译---->.class文件--->各个平台的Java虚拟机加载执行.class文件Java程序实际是在Java虚拟机(JRE是软件实现)中运行,Java虚拟机类似一个模拟执行环境,在不同的操作系统上拥有不同的Java虚拟机实现,但是这些Java虚拟机遵循统一的规范来解释class文件,并将class文件中的指令转换为本地操作系统对应的指令,这样就实现了相同的class文件,可以通过Java虚拟机转换为对应操作系统上的对应指令,实现class 文件,也就是Java程序的跨平台性。
java 多线程练习题
java 多线程练习题Java多线程练习题在Java中,多线程是非常常见和重要的概念。
通过使用多线程,我们可以实现并发处理和同时执行多个任务。
为了熟悉和掌握多线程的用法,下面将给出一些Java多线程的练习题。
1. 编写一个Java程序,创建两个线程,分别输出从1到50和从51到100的数字。
确保两个线程交替输出数字,即输出的结果应为:1,51,2,52,3,53...,99,100。
2. 编写一个Java程序,创建三个线程,分别输出字符A、字符B和字符C。
确保三个线程按顺序交替输出字符,即输出的结果应为:ABCABCABC...3. 编写一个Java程序,模拟购票系统。
假设有100张票,多个窗口同时售票,要求保证售出的票没有重复,即每张票只能卖给一个人。
4. 编写一个Java程序,使用多线程实现生产者-消费者模型。
假设有一个信号灯,生产者线程可以向信号灯放置数据,消费者线程可以从信号灯中取走数据。
要求生产者线程和消费者线程交替执行,确保生产者放置数据后,消费者才能取走数据。
5. 编写一个Java程序,使用多线程计算1到100之间所有数字的和。
要求将任务分成10个子任务,由10个线程并行地执行,并最后将子任务的计算结果合并得到最终结果。
6. 编写一个Java程序,实现一个简单的线程池。
线程池中包含固定数量的线程,多余的任务将会排队等待执行。
当新的任务到达时,如果有空闲线程,则立即执行,否则任务将会进入等待队列。
以上是一些Java多线程的练习题,通过完成这些练习题,您将熟悉和掌握多线程的基本用法和常见应用场景。
希望这些练习题对您的学习和实践有所帮助!。
Java 设计模式练习题及答案
Java 设计模式练习题及答案在学习Java设计模式时,练习题是非常重要的一部分。
通过练习题的实践,可以更好地理解和应用设计模式,提升自己的编程能力。
本文将介绍一些Java设计模式练习题,并提供相应的答案,希望能对读者在设计模式的学习和实践中有所帮助。
一、题目一:单例模式——懒汉式实现问题描述:请编写一个线程安全的懒汉式单例模式。
解答示例:```javapublic class Singleton {private static Singleton instance;private Singleton() {}public static synchronized Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}}```二、题目二:工厂模式——简单工厂实现问题描述:请使用简单工厂模式实现一个计算器,支持加减乘除四种运算。
解答示例:```javapublic class CalculatorFactory {public static Calculator createCalculator(String operator) {Calculator calculator = null;switch (operator) {case "+":calculator = new AddCalculator();break;case "-":calculator = new SubtractCalculator();break;case "*":calculator = new MultiplyCalculator();break;case "/":calculator = new DivideCalculator();break;}return calculator;}}public interface Calculator {double calculate(double num1, double num2);}public class AddCalculator implements Calculator {@Overridepublic double calculate(double num1, double num2) { return num1 + num2;}}public class SubtractCalculator implements Calculator { @Overridepublic double calculate(double num1, double num2) {return num1 - num2;}}// MultiplyCalculator和DivideCalculator类似,省略代码// 使用示例Calculator calculator = CalculatorFactory.createCalculator("+");double result = calculator.calculate(2, 3); // 结果为5```三、题目三:观察者模式问题描述:请设计一个简单的气象站系统,该系统需要实现以下功能:1. 可以添加观察者并实时更新气象数据;2. 当气象数据发生变化时,自动通知所有观察者进行更新。
java程序设计 实训题目
java程序设计实训题目
以下是一些Java程序设计实训题目,供您参考:
1. 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除
运算。
要求使用面向对象的思想,将计算器的功能封装在一个类中,并提供一个主函数用于测试。
2. 编写一个Java程序,实现一个简单的文本编辑器,可以打开、保存、编
辑和打印文本文件。
要求使用Java的I/O流和文件操作类库,以及图形用
户界面库(如Swing或JavaFX)。
3. 编写一个Java程序,实现一个简单的聊天室,支持多人同时在线聊天。
要求使用Java的多线程机制和网络编程技术(如Socket编程),并实现基本的用户注册、登录和消息发送功能。
4. 编写一个Java程序,实现一个简单的数据库管理系统,可以创建、删除、查询和更新数据库中的记录。
要求使用Java的JDBC API连接数据库,并
使用SQL语句进行操作。
5. 编写一个Java程序,实现一个简单的图像处理软件,可以对图像进行缩放、旋转、裁剪和滤镜处理。
要求使用Java的图像处理库(如Java Advanced Imaging API)和图形用户界面库(如Swing或JavaFX)。
6. 编写一个Java程序,实现一个简单的邮件发送系统,可以发送HTML格式的邮件。
要求使用Java的邮件发送库(如JavaMail API),并支持SMTP协议和附件上传功能。
7. 编写一个Java程序,实现一个简单的在线考试系统,可以随机生成试题、计时考试时间并自动评分。
要求使用Java的多线程机制和网络编程技术(如Socket编程),并实现基本的用户登录、答题和提交功能。
JAVA语言程序设计-国家开放大学电大学习网形考作业题目答案
JAVA语言程序设计一、单选题1.()提供给上层应用进行开发和构建应用的基础类库。
A.JDKB.JREC.JVMD.Java应用正确答案: A2.Java程序在编译之后,以()方式被Java虚拟机执行。
A.源代码B.二进制C.字节码D.文本正确答案: C3.下列()移动开发平台使用Java语言作为官方推荐开发语言。
A.SymbianB.IOSC.WindowsD.Android正确答案: D4.Java语言中用来编译Java程序的命令是()。
A.java.exeB.javaw.exeC.javap.exeD.javac.exe正确答案: D5.下列()是合法的标识符。
modityPriceB.num_greenC.23667D.{printOut}正确答案: B6.下列()不是保留字A.byteB.returnC.num_blueD.private正确答案: C7.下列关于float类型float f=5.2的说法,正确的是()。
A.正确B.错误,精度不够,需要强制类型转换floatC.错误,变量声明错误D.错误,可以考虑使用int类型正确答案: C8.下列代码执行的结果中m和n的值分别为()。
int m = 50, n=160; int tmp =m; m=n; n=tmp 回答错误A.50/160B.50/50C.160/50D.160/160正确答案: C9.表达式29/3*3的值是()。
A.29B.27.999C.27D.27.0正确答案: C10.执行下列语句: int m=15; int val =m- -; val的值是()。
A.13B.14C.15D.16正确答案: C11.执行下列语句: int m=15; int val =--m; val的值是()。
A.13B.14C.15D.16正确答案: B12.编译运行以下代码段后,关于输出结果正确的是()。
public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9:9));}}A.value is 99.9B.value is 9C.value is 9.0D.编译错误正确答案: C13.下列代码段运行结果为()。
java程序设计1-6章习题作业
change(obj);
System.out.println(obj.x);
}
public static void change(PassRef obj)
{
obj.x=3;
}
}
运行结果:
4.
abstract class Shape {
abstract void display();
}
A没有意义
B表示后面是方法的输出值
C表示方法可能会抛出异常
D方法的标志,每个方法都必须有
10.有如下接口定义,合法的是:
public interface test{
//方法添加处
}
A private String justtest();
B public String justtest();
C protected String justtest();
象
3)3成员方法
publicvoid switchOn() //开灯,即将灯的状态置为开
publicvoidswitchOff() //关灯
public void printInfo() //输出灯的瓦数信息和开关状态
(2)编写1个TubeLight类,该类是对管状灯的描述,它继承于Light类。还拥有:
System.out.println(sU);
String subS = s.substring(11);
System.out.println(subS);
}
}
运行结果:
3.
class PassRef
{
int x;
public static void main(String [] args)
南开大学19秋学期《Java语言程序设计》在线作业答案3
【南开】19秋学期(1709、1803、1809、1903、1909)《Java语言程序设计》在线作业-0003 试卷总分:100 得分:100
一、单选题 (共 30 道试题,共 60 分)
1.下列关于JAVA语言特性的描述中,错误的是( )。
A.支持多线程操作
B.支持单继承和多继承
C.JAVA程序可以直接访问Internet上的对象
D.JAVA程序与平台无关
[仔细分析上述试题,并完成选择]
正确答案:B
2.StringBuffer reverse();表示( )。
A.字符串的赋值
B.字符串清空
C.字符串反转
D.字符串删除
[仔细分析上述试题,并完成选择]
正确答案:C
3.下列对继承的说法,哪个是正确的?
A.子类能继承父类的非私有方法和状态
B.子类能继承父类的所有方法和状态
C.子类只能继承父类的方法,而不继承状态
D.子类只能继承父类public方法和状态
[仔细分析上述试题,并完成选择]
正确答案:B
4.与Java应用程序(Application)不同,Java Applet程序的运行,需要得到( )的支持。
A.记事本(Notepad)软件
B.数据库服务器
C.操作系统
D.客户端浏览器
[仔细分析上述试题,并完成选择]
正确答案:D
5.若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于( )。
A.空方法
B.最终方法
C.接口方法
D.抽象方法
[仔细分析上述试题,并完成选择]
正确答案:D
6.下列叙述中,正确的是()。
线程练习题
线程练习题一、选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明线程类?A. publicB. staticC. synchronizedD. extends Thread2. 以下哪个方法用于启动线程?A. start()B. run()C. stop()D. destroy()3. Java中,线程的优先级范围是多少?A. 0-5B. 1-10C. 0-10D. 1-1004. 在Java中,哪个类提供了创建线程的另一种方式?A. ThreadB. RunnableC. ExecutorD. Callable5. 线程的生命周期中,哪个状态表示线程已经完成执行?A. NEWB. RUNNABLEC. TERMINATEDD. BLOCKED6. 在Java中,哪个方法可以暂停线程的执行?A. sleep()B. yield()C. stop()D. wait()7. 以下哪个是线程同步的方法?A. synchronizedB. volatileC. transientD. final8. 哪个方法可以中断线程?A. stop()B. interrupt()C. suspend()D. destroy()9. 在Java中,哪个类提供了线程池的功能?A. ThreadB. RunnableC. ExecutorServiceD. Callable10. 以下哪个方法可以获取当前线程的名称?A. getName()B. getPriority()C. getId()D. isAlive()二、简答题(每题10分,共40分)1. 简述线程和进程的区别。
2. 描述Java中线程的生命周期。
3. 解释什么是死锁,并给出避免死锁的策略。
4. 举例说明如何使用Java的线程池。
三、编程题(每题20分,共40分)1. 编写一个Java程序,创建两个线程,一个线程打印数字序列0到10,另一个线程打印字母序列'A'到'J'。
Java作业习题
一、Java语言介绍(一)填空题1.Java语言使用的是字符集,每个字符在内存中占16位。
2.Java2平台的三个成员分别是:、、。
(二)简答题1.Java2平台主要有哪几个成员?各自应用于什么场合?二、Java程序设计基础(一)填空题1.在一个Java源文件中定义了2个类,每个类中都有5个方法,编译该Java源文件时产生个字节码文件,其扩展名是。
答案: 2,class 2.Java平台由两个组件构成:、,从而将程序与硬件分离实现跨平台功能。
3.Java源文件中最多只能有一个类,此类必须和源文件名同名,其他类的个数不限。
4.在命令行状态,使用对Java源程序进行编译,使用对字节代码进行解释执行。
(二)选择题1.下面main( )方法的定义哪些是正确的()。
A.public static void main(String args) {}B.public static void main(String[] ) {}C.public static void main(String[] args) {}D.public static void main(string[] args) {}2.下列方法定义中方法头不正确的是().A.public int method( ) {…}B.public static int method(double y ) {…}C.void method( ) {…}D.public static method( double a) {…}3.指出下列哪些不是与方法public void add(int a) { }重载()。
A.public int add(int a)B.public void add(long a)C.public void add(int a, int b)D.public void add(float a)4.下列关于静态方法的描述中,错误的是()A. 在类体内说明静态方法使用关键字staticB. 静态方法只能处理静态变量或调用静态方法C. 静态方法不占用对象的内存空间,非静态方法占用对象的内存空间D. 静态方法只能用类名调用5.只包含一个带public修饰的Java类Abc的Java程序的正确命名是()A. AbcB. Abc.javaC. abc.javaD. 一个任意的标识符后带后缀.java(三)补充代码题1.下面两段程序均实现打印输出“Hello World!”字符串,读懂程序并填空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择题:
1、(3分)下列说法中错误的一项是()
A、线程创建之后,可以从一个线程组转移到另一个线程组
B、新建的线程默认情况下属于其父线程所属的线程组
C、Java中的第一个线程都属于某个线程组
D、线程只能在其创建时设置所属的线程组
2、(3分)下列说法中错误的一项是()
A、线程是一个程序的单个执行流
B、多线程是指一个程序的多个执行流
C、线程就是程序
D、多线程用于实现并发
3、(3分)下列说法中错误的一项是()
A、java的线程体由Thread类的run()方法定义
B、java中每一个线程都有自己的名字
C、在程序中通过调用Thread类的run()方法创建线程对象
D、线程创建时已经确定了提供线程体的对象
4、(3分)在以下哪种情况下,线程进入就绪状态?()
A、线程调用了notify()方法时
B、线程调用了sleep()方法时
C、线程调用了yield()方法时
D、线程调用了join()方法时
5、(3分)下列说法中错误的一项是()
A、所有的对共享数据的访问都是临界区
B、临界区必须使用syschronized标识
C、共享数据的访问不一定全部使用synchronized加锁
D、共享数据的所有访问都必须使用synchronized加锁
6、(3分)下列有关线程的叙述中正确的一项是()
A、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行
B、当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面
C、一旦一个线程被创建,它就立即开始运行
D、一个线程可能因为不同的原因而终止并进入终止状态
7、(3分)下列关于Thread类提供的线程控制方法的说法中,错误的一项是()
A、在线程A中执行线程B的join()方法,则线程A等待直到B执行完成
B、currentThread()方法返回当前线程的引用
C、若线程A调用方法isAlive()返回值为true,则说明A正在执行中
D、线程A通过调用interrupt()方法来中断其阻塞状态
8、(3分)下列哪个方法可以使线程从运行状态进入其他阻塞状态()
A、start
B、wait
C、sleep
D、yield
9、(3分)
线程调用sleep()方法后,该线程将进入以下哪种状态?()
A、死亡状态
B、阻塞状态
C、就绪状态
D、运行状态
10、(3分)Thread类位于下列那个包中?()
A、java.io
B、java.awt
C、java.util
D、ng
11、(3分)下列说法中错误的一项是()
A、新建的线程调用start()方法就能立即进入运行状态
B、线程操作的数据来自Runnable实例
C、线程从传递给Runnable实例run()方法开始执行
D、一个线程是一个Thread类的实例
填空题:
12、(4分)线程的优先级用1~10之间的整数来表示,其中 10 代表优先级最高。
13、(4分)在Thread类中,提供了一个start()方法,该方法用于开启一个新线程,当新线程启动后,系统会自动调用方法。
14、(4分)
线程类型中的yield()方法只能让相同优先级或者更高优先级、处于就绪状态的线程获得运行机会。
15、(4分)
要将某个线程设置为后台线程,需要调用该线程的setDaemon(true)方法,该方法必须在该线程启动之前调用。
判断题:
16 、(3分)进程是一人内核级的实体,而线程是一个用户级的实体。
(T)
17 、(3分)多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序也是确定的。
(F)
18 、(3分) 线程结束等待或者阻塞状态后,会进入运行状态。
(F)
19 、(3分) 当创建一个线程对象时,该对象表示的线程就立即开始运行。
( F )
20 、(3分)线程的优先级是在Thread类的常数MIN_PRIORITY 和 MAX_PRIORITY 之间的一个值。
( T)
21 、(3分)在Java程序中,run()方法的实现有两种方式有实现Runnable接口和继承Thread 类。
(T )
22 、(3分)一个进程可以包含多个线程。
(T )
23 、(3分)多线程程序设计的含义是可以将一个程序任务分成几个并行的任务。
( T )
24 、(3分) 静态方法不能使用synchronized关键字来修饰。
( F)
25 、(3分) 同步代码块中的锁对象可以是任意类型的对象。
()
26 、(3分) 如果前台线程全部死亡,后台线程也会自动死亡。
(T )
问答题:
27 、(10分)
在java中创建线程有哪几种方式?
第一种是继承Thread类,然后实现它的run方法,例如:
public class mythread extends Thread
{
public class run(){您的代码}
}
第二种就是实现Runnable这个接口,要知道实现一个接口必须实现他的接口方法,也就是run()方法例如:
public class mythread implements Runnable
{
public class run(){您的代码}
}
两种方法的区别就是,第一种的灵活性稍微差了点,因为java里面只能继承一个类
28 、(8分)启动一个线程是用run() 还是start()? 为什么?。