java多线程测试试题

java多线程测试试题
java多线程测试试题

java多线程试题

————————————————————————————————作者:————————————————————————————————日期:

狂翔IT工作室多线程试程

一.选择题

1.下列说法中,正确的一项是() A

A.单处理机的计算机上,2个纯种一官半职直不能并发执行

B.单处理机的计算机上,2个线程实际能够并发执行

C.一个线程可以包含多个线程

D.一个进程只能包含一个线程

2.下列说法中错误的一项是()A

A.线程就是程序

B.线程是一个程序的单个执行

B.多线程是指一个程序的多个执行流D.多线程用于实现并发

3.下列哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态(D)

A.等待阴塞状态下的线程被notify()唤

B.等待阻塞状态下的纯种被interrput()中断

C.等待时间到

D.等待阻塞状态下的线程调用wait()方法

4.下列哪个方法可以使线程从运行状态进入其他阻塞状态(A)

A.sleep

B.wait

C.yield

D.start

5.下列不是进程组成部分的一项是(D)

A.代码

B.数据

C.内核状态

D.显示器

6.下列哪一个不属于java线程模型的组成部分(D)

A.虚拟的CPU

B.虚拟CPU执行的代码

C. 代码所操作的数据

D.执行流

7.下列说法中错误的一项是(C)

A.Java中的第一个线程都属于某个线程组

B.线程只能在其创建时设置所属的线程组

C.线程创建之后,可以从一个线程组转移到另一个线程组

D.新建的线程默认情况下属于其父线程所属的线程组

8.下列不属于线程组成部分的一项是(C)

A.程序计数器

B.堆栈

C. 进程地十空间中的代码

D.栈指针

9.下列关于JA V A线程模型的说法中,错误的一项是(A)

A.Java线程模型包括计算机的CPU

B.代码可以与其他线程共享

C. 数据可以被多个线程共享

D.线程模型在https://www.360docs.net/doc/5c4139325.html,ng.Thread类中被定义

10.下列说法中错误的一项是(D)

A.一个线程是一个Thread类的实例

B.线程从传递给纯种的Runnable实例run()方法开始执行

C.线程操作的数据来自Runnable实例

D.新建的线程调用start()方法就能立即进入运行状态

11.下列关于Thread类提供的线程控制方法的说法中,错误的一项是(D)

A.在线程A中执行线程B的join()方法,则线程A等待直到B执行完

B.线程A通过调用interrupt()方法来中断其阻塞状态

C.若线程A调用方法isAlive()返回值为true,则说明A正在执行中

D.currentThread()方法返回当前线程的引用

12.下列说法中,错误的一项是()

A.对象锁在synchronized()语句执行完之后由持有它的线程返还

B.对象锁在synchronized()语句中出现异常时由持有它的线程返还

C.当持有锁的线程调用了该对象的wait()方法时,线程将释放其持有的

D.当持有锁的线程调用了该对象的构造方法时,线程将释放其持有的锁

13.下面的哪一个关键字通宵用来对对象的加锁,从而使得对对象的访问是排他的 A

A.sirialize B transient C synchronized D static

14.下列关于线程的说法以中,正确的一项是(D)

A.由同一类创建的多个线程都同时运行结束

B.创建线程只能通过继承https://www.360docs.net/doc/5c4139325.html,ng.Thread类

C.调用suspend()方法暂停的一个线程将不会再被重新执行

D.程序的执行完毕与超级线程(daemon threads)无关

15.下列说法中错误的一项是(C)

A.可串行化的类必须实现Serializable接口

B.可串行化的类中的静态变量可以不被串行化

C.private数据访问权限能够限制数据不被串行化

D.对象串行化使用java语言提供的默认机制

16.下列说法中错误的一项是(C)

A.可串行化的类必须实现Serializable接口

B.可串行化的类中的静态变量可以不被串行化

C.private数据访问权限能够限制数据不被串行化

D.对象串行化java语言提供的默认机制

17.下列说法中正确的一项是(A)

A.代码和数据是进程的组成部分

B.代码和数据是线程的组成部分

C. 进程是轻型的线程

D.线程中包括线程

18. 下列说法中错误的一项是(C)

A.java的纯种体由Thread类的run()方法定义

B.线程创建时已经确定了提供线程体的对象

C.在程序中通过调用Thread类的run()方法创建线程对象

D.java中每一个线程都有自己的名字

19. 下列说法中错误的一项是(B)

A.共享数据的所有访问都必须使用synchronized加锁

B.共享数据的访问不一定全部使用synchronized加锁

C.所有的对共享数据的访问都是临界区

D.临界区必须使用syschronized标识

20.下列有关线程的叙述中正确的一项是(B)

A.一旦一个线程被创建,它就立即开始运行

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

C.当一个线程因为抢占机制而停止运行时,它被放在可运行队列的前面

D.一个线程可能因为不同的原因而终止并进入终止状态

二.填空题

1. 在操作系统中,被称做轻型的进程是线程

2. 多线程程序设计的含义是可以将一个程序任务分成几个并行的任务

3. 在Java程序中,run()方法的实现有两种方式:实现Runnable接口和继承Thread类

4.线程的高度是指在单个CPU上以某种顺序运行多个线程

5.多个线程并发执行时,各个线程中语句的执行顺序是确定的,但是线程之间的相对执行顺序是不确定的

6.Java中的对象锁是一种独占的排他锁

7.程序中可能出现一种情况:多个纯种互相等待对方持有的锁,而在得到对方的锁之前都不会释放自己的锁,这就是死锁.

8. notyfyAll() 方法将对象wait pool中的所有纯种都移到lock pool中。

9.在一个线程中,建议使用标志,而不使用stop() 方法终止另一个线程。

10.Java线程组把一组线程看做一个对象进行统一处理。

11.进程是一个内核级的实体,而线程是一个用户级的实体

12.在Java线程模型中的数据和代码构成了线程体。

13.线程的优先级是在Thread类的常数MIN_PRIORITY 和MAX_PRIORITY

之间的一个值

14.Java的线程高度策略是基于优先级的抢占式调度。

15.处于新建状态的线程可以使用的控制方法是start() 和stop() 。

16.一个进程可以包含多个线程

17.多任务操作系统运行多个进程来并发地执行多个任务

18.线程是由表示程序运行状态的寄存器组成的

19.多线程允许单个程序创建多个并行执行的线程来完成多个子任务

20.Thread类中表示最高优先级的常量是getPriority() ,而表示最低优先级的常量是setPriority(0 .

三.简答题

1. 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

答:主要相同点: Lock能完成synchronized所实现的所有功能

主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。

2.理解几个概念对象锁、sleep、wait、notify、notifyAll

对象锁:每个对象都有对象锁,当某个线程进入用synchronized定义方法时,就获得了当前类对象(方法所属的类的对象)的锁,其他线程就不能再获得该锁,直到线程释放该锁。一个类对象有一个对象锁,多个同步方法公用一个对象锁。

sleep:是当前线程处于休眠状态,将对cpu的控制权交给其他线程,但不释放当前对象的锁,其他线程可以获得cpu,但不能进入当前线程控制的对象锁。

wait:与sleep的区别是,它会释放对象锁,其他线程可以进入该同步块。

notify:进入当前同步块的线程调用wait方法变成休眠状态的线程,notify将该线程变成等待状态。

notifyAll:进入当前同步块的线程调用wait方法变成休眠状态,notifyAll使所有休眠线程变成等待状态。

一个类中有多个同步方法,进入任意一个同步块都将获得该对象锁,由于wait方法使进入同步块的线程休眠,notify只能唤醒所有被休眠线程中的一个,notifyAll可以唤醒所有休眠线程。通常线程的通信通过wait,notifyAll和wait条件来实现。

3.java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? stop() 和suspend() 方法为何不推荐使用?

答:有两种实现方法,分别是继承 Thread类与实现Runnable接口

用synchronized关键字修饰同步方法

反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用suspend(),而应在自己的Thread 类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。

4. sleep() 和 wait() 有什么区别 ?

答: sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

5. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。

答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

6. 启动一个线程是用 run() 还是 start()?

答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

7.当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法 ?

答:不能,一个对象的一个synchronized方法只能由一个线程访问。

8. 请说出你所知道的线程同步的方法。

答: wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

9. 多线程有几种实现方法 , 都是什么 ? 同步有几种实现方法 , 都是什么 ?

答:多线程有两种实现方法,分别是继承 Thread类与实现Runnable接口

同步的实现方面有两种,分别是synchronized,wait与notify

10.线程的基本概念、线程的基本状态以及状态之间的关系

答:线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。

Java中的线程有四种状态分别是:运行、就绪、挂起、结束

java测试试卷(二)

JAVA语言基础内部测试题 一.单项选择题(请选择最符合题目要求的答案)(每题2分) 1.定义类头时,不可能用到的关键字是( )。 A) class B)private C)extends D)public 2.下列类定义中,不正确的是( )。 A)class x { .... } B)class x extends y { .... } C)static class x implements y1,y2 { .... } D)public class x extends Applet { .... } 3.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( )。 A)float A a; B)public A a=A( ); C) A a=new int( ); D) A a=new A( ); 4.有一个类A,以下为其构造方法的声明,其中正确的是( )。 A)public A(int x){...} B)static A(int x){...} C)public a(int x){...} D)void A(int x){...} 5.下列语句哪一个正确() A)Java程序经编译后会产生machine code B)Java程序经编译后会产生byte code C)Java程序经编译后会产生DLL D)以上都不正确 6.下列选项中,定义接口MyInterface的语句正确的是:() A)interface MyInterface{ } B) implements MyInterface { } C) class MyInterface{ } D) implements interface My{ } 7.如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定 义如下:void mymethod(int a),则子类方法的定义不合法的是:() A)public void mymethod(int a) B)protected void mymethod(int a) C)private void mymethod(int a) D)void mymethod(int a) 8.在异常处理中,如释放资源、关闭文件、关闭数据库等由( )来完成。 A.try子句 B.catch子句 C.throw子句 D.finally子句 9.给定以下JAVA代码,这段代码编译运行后输出的结果是() public class Test { public static int aMethod(int i) throws Exception { try{ return i/10; }catch(Exception ex){ throw new Exception ("exception in a aMothod"); }finally{ System.out.print("finally"); } }

JAVA测试题(三套含答案)

1.在单一文件中import、class和package的正确出现顺序是:A A.package, import, class B.class, import, package C.import, package, class D.package, class, import 2.public static void main方法的参数描述是:A,D A.String args[] B.Strings args[] C.String args D.String []args 3.下面哪行代码会在编译的时候出现错误或警告:A,B,C,D A.float f=; B.char c="a"; C.byte b=257; D.boolean b=null; E.int i=10; 4. 编译,运行下列代码后的结果是:D public class Test { public static void main (String args []) { int age; age = age + 1; "The age is " + age); } } A.编译,运行后没有输出 B.编译,运行后输出:The age is 1 C.能通过编译,但运行时产生错误 D.不能通过编译 4.下面那些关键字不是JAVA的关键字B A if B then C goto D while E case 5.下面那些不是合法的变量定义:A,F C. _whatavariable D. _3_

6.内部数据类型byte的取值范围是B - 65, 535 B.(–128) – 127 C.(–32,768) – 32,767 D.(–256) – 255 7.下列哪些表达式返回true AB A."john" == "john" B."john".equals("john") C."john" = "john" D."john".equals(new Button("john")) 8.声明公用的abstract方法的正确格式是A A.public abstract void add(); B.public abstract void add() {} C.public abstract add(); D.public virtual add(); 9.下面的代码能打印出的结果为:C int i=1; switch (i) { case 0: "zero"); break; case 1: "one"); case 2: "two"); default: "default"); } B.one, default C.one, two, default D.default 10.下面的代码能打印出的结果为:B int i=9; switch (i) { default: "default"); case 0:

Java多线程习题

Java 多线程习题 知识点: Java 的多线程,实现多线程的两种方法,线程控制、调度方法 一、选择题 1、什么原因可导致线程停止执行。 ( ) A. 线程调用了wait()方法; B. 线程调用了yield()方法; C. 线程调用了pause()方法; D. 线程调用了sleep() 方法。 2、哪个方法是实现Runnable 接口所需的? A. wait() B . run() C . stop() D . update() E . resume() 3、以下代码的调试结果为?( ) public class Bground extends Thread{ public static void main(String argv[]){ Bground b = new Bground(); b.run(); } public void start(){ for (int i = 0; i <10; i++){ System.out.println("Value of i = " + i); } } } A. 编译错误,没有定义线程的run方法; B. 由于没有定义线程的run方法,而出现运行错误; C. 编译通过,运行输出values 0 to 9 D. 编译通过,运行无输出 4、有关线程的叙述正确的有: ( ) A. 通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。 B. 可以获得对任何对象的互斥锁定。 C. 线程通过调用对象的synchronized 方法可取得对象的互斥锁定。 D. 线程调度算法是平台独立的。 5、以下哪个是线程类的方法? A. yield() B. sleep(long msec) C. go() D. stop() 6、以下哪个最准确描述synchronized 关键字?

《Java面向对象编程》期末考试试卷A卷

第 1 页,共 1 页 学校 班级 学号 姓名______________________ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆装◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆订◆◆◆◆◆◆◆◆◆◆◆◆◆线◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 淄博职业学院2013-2014学年第一学期 《Java 面向对象编程》期末考试试卷A 卷 使用班级:P12软件2班 命题教师:李敬文 考核方式:开卷上机考试 考试时间:100分钟 说明:上交文件夹名称或者压缩文件名称为姓名+学号(2位),如:张三06 一、 编程题:本题共1题,共30分。 实现程序Exam01 1.具体参考界面如下,具体要求: 2.完成按钮打开事件,能够对所选文件的内容读取到文本域中; 3.完成按钮复制事件,能够将源文件复制目标文件中; 4.完成按钮退出事件,能够退出应用程序。 二、 编程题:本题共1题,共30分。 实现程序Exam02 设计一个模拟银行存款和取款的程序,能够实现存款(存入数据小于1000的随机数),能够实现取款(取款小于1000的随机数),要求取款时,输出存款数、余额数,当余额小于0时,输出“余额不足,正在等待存款……”,当存款时,输出存款数、余额数。 三、编程题:本题共1题,共40分 实现记事本程序Exam03 1.具有菜单功能,包括:文件,编辑、帮助; 2.文件菜单中有子菜单:新建、打开、保存、分隔线、退出; 3.编辑菜单中有子菜单:剪切、复制、粘贴; 4.实现菜单功能:新建功能--->>能够新建一个子窗体;打开功能--->>打开一个文件,并显示内容;剪切功能--->>实现对选定文本的剪切功能;复制功能--->>实现对选定文本的复制功能;粘贴功能--->>实现对选定文本的粘贴功能。 题号 一 二 三 四 …… 总分 应得分 100 实得分 得分 阅卷人 得分 阅卷人 得分 阅卷人

java考试试卷及答案

JAVA考试试卷及答案 选择题 3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。 ()() ()() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstractfinalclassHI{···}B)abstractprivatemove(){···} C)protectedprivatenumber;D)publicabstractclassCar{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的?B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.StringtoString() B.voidnotify() C.voidnotifyAll() D.voidwait() 11、给出下面代码:C publicclassPerson{ staticintarr[]=newint[10]; publicstaticvoidmain(Stringa[]) { } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[]value,intoffset,intcount) B.String(int[]codePoints,intoffset,intcount) C.String(Stringoriginal) D.String(StringBufferbuffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能 B.包存储在类库中 C.包是类的容器D.上述说法都不对

《JAVA语言程序设计》期末考试试题及答案(2)

《JA V A语言程序设计》期末考试试题及答案 一、单选题 1、下列程序段执行后的结果是( A )。 String s = new String("abcdefg"); for (int i=0; i

面向对象程序设计(JAVA)期末考试试卷(A卷)

面向对象程序设计 (J A V A)期末考试试卷 (A卷) -CAL-FENGHAI.-(YICAI)-Company One1

课程代码: 座位号: 新疆大学20 -20 学年度第二学期期末考试 《面向对象程序设计》试卷 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 一、单选题(10小题,共10分) 1.下列 选项中,用于在定义子类时声明父类名的关键字是 【 】 A .interface B . package C . extends D . class 2.在以下哪种情况下可以获得缺省构造器 【 】 A .当作任何类的定义时 B .当类没有其它构造器时 C .当定义至少一个构造器的时 D .从不需要 3.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量【 】 A .不能引用,必须改名,使它们的名称不相同 B .在成员变量前加this ,使用this 访问该成员变量 C .在成员变量前加super ,使用super 访问该成员变量 D .不影响,系统可以自己区分 4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【 】 A .try 子句 B .catch 子句 C .finally 子句 D .throw 子句 5.下面哪个流类属于面向字符的输入流 【 】 A .BufferedWriter B .FileInputStream C .ObjectInputStream D .InputStreamReader 6.在Java 中,由Java 编译器自动导入,而无需在程序中用import 导入的包是 【 】。 A .java.applet B .java.awt C .java.util D .https://www.360docs.net/doc/5c4139325.html,ng

分析《JAVA程序设计》期末考试试题_(二)

《JAVA程序设计》期末考试试题(二) 一.判断题 1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。(×)分析: java中没有回收(FREE)内存的功能, 它会自动回收的, 只要把对象close掉就等着回收就行了. 由于对象是使用new运算符动态分配的,java方法是自动为你的处理存储单元重新分配问题。完成这项工作的技术被称为无用单元收集(garbage collection)。它的工作原理:当不存在对一个对象的引用时,我们就假定不再需要那个对象了,那个对象所占有的存储单元可以被收回。在java中并不像在C++中一样需要明确地销毁对象。无用单元收集仅在偶尔执行程序时出现。它不会出现,是因为存在一个或多个不再使用的对象。还有,不同的Java运行时实现将会使用不同的无用单元收集方法,但是在大多数情况下,在编程时不必考虑它。如果一个对象正在持有某些非Java资源,如文件处理或窗口字符字体,那么Java提供了一种称为结束(finalization)的机制。 3.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。(×) 分析: 不对,JAVA虽然有垃圾回收机制,但是不能在指定的时间释放内存对象,只能在程序运行期间,当虚拟机空闲的时候回收。 4.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。(×)分析: 无返回类型 5.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch 中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。(√) 分析: 个人觉得原因是子类更加具体一些, 可以更好得描述这个异常, 所以会把子类写在前面, 如果把父类写在前面, 那么这个父类就会接受很多的异常了, 后面的子类就接收不到了6.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。(√) 7.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。(×) 分析: 左上角被确定为坐标的起点 8.静态初始化器是在其所属的类加载内存时由系统自动调用执行。(√) 9.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。(×) 分析: 并不是生成一个新对象, 只是引用相同而已, 真正的对象的空间是一样的. 二.单项选择题 1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?()A、String args B、String ar[] C、Char arg D、StringBuffer args[] 分析: 比较常见的是String[] args, 但是String args[]也是可以的, ar和args并没有什么区别. 2.以下关于继承的叙述正确的是()。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 3.paint()方法使用哪种类型的参数? () A、Graphics B、Graphics2D C、String D、Color 分析:这是GUI里面的, 不考.

JAVA程序设计期末考试题(多套含答案)

《JA V A程序设计》期末考试试题(五) 一、单选题 1、当某一线程正处于休眠状态,而另一个线程用Thread 类中的interrupt() 方法中断它时,抛出的异常类型是()。 A) IOException B) RuntimeException C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是( )。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录:e:\xxx\yyy\zzz C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是( )。 String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; int n = s.indexOf("#"); int k = s.indexOf("#", n+1); String s2 = s.substring(n+1, k); System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.java说法正确的是( )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3 B)102 C) 12 D)程序有编译错误 5、应用程序的main方法中有以下语句,则输出的结果是( )。

面向对象程序设计java语言程序设计期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3 个文件名与类名相同而扩展名为. class的字节码文件。

java多线程试题答案

多线程 一.选择题 1.下列说法中错误地一项是() A.线程就是程序.线程是一个程序地单个执行流 B.多线程是指一个程序地多个执行流.多线程用于实现并发 2.下列哪个一个操作不能使线程从等待阻塞状态进入对象阻塞状态() A.等待阴塞状态下地线程被()唤 B.等待阻塞状态下地纯种被()中断 C.等待时间到 D.等待阻塞状态下地线程调用()方法 3.下列哪个方法可以使线程从运行状态进入其他阻塞状态() A. 4.下列说法中错误地一项是() A.一个线程是一个类地实例 B.线程从传递给纯种地实例()方法开始执行 C.线程操作地数据来自实例 D.新建地线程调用()方法就能立即进入运行状态 5.下列关于类提供地线程控制方法地说法中,错误地一项是() A.在线程中执行线程地()方法,则线程等待直到执行完成 B.线程通过调用()方法来中断其阻塞状态 C.若线程调用方法()返回值为,则说明正在执行中 D.()方法返回当前线程地引用 6.下列说法中,错误地一项是() A.对象锁在()语句执行完之后由持有它地线程返还 B.对象锁在()语句中出现异常时由持有它地线程返还 C.当持有锁地线程调用了该对象地()方法时,线程将释放其持有地锁 D.当持有锁地线程调用了该对象地构造方法时,线程将释放其持有地锁 7.下面地哪一个关键字通常用来对对象地加锁,从而使得对对象地访问是排他地 A. 二.填空题 . 在操作系统中,被称做轻型地进程是线程 . 多线程程序设计地含义是可以将一个程序任务分成几个并行地任务 . 在程序中,()方法地实现有两种方式:实现接口和继承类.多个线程并发执行时,各个线程中语句地执行顺序是确定地,但是线程之间地相对执行顺序是不确定地 中地对象锁是一种独占地排他锁 .程序中可能出现一种情况:多个线种互相等待对方持有地锁,而在得到对方地锁之前都不会释放自己地锁,这就是死锁b5E2R。 .线程地优先级是在类地常数和之间地一个值 .处于新建状态地线程可以使用地控制方法是()和(). .一个进程可以包含多个线程 三.简答题

面向对象期末测试题(带答案).doc

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 … … …… …… …………………………装……………… …………订………………… …… …线 …… …… …… … …… …… …… …… …

C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:(D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?(B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是(D) A.private B.public C.protected D.final 8.方法内的形参:(B) A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:(A) A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?(B) A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

JAVA测试题汇总

1.在JAVA中,下列哪些说法是正确的(AC) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 2.下列标识符哪个是合法的(D) A.class B.$abc C.1234 D._name 3.下面哪些赋值语句是正确的?(AB) A. long test = 012; B. float f = -412;//float数值范围为-3.4*10的-38次幂到3.4*10的38次幂 C. int other = (int) true; //true是布尔类型系统会自动将ture转换成-1,false 转换成0 D. double d = 0x12345678;// 0x12345678是十六进制的整形数值 E. byte b = 128;//byte取值范围为(-2^7)~(2~7)-1即-128~127 long最大表示范围为:-263 ~ 263-1,即-9223372036854775808 ~ 9223372036854775807。 4.在Java中,下列语句不能通过编译的有(ABCD ) A. String s= “join”+ 3; B. int a= “join”+3; C. int a= ‘a’+5; D. float f=5+5.5; 5.设 a = 3,则表达式 (--a )<

面向对象技术java期末复习试卷

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的 源文件名是() A. B. teststudent .class C. D. 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的 public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: 正确写法如下: n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean 字符类型:char

java测试试卷二

类的继承习题 一、选择题 1. Java语言的类间的继承关系是( B )。 A) 多重的B) 单重的C) 线程的D) 不能继承 2. 以下关于Java语言继承的说法正确的是( C )。 A)Java中的类可以有多个直接父类B)抽象类不能有子类 C)Java中的接口支持多继承D)最终类可以作为其它类的父类 3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A 4. 下列选项中,用于定义接口的关键字是( A)。 A)interface B) implements C) abstract D) class 5. 下列选项中,用于实现接口的关键字是( B)。 A)interface B) implements C) abstract D) class 6. Java语言的类间的继承的关键字是( B )。 A) implements B) extends C) class D) public 7. 以下关于Java语言继承的说法错误的是( A )。 A)Java中的类可以有多个直接父类B)抽象类可以有子类 C)Java中的接口支持多继承D)最终类不可以作为其它类的父类 8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。 A) class M extends N B) class N implements M C) class M implements N D) class N extends M 9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。 A) class Aimplements B B) class B implements A C) class Aextends B D) class B extends A 10. 下列选项中,定义抽象类的关键字是( C)。 A)interface B) implements C) abstract D) class 11. 下列选项中,定义最终类的关键字是(D)。 A)interface B) implements C) abstract D) final 12. 下列选项中,哪个是java语言所有类的父类(C) A)String B) Vector C) Object D) KeyEvent 13. java语言中,用于判断某个对象是否是某个类的实例的运算符是(A) A)instanceof B) + C) isinstance D) && 14. 下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(B) A)public B) protected C) private D) final 15. 下列选项中,表示数据或方法只能被本类访问的修饰符是(C) A)public B) protected C) private D) final 16. 下列选项中,接口中方法的默认可见性修饰符是(A) A)public B) protected C) private D) final 17. 下列选项中,表示终极方法的修饰符是:(B) A)interface B) final C) abstract D) implements 18. 下列选项中,定义接口MyInterface的语句正确的是:(A) A)interface MyInterface{ } B) implements MyInterface { } C) class MyInterface{ } D) implements interface My{ } 19. 如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:(C) A)public void mymethod(int a) B) protected void mymethod(int a) C) private void mymethod(int a) D) void mymethod(int a) 二、填空题 1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏) 2. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)

Java考试题 答案解析

选择题(每题3分,共45分) 1、下列程序编译或运行的结果是。() D public static void main(String args[]){ int a = 10; int b,c; if(a>50){ b=9; } c = b + a; System.out.println(c); } A.10 B. 19 C. 9 D. 编译错误 2、下列语句片段中,four的值为 ( ) D int three = 3; char one = ‘1’; char four = (char)(three+one); A. 3 B. 1 C. 31 D. 4 3、下列代码的运行结果是 ( ) D public static void main(String[] args){ int a = 7; System.out.println(a%3); } A.2.0 B.2 C.1.0 D.1 4、以下程序的输出结果为( )。 D public static void main(String[] args) { int x = 1, y = 1, z =1; if(x--==1&&y--==1||z--==1) System.out.println(“x=” +x+”, y=” +y+”, z=” +z); } A. x=0, y=1, z=1 B. x=0, y=2, z=2 C. x=0, y=2, z=1 D. x=0, y=0, z=1 5、下列代码段编译和运行的结果是(). C public static void main(String args[]){ String str = “null”; if(str==null){

java线程练习题及答案

线程与线程类 1 线程的概念 线程的概念来源于计算机的操作系统的进程的概念。进程是一个程序关于某个数据集的一次运行。也就是说,进程是运行中的程序,是程序的一次运行活动。 线程和进程的相似之处在于,线程和运行的程序都是单个顺序控制流。有些教材将线程称为轻量级进程(light weight process)。线程被看作是轻量级进程是因为它运行在一个程序的上下文内,并利用分配给程序的资源和环境。 作为单个顺序控制流,线程必须在运行的程序中得到自己运行的资源,如必须有自己的执行栈和程序计数器。线程内运行的代码只能在该上下文内。因此还有些教程将执行上下文(execution context)作为线程的同义词。 所有的程序员都熟悉顺序程序的编写,如我们编写的名称排序和求素数的程序就是顺序程序。顺序程序都有开始、执行序列和结束,在程序执行的任何时刻,只有一个执行点。线程(thread )则是进程中的一个单个的顺序控制流。单线程的概念很简单,如图1所示。 多线程(multi-thread )是指在单个的程序内可以同时运行多个不同的线程完成不同的任务,图2说明了一个程序中同时有两个线程运行。 图1 单线程程序示意图 图2 多线程程序示意图 有些程序中需要多个控制流并行执行。例如, for(int i = 0; i < 100; i++) System.out.println("Runner A = " + i); for(int j = 0; j < 100; j++ ) System.out.println("Runner B = "+j); 上面的代码段中,在只支持单线程的语言中,前一个循环不执行完不可能执行第二个循环。要使两个循环同时执行,需要编写多线程的程序。 很多应用程序是用多线程实现的,如Hot Java Web 浏览器就是多线程应用的例子。在Hot Java 浏览器中,你可以一边滚动屏幕,一边下载Applet 或图像,可以同时播放动画和声音等。 2 Thread 类和Runnable 接口 多线程是一个程序中可以有多段代码同时运行,那么这些代码写在哪里,如何创建线程对象呢? 首先,我们来看Java 语言实现多线程编程的类和接口。在https://www.360docs.net/doc/5c4139325.html,ng 包中定义了Runnable 接口和Thread 类。

面向对象程序设计(JAVA)期末考试试卷(A卷)

** 《面向对象程序设计》试题第1页(共8页)

…… } A. 该类能调用new abstractClass(),方法实例化为一个对象 B. 该类不能被继承 C. 该类的方法都不能被重载 D. 以上说法都不对 8.已知有下面类的说明: public class X5_1_1 extends x{ private float f =10.6f; int i=16; static int si=10; public static void main(String[] args){ X5_1_1 x=new X5_1_1(); } } 在main()方法中,下面哪条语句的用法是正确的?【】 A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f 9.下列说法中,错误的一项是【】 A.Thread类中没有定义run()方法B.可以通过继承Thread类来创建线程C.Runnable接口中定义了run()方法D.可以通过实现Runnable接口创建线程 10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】 A. executeQuery B.execute C. executeUpdate https://www.360docs.net/doc/5c4139325.html,mit 二、填空题(10小题,共10分) 1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________ 方法的那个类的名字。 2.使用关键字修饰的代码,称为同步代码段 3.对象创建完后,通过使用运算符“ . ” , 对象可以实现对变量的访问和____________的调用。4.Java中的非字符输出流都是抽象类____________的子类。 5.Java语言使用___________类及其子类的对象来表示线程 6.可以使用String类的__________方法比较一字符串是否与字符串s相同。 《面向对象程序设计》试题第2页(共8页)

面向对象程序设计(JAVA)期末考试考试卷(A卷)

课程代码:座位号: 大学20 -20 学年度第二学期期末考试 《面向对象程序设计》试卷 : 学号: 专业: 学院: 班级: 20 年月日 一、单选题(10小题,共10分) 1.下列选项中,用于在定义子类时声明父类名的关键字是 【】 A.interface B. package C. extends D. class 2.在以下哪种情况下可以获得缺省构造器? 【】 A.当作任何类的定义时 B.当类没有其它构造器时 C.当定义至少一个构造器的时 D.从不需要 3.如果局部变量和成员变量同名,如何在局部变量作用域引用成员变量?【】 A.不能引用,必须改名,使它们的名称不相同 B.在成员变量前加this,使用this访问该成员变量 C.在成员变量前加super,使用super访问该成员变量 D.不影响,系统可以自己区分 4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【】 A.try子句B.catch子句 C.finally子句 D.throw子句 5.下面哪个流类属于面向字符的输入流【】 A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader 6.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是【】。 A.java.applet B.java.awt C.java.util D.https://www.360docs.net/doc/5c4139325.html,ng 7.下面程序定义了一个类,关于该类说确的是【】

Abstract class abstractClass{ …… } A. 该类能调用new abstractClass(),方法实例化为一个对象 B. 该类不能被继承 C. 该类的方法都不能被重载 D. 以上说法都不对 8.已知有下面类的说明: public class X5_1_1 extends x{ private float f =10.6f; int i=16; static int si=10; public static void main(String[] args) { X5_1_1 x=new X5_1_1(); } } 在main()方法中,下面哪条语句的用法是正确的?【】A.x.f B.this.si C .X5_1_1.i D.X5_1_1.f 9.下列说法中,错误的一项是【】 A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程 C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线程 10.当一个Statement对象要执行一个查询类的SQL语句,调用的方法是【】 A. executeQuery B.execute C. executeUpdate https://www.360docs.net/doc/5c4139325.html,mit 二、填空题(10小题,共10分) 1.Java应用程序中有多个类时,java命令后的类名必须是包含了___________ 方法的那个类的名字。 2.使用关键字修饰的代码,称为同步代码段 3.对象创建完后,通过使用运算符“ . ” , 对象可以实现对变量的访问和____________的调用。 4.Java中的非字符输出流都是抽象类____________的子类。

相关文档
最新文档