java-day13

2022-10-14,

异常

  指的是程序在执行过程中,出现的非正常情况,最终会导致jvm的非正常停止

异常分类:编译异常,运行期异常

异常的产生过程分析

throw关键字:指方法中抛出指定异常

使用格式:throw new xxxexception();

注意:1.必须写在方法内部2.new的对象必须是exception或是exception子类对象3.throw关键字抛出这个异常,我们就必须处理这个异常

objects非空判断

  objects.requirenonnull(对象,信息)

throws关键字:异常处理的第一种方式,交给别人处理

注意:1.必须写在方法声明处2.声明的异常必须是exception或是exception子类

try...cash格式

  try{}cash{}

可以使用多个cash处理异常,子类异常要放在父类异常的上面

finally语句块:无论程序有无异常发生,都会执行fianlly语句块

注意:1.不能单独使用,要和try一起使用

子父类异常:父类异常是什么样,子类异常就什么样

throwable定义了3个异常处理的方法

  string getmessage()  返回次throwable简短描述

  string tostring()  返回次throwable的详细信息字符串

  void printstacktrace()  jvm打印异常对象信息,全面。

自定义异常类

  public class xxxexception extends exception{

   添加一个无参数的构造方法,

     添加一个带异常信息的构造方法 

  }

多线程:效率高,多个线程之间互不影响

  并发:同一时间段发生,(交替执行)

  并行:同一时刻发生,(同时执行)

  进程:指一个内存中运行的应用程序

  线程:是进程的执行单元

  一个程序运行后有一个进程,一个进程可以有多个线程

线程调度

  分时调度:所有线程轮流使用cpu使用权,平均分配每个线程占用cpu时间

  抢占式调度:优先让优先级高的线程使用cpu

多线程原理

多线程内存分析图

主线程:执行主方法的线程

创建多线程的第一种方式

  1.创建thread类的子类

  2.重写thread类的run方法

  3.创建thread类子类对象

  4.调用thread的start方法

常用方法

  getname()  获取该线程名称

  currentthread()  返回当前正在执行的线程对象的引用

设置线程的名称

  1.setname()

  2.创建一个带参数的构造方法,参数传递线程名称,调用父类的带参构造方法,把线程名称传递给父类,让父类给子类起一个名字

runanble接口

  1.创建一个runable接口的实现类

  2.重写run方法

  3.创建一个runable接口的实现类对象

  4.创建一个thread类对象,传递参数为runable接口实现类对象

  5.调用thread类中的start方法

好处:1.避免了单继承的局限性2.增强了程序的扩展性,降低了程序的耦合性

匿名内部类实现进程创建

  格式

    new 父类/接口(){

      重写父类/接口方法;

    }

 

《java-day13.doc》

下载本文的Word格式文档,以方便收藏与打印。