Java程序设计 朱喜福 第5章新.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 异 常 和 线程 5.1 Java 异 常 5.2 线 程 5.1 Java 异 常 5.1.1 异常的基本概念 异常(Exception)也称例外,是在程序运行过程中发生的、打断程序正常执行的事件。异常可分为两大类型:Error类代表编译和系统的错误,不许捕获;Exception类代表标准Java库方法所激发的异常,有人称做公共异常,这是为方便程序员处理异常。 Java语言异常处理类层次如下所示。 Object Throwable Error Exception 5.1.2 异常示例 利用Exception类的方法获取更多的信息。 (1)public String toString():返回描述当前异常对象信息的字符串。 (2)public String getMessage():返回描述当前异常对象信息的详细信息。 (3)public void printStackTrace():没有返回值,屏显当前异常对象使用堆栈的轨迹,即程序先后调用了哪些方法,使得运行过程产生了这个异常对象。 5.1.3 异常机制 Java程序在执行过程中如出现异常,会自动生成一个异常对象,该异常对象被交给Java运行的系统,这个过程称为抛出(throw)异常。当然,程序也可强制抛出异常;Java运行时系统接收到异常对象后,会寻找处理这一异常的代码,并把此异常对象交给其处理,这一过程称为捕获(catch)异常 。 系统定义的运行异常都可由系统自动抛出,用户自定义的异常必须借助throw(抛出)语句来定义何种情况才算是产生了对应此种异常的错误,并抛出这个异常类的对象。 throw 异常对象 含有throw语句的方法必须在方法头中增加throws异常类名列表,格式如下: 修饰符 返回类型 方法名(参数列表)throws 异常类名列表{} try/catch构造允许用户捕获某段代码的异常。如果一个异常是由try子句中的某语句所导致,Java就试图将此异常递送至适当的catch子句。catch子句可以看成有一个实参且无返回类型的方法声明。一条try子句可以有多个catch子句,分别有不同的实参类型;Java以类似选择重载方法的做法挑出适当的catch子句。 try{语句组 }catch(异常类名 异常形式参数名){异常处理语句组; }catch(异常类名 异常形式参数名){异常处理语句组; }catch(异常类名 异常形式参数名){异常处理语句组; }finally{异常处理语句组;} 如果代码周围没有try/catch子句,或者未找到匹配的catch子句,则异常就会向上抛至调用方法。如果异常仍未得到捕获,则进一步抛至更上一层,直至异常得到处理。 用户可以创建自己的异常,这需要完成如下工作: (1)声明一个新的异常类,它以Exception类或其他某个已经存在的系统异常类或用户异常类为父类; (2)为新的异常类定义属性和方法,或隐藏和覆盖父类的属性和方法,使这些属性和方法能体现该类所对应的错误信息。 5.2 线 程 一个程序只有一条从头至尾的执行路线是单线程的。然而,现实世界中的很多过程都是有多种途径同时运作的。例如服务器可能同时处理多个客户的请求。多线程是指同时存在几个执行体,按几条不同的执行路线共同工作的情况。Java内置对多线程的支持 。 5.2.1 Java中的线程 1.程序、进程与线程 程序是一段静态的代码,它是应用软件执行的蓝本。 进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。? 线程是比进程更小的执行单位,一个进程在其执行的过程中,可以产生多个线程,形成多条执行线索。 每个线程也有它自身的产生、存在和消亡的过程。 线程自身不能自动运行,而必须栖身于某一进程之中,由进程触发执行。线程之间切换的速度比进程切换要快得多。 2.线程的结构 一个线程可以看成是如图5-1所示3个部分的组合:虚拟CPU本身(专门用于执行该线程的任务)、CPU执行的代码(在程序中表现为特定的方法)和代码操作的数据(在程序中表现为变量)。 3.线程的各种状态及转换 线程的生命周期和线程各种状态间的转换关系如图5-2和图5-3所示。一个线程完整的生命周期中通常要经历5种状态:新建(New)、就绪(Runnable)、运行(Running)阻塞(Blocked)和死亡(Dead) 。 5.2.2 创建线程的两种方法 1.创建线程的方法一 ——继承Thread类 从java.lang.Thread类派生一个新类,在其中加入属性和方法,同时覆盖run()方法。只需创建这样一个派生类的对象,使

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档