云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Java习题答案_太原理工大学软件工程(2)

Java习题答案_太原理工大学软件工程(2)

  • 62 次阅读
  • 3 次下载
  • 2025/7/7 13:07:59

来处理。

6.6 在try程序块中发生了异常,其后如果有多个catch参数类与之匹配,会执行那个catch块中的异常处理程序。

答:当try语句块中的代码执行时发生异常,程序的正常运行便中断,并抛出异常对象,然后在try块后面的各个catch()中查找与异常对象相匹配的异常类,当找到第一个与之相匹配的参数类时,就执行包含这一参数类的catch语句块中的代码。

6.7 什么情况下要使用finally程序块?

答:finally子句为异常处理提供一个统一的出口,使得在控制流转到其它部分以前(即使有return,break语句),能够对程序的状态作统一的管理。finally程序块中通常都包含一些用于资源释放的代码块。例如,在finally程序块中应将try程序块中打开的所有文件关闭。

6.8 假设下列try-catch语句块中的第2个语句s2产生一个异常,试回答下述问题:

try{

s1; s2; s3;

}catch(ExceptionType e1){

?

}catch(ExceptionType e2){

? } s4;

⑴语句s3会执行吗?

⑵如果catch捕获到异常,语句s4会执行吗? ⑶如果异常未被捕获,语句s4会执行吗?

答:若try-catch语句块中的第2个语句s2产生一个异常,⑴语句s3不会执行,⑵如果catch捕获到异常,异常处理后,会继续执行语句s4,⑶如果异常未被捕获,则程序终止运行,语句s4也不会执行。

6.9 发生一个异常一定会导致程序终止吗?

答:发生一个异常不一定会导致程序终止运行。若程序中没有异常处理,发生一个异常一定会导致程序终止运行。若程序中有异常处理,发生一个异常并被捕获,则异常处理后,程序会继续运行。

6.10 分析下面程序的执行流程并写出输出结果。

//Xt6_10_User_UserException.java import java.io.*;

class MyException extends Exception{ }

public class Xt6_10_UserException { }

答:程序运行时,main()方法调用action()方法,action()方法中抛出一个MyException类异常,但没有捕获及处理,而是向上移交给main()方法,在main()方法捕获并处理。程序执行的输出结果是:MyException

6.11 设计并实现一个程序。新建一个异常类StringTooLongException,当发现字符串长

static void action() throws MyException{ }

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

try{

String s=new String(); if(s.equals(\))

throw new MyException();

public String toString(){ }

return \;

action();

}catch(MyException e){ }

System.out.println(e);

度太长时抛出该异常。在程序的main方法中循环输入字符串,直到输入“DONE”为止。如果输入的字符串长度超过20个字符,则抛出异常。考虑两种异常处理方式:⑴抛出异常终止程序;⑵捕获并处理异常,输出适当的提示信息并继续输入字符串。

下面的程序按第2种方式处理。

import java.util.Scanner;

public class Xt6_11_DefineException { }

//自定义一个异常类,类名为:StringTooLongException class StringTooLongException extends Exception{ }

StringTooLongException(){ super(\字符串长度太长!\); }

public static void main(String[] args) {

String str=\;

Scanner scan=new Scanner(System.in);

StringTooLongException problem=new StringTooLongException(); do{

System.out.print(\输入一个字符串:\); try{

str=scan.next(); if(str.length()>20)

throw problem; //抛出自定义异常 }catch(StringTooLongException e){ }

System.out.println(e.toString());

}while(!str.equals(\));

System.out.println(\主方法结束.\); }

第7章 多线程编程

1. 什么是线程?与进程有何不同?

答:线程是操作系统中重要概念之一,是程序运行的基本执行单元,与进程一样,也有创建、销毁和切换等状态,但负荷远小于进程,又称为轻量级进程。与进程不同的是:占用的资源少,不像进程那样可由几个线程组成,在Java语言中,用java.lang.Thread类创建和管理线程,而进程是由java.lang.Process类等类创建和管理。

2. 使用多线程的优势何在?

答:使用多线程具有很多优势,这主要表现在如下五方面:充分利用CPU资源;简化编程模型;简化异步事件的处理;使GUI程序更有效率;节约成本。 3. 主要的线程状态有哪些?它们之间是如何转换的?

答:线程主要有如下5个状态:New(新)、Runnable(可运行、就绪)、Running(运行)、Blocked(被阻塞、挂起)和Dead(死亡),它们之间转换如下图所示:

等待/阻赛/睡眠获得资源获得/失去cpu资源外部事件或占用cpu时间用完新建启动可运行运行执行完成死亡 4. 简述创建线程的两种方法及各自的步骤。

答:第一种方法是通过继承Thread类编写用户自己的线程类,而后创建实例,步骤为: ?

定义自己的线程类MyThread,并覆盖Thread类的run(),实现所需功能;

? 实例化MyThread类,并用start()方法启动。

第二种方法是通过实现Runnable接口来创建线程,使用Runnable接口创建线程的步骤为: ?

实现Runnable接口,如实现了该接口的类为MyRunnable,并在MyRunnable类的run()方法里编写想让线程执行的代码; ? ?

创建实现了Runnable接口类的实例,如创建MyRunnable类的实例为myRunnable;

创建线程类Thread的实例,并用构造方法Thread(Runnable)将myRunnable赋值给target。

5. 简述sleep()方法的作用,并修改例7.10中休眠部分,体会线程有无休眠的差异。

答:sleep()作为休眠方法,可让线程休眠一段时间,此期间线程不消耗CPU资源。传入参数是休眠的时间,单位为毫秒。

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

来处理。 6.6 在try程序块中发生了异常,其后如果有多个catch参数类与之匹配,会执行那个catch块中的异常处理程序。 答:当try语句块中的代码执行时发生异常,程序的正常运行便中断,并抛出异常对象,然后在try块后面的各个catch()中查找与异常对象相匹配的异常类,当找到第一个与之相匹配的参数类时,就执行包含这一参数类的catch语句块中的代码。 6.7 什么情况下要使用finally程序块? 答:finally子句为异常处理提供一个统一的出口,使得在控制流转到其它部分以前(即使有return,break语句),能够对程序的状态作统一的管理。finally程序块中通常都包含一些用于资源释放的代码块。例如,在finally程序块中应将try程序块中打开的所有文件关闭。 6.8 假设下列try-catch语

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com