【教学课件】第9章Java高级编程.ppt
《【教学课件】第9章Java高级编程.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第9章Java高级编程.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章 Java高级编程本章将简单介绍Java中的高级应用,包括异常处理、多线程机制、数据流及文件操作、网络编程、数据库操作五个方面。9.1 异 常 处 理在Java语言中,程序员可以在程序中定义异常处理段(exception handler)来捕获和处理异常,在异常发生的时候,一个代表该异常的对象会被创建,并在产生这个异常的方法中被引发。同时,这个方法可以选择自己处理异常,也可以抛出这个异常给别的方法处理。无论怎样,该异常都将被捕获并作出相应的处理。这样可以保证程序在出现了异常的情况下仍然梢约续的执行,不会影响到其他的部分的运转,提高了程序的健壮性。9.1.1 异常类的层次结构所有的异常类都
2、是java.lang.Throwable的子类,其层次关系如图所示。9.1.2 如何捕获异常在熟悉了异常的概念和分类后,就要介绍如何在程序中捕获异常。Java语言给程序员提供了trycatch代码段,用来捕获可能出现的异常。try意思就是看其代码段内部的代码是否会出现异常,catch则是当try中的代码段出现异常后,捕获异常,并作相应处理。trycatch使用的语法格式为:try 可能会出现异常的代码段;catch(异常类型名 处理该异常对象)异常处理代码段;9.1.3 如何抛出异常编写代码过程中,如果不想在这段代码中捕捉和处理一个可能出现的异常,那么就需要将这个异常传递出去,传递给调用它的方
3、法去处理该异常。这个时候就需要使用throw和throws语句:(1)throws语句:在方法声明中使用,抛出异常;(2)throw语句:在方法体内部使用,抛出异常。9.1.4 自定义异常前面两节介绍了,利用系统提供的标准异常类来捕获和处理异常。但如果碰到了可能出现的异常,却在标准异常类中并没有定义过的时候,就需要建立自己的异常类。建立自己的异常类,要做的只是根据需要,从Exception类或是从Exception类的子类中继承出需要的类。习惯上,会经常为每一个异常类,提供一个默认的和一个包含详细信息的构造器。需要注意的是,自定义异常类,必须由程序员使用throw语句抛出。9.1.5 使用fi
4、nally语句段在之前使用trycatch语句结构的时候,若try语句段中的某一句出现异常情况,那么这部分try语句段中,从出现异常的语句开始,之后的所有语句都不会被执行,直到这部分try语句段结束。但是在很多的情况下,希望无论是否出现异常,某些语句段都需要被执行,特别是释放资源的操作,例如打开文件后的关闭操作。那么就可以把这部分代码放在finally语句段中,即使try或catch语句段中含有return语句,程序都会在异常抛出后先执行finally语句段,除非try或catch语句段中执行System.exit()方法,或是出现Error错误时finally语句段才不会被执行而退出程序。9
5、.2 Java多线程机制在这一章之前,介绍的程序都是单线程的。也就是说,一个程序,从头到尾都会按顺序执行语句,在程序开始至结束的这一段时间内只做了一件事。而实际中,由于计算机中CPU的工作效率实在是太高了,以至于在很多时间CPU都是被闲置的。为了更好的利用计算机中的资源,Java语言为编程提供了很方便就能实现的多线程机制。也就是说程序员设计的一段Java程序,可以在一段时间内同时做多件事。9.2.1 Java中的线程每一个线程都有自身的产生、存在和消亡的过程,是一个动态的概念。每一个Java程序都有一个缺省的主线程,对应于application应用程序,主线程就是main()主方法的执行步骤;
6、对于Appet小应用程序,则是按其生命周期执行的步骤作为主线程。多线程机制则是在主线程执行的过程中,又建立了多个线程在同一段时间内执行。由于计算机CPU的处理速度非常的快,所以在很短的一段时间内(几毫秒或更短),CPU按顺序执行了几个线程,但对于用户来说,感觉上是在这一段时间,CPU同时完成了多个线程的活动。举个简单的例子:当用户从网上下载一段音乐的同时,就可以欣赏其中已经下载完成的部分,而实际实现的代码中,是存在了下载和播放两个线程,同时要协调好这两个线程,这样就使用户在下载歌曲的这一段时间内,同时完成了下载和播放两件事情。9.2.2 创建线程的两种方式Java语言中实现多线程有两种途径:一
7、种是创建一个类,让该类继承Thread类;另一种方法是让自己创建的类实现Runnable接口。使用这两种方法都可以使用到Thread类及其方法。1继承Thread类并覆盖run()方法2实现Runnable接口9.2.3 线程的启动与停止当使用线程的构造函数创建了一个线程对象时,程序是不会自动调用线程中的run()方法的。若要启动线程,就必须调用线程对象中的start()方法,这样才可以真正地启动一个线程。但需要注意的是:当线程对象调用了start()方法后,并不会立刻运行,该线程对象会进入线程队列,和其他线程一样排队等待CPU的使用权,只有真正获得了CPU使用权后才会执行。线程的停止的方法要
8、多一些,Thread线程类包含stop()方法,可以用来停止线程,但在Java2种,由于该方法会导致Java运行环境不稳定,所以基本不使用。而通常使用的方法,就是让线程执行完run()方法后自然结束。9.2.4 线程的优先级在Java语言中,每一个线程都会有一个优先级。线程在等待队列中等待CPU的使用权,而这个等待队列正是根据线程的优先级和就绪时间来给线程排队的。优先级高的线程会优先获得CPU的使用权获得执行,而优先级低的则会后执行。Java语言中,将线程的优先级设置为110十个等级,常量MAX_PRIORITY(定义为10)表示最高优先级,常量MIN_PRIORITY(定义为1)表示最高低优
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 Java 高级 编程
限制150内