《Java基础入门》_课后习题(3)

2019-01-27 11:12

博学谷——让IT教学更简单,让IT学习更有效

System.out.println(\’m eathing\} }

public class test04 {

public static void main(String [] args) { Dog dog = new Dog(); dog.breathe(); dog.eat(); } }

五、简答题 1、什么是方法重写? 2、什么是多态? 3、抽象类和接口的区别? 六、编程题

请按照题目的要求编写程序并给出运行结果。

1、 设计一个学生类Student和它的一个子类Undergraduate,要求如下:

1) Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和

age属性赋值,一个show()方法打印Student的属性信息

2) 本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个

参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息

3) 在测试类中分别创建Student对象和Undergraduate对象,调用它们的show()。 2、设计一个Shape接口和它的两个实现类Square和Circle,要求如下:

1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果

2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回 在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积

3、自定义一个异常类NoThisSoundException和Player类,在Player的play()方法中使用自定义异常,要求入下:

1) NoThisSongException继承Exception类,类中有一个无参和一个接收一个String类型参数的

构造方法,构造方法中都使用super关键字调用父类的构造方法。

2) Player类中定义一个play(int index)方法,方法接收一个int类型的参数,表示播放歌曲的索

引,当index>10时,paly()方法用throw关键字抛出NoThisSongException异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。

3) 在测试类中创建Player对象,并调用play()方法测试自定义的NoThisSongException异常,使

用try…catch语句捕获异常,调用NoThisSongException的getMessage()方法打印出异常信息。

第5章 多线程

一、填空题

1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个______,它们会交替执行,彼此

博学谷——让IT教学更简单,让IT学习更有效

间可以进行______。

2、在实现多线程的程序时有两种方式,一是通过继______承类,二是通过实现______接口。 3、yield()方法只能让相同优先级或者更高优先级、处于______状态的线程获得运行的机会。

4、在Java语言中,同步方法需要用到关键字______,对于同步方法而言无需指定同步锁,它的同步 锁是方法所在的______,也就是______(关键字)。

5、在多任务系统中,每个独立执行的程序称之为______,也就是“正在运行的程序”。

6、线程的整个生命周期分为五个阶段,分别是______、______、______、______、和_____。

7、线程的优先级用1~10之间的整数来表示,其中______代表优先级最高,______代表优先级最低。 8、在Thread类中,提供了一个start()方法,该方法用于______,当新线程启动后,系统会自动调用______方法。

9、要想解决线程间的通信问题,可以使用______、______、______方法。

10、要将某个线程设置为后台线程,需要调用该线程的______方法,该方法必须在______方法之前调

用。

二、判断题

1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。 2、如果前台线程全部死亡,后台线程也会自动死亡。 3、同步代码块中的锁对象可以是任意类型的对象。 4、静态方法不能使用synchronized关键字来修饰。 5、线程结束等待或者阻塞状态后,会进入运行状态。 三、选择题

1、Thread类位于下列哪个包中?

A、java.io B、java.lang C、java.util D、java.awt 2、关于线程的创建过程,下面四种说法正确的有哪些?(多选) A、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法

B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法

C、定义一个实现Runnable 接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法

D、定义一个实现Runnable 接口的类并实现run()方法,创建该类对象,然后调用run()方法 3、对于通过实现Runnable接口创建线程,下面说法正确的有哪些?(多选) A、适合多个相同程序代码的线程去处理同一个资源的情况 B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想 C、可以避免由于Java的单继承带来的局限性 D、编写简单,可以不通过Thread类直接创建线程

4、对于线程的生命周期,下面四种说法正确的有哪些?(多选)

A、调用了线程的start()方法,该线程就进入运行状态

B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态

C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它

D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动 5、对于死锁的描述,下面四种说法正确有哪些?(多选) A、当两个线程互相等待对方释放同步锁时会发生死锁

博学谷——让IT教学更简单,让IT学习更有效

B、Java虚拟机没有检测和处理死锁的措施 C、一旦出现死锁,程序会发生异常

D、处于死锁状态的线程处于阻塞状态,无法继续运行 6、下面四个选项中,哪些是线程进入阻塞状态的原因?(多选) A、线程试图获取某个对象的同步锁,而该锁被其它线程持有 B、线程调用了另一个线程的join()方法 C、当线程调用了一个阻塞式的IO方法 D、线程调用了setDaemon(boolean b)方法

7、线程调用sleep()方法后,该线程将进入以下哪种状态? A、就绪状态 B、运行状态 C、阻塞状态 D、死亡状态 8、在以下哪种情况下,线程进入就绪状态? A、线程调用了sleep()方法时 B、线程调用了join()方法 C、线程调用了yield()方法时 D、线程调用了notify()方法 9、下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)

A、锁定资源,使同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误 B、提高线程的执行效率 C、让线程独占一个资源

D、让多个线程同时使用一个资源

10、对于wait()方法,下面说法正确的是?(多选) A、wait()方法的调用者是同步锁对象 B、wait()方法使线程进入等待状态

C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程 D、调用wait()方法的线程会释放同步锁对象

四、程序分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。 1.代码一:

class RunHandler {

public void run(){

System.out.println(\} }

public class Test {

public static void main(String [] args) {

Thread t = new Thread(new RunHandler()); t.start(); }

}

2.代码二:

public class A extends Thread{

protected void run() {

System.out.println(\ }

博学谷——让IT教学更简单,让IT学习更有效

public static void main(String[] args) { }

}

A a = new A(); a.start();

3.代码三:

public class Test{ }

private Object obj=new Object(); public synchronized void a(){ }

public static void main(String[] args) { }

new Test().a(); try { }

obj.wait();

System.out.println(\System.out.println(\

} catch (InterruptedException e) {

4.为了使下面的程序能够输出“Thread is running”,请在在空格处填上相应的代码。

public class B implements Runnable { }

public static void main(String[] args) { }

public void run() { }

public void go() { }

public void start(int i) { }

start(1);

System.out.println(\Thread t = new Thread(new B()); _______________________ //此处填空

五、简答题

1、 java中有几种方法可以实现一个线程?请举例说明。 2、sleep() 和 wait() 有什么区别? 六、编程题

请按照题目的要求编写程序并给出运行结果。

1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。

2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。

博学谷——让IT教学更简单,让IT学习更有效

3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。

4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。

第6章 JavaAPI

一、填空题

1、在Java中定义了两个类来封装对字符串的操作,它们分别是_____和_____。 2、Java中的操作日期的类有____、____、____等。

3、在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法_____。 4、Math类中用于计算所传递参数平方根的方法是_____。 5、Java中专门用于将日期格式化为字符串的类是_____。

6、Math类中有两个静态常量PI和E,分别代表数学常量____和____。 7、Java中的用于产生随机数的类是____,它位于____包中。 8、String类中用于返回字符串字符个数的方法是_____。

9、System类中所提供的属性和方法都是____的,想要引用这些属性和方法,直接使用System类调用即可。

10、已知 sb 为 StringBuffer 的一个实例,且 sb.toString() 的值为 \, 则执行sb. reverse()后,sb.toString()的值为_____。

二、判断题

1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。

2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。 3、System类中的currentTimeMillis()方法返回一个long类型的值。 4、Date、Calendar以及DateFormat类都位于java.util包中。 5、String类的方法 replace (CharSequence srt1, CharSequence srt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有 srt1得到的。 三、选择题。

1、先阅读下面的程序片段:

String str = \ String[] arr = str.split(\ System.out.println(arr.length);

程序执行后,打印的结果是几?

A、2个 B、 3个 C、4个 D、 5个

2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?

A、ceil() B、 floor() C、 abs() D、random() 3、Random对象能够生成以下哪种类型的随机数?

A、int B、string C、double D、A和C

4、String s = \则s.substring(3,4)返回的字符串是以下选项中的哪个? A、cd B、de C、d D、e

5、假若indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个?

A、 false B、 0 C、-1 D、以上答案都不对 6、要产生[20,999]之间的随机整数可以使用以下哪个表达式?

A.(int)(20+Math.random()*97) B. 20+(int)(Math.random()*980)


《Java基础入门》_课后习题(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏省扬州中学2014-2015学年高二上学期10月月考试卷 化学(选修)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: