Throwable体系

Error:不能处理,只能避免。如:为了防止得口腔癌,只要少吃槟榔就能避免口腔癌。
Exception:会使程序无法继续运行,必须要处理。如:得了病就要去治。

public void printStackTrace():打印异常的详细信息。

public String getMessage():获取发生异常的原因。

public String toString():获取异常的类型和异常描述信息(不用)

捕捉异常

捕获异常:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理。

try:该代码块中编写可能产生异常的代码。

catch:用来进行某种异常的捕获,实现对捕获到的异常进行处理。

try{
     编写可能会出现异常的代码
}catch(异常类型  e){
     处理异常的代码
     //记录日志/打印异常信息/继续抛出异常
}

举例1:

public class TryCatchDemo{
    public static void main(String[] args){
        try{
        int [] nub2 = {1,2,3};
        System.out.println(arr1[4]);
        }catch(ArrayIndexOutOfBoundsException e){
        //打印异常信息
        e.printStackTrace();
        }
}

异常的处理
public class Yichang{
public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    int bun1 = scanner.nextInt();
    int bun2 = scanner.nextInt();
    try{
        sum(bun1,bun2);
    }catch (ArithmeticException e){
        throw new ArithmeticException("哥们,你错了,除数不能为0");
    }
    System.out.println("8765");
}
    public static void sum ( int bun1, int bun2){
        System.out.println(bun1 / bun2);
    }

}

注意:

throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
如:假如有一个粉笔盒,要从粉笔盒里拿出来,但粉笔可能会短,throw管他会不会断,直接不处理。

关键字throws运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常).
如:是为了防止粉笔拿出来会断,会采取措施,让他不断。

finally的语法

try...catch....finally:自身需要处理异常,最终还得关闭资源。

注意:finally不能单独使用。

举例:

public class Dom2 {
    public static void main(String[] args) {
        try{
            read("a.txt");
        } catch (FileNotFoundException e) {
            throw new RuntimeException("你吃屁");
        }finally {
            System.out.println("会执行");
        }
        System.out.println("lll");
    }
    public static void read(String path) throws FileNotFoundException {
        if(!path.equals("a.txt")){

        }
        throw new FileNotFoundException("文件不存在");
    }
}

并发与并行

并发:指两个或多个事件在同一个时间段内发生。

举例:
就好像一个人在5分钟之内先上厕所再玩手机然后又上厕所又玩手机.

并行:指两个或多个事件在同一时刻发生(同时发生)。

举例:
一个人在上厕所时同时也玩手机。

进程

应用下的后台的软件和没一行都是一个进程

线程

可以说是进程的子类

线程调度

分时调度:假如在Google里创建俩个标签页,先在一个标签页里玩小恐龙,然后又在另一个标签页里打开百度网站,当我按到百度里去的时候,小恐龙的网页会停止,就相当于每次只能执行一个网页(有些时候在看俩个网站,当再看其中一个网站时候,突然没网络了,自己在看的网站因没网就真在加载在转,而另外一个没有执行的网页也在转,然后有网的时候,正在执行的加载好了,而另一个没有执行的网站也加载好了,虽然说只能执行一个,但在后台一直在俩网页里切换,所以就显示出是俩个都在运行)

创建线程类
Java中通过继承Thread类来创建启动多线程的步骤如下:

  1. 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体。
  2. 创建Thread子类的实例,即创建了线程对象
  3. 调用线程对象的start()方法来启动该线程

举例:
测试类

public class Dom4{
    public static void main(String[] args) {
        Chenglihao chenglihao = new Chenglihao("机器人");
        chenglihao.setName("管理员1");
        chenglihao.start();
    }
}

ThreadRunnable的区别
Thread是一个类,是属于并发
例:假如创建一个狗的对象,它继承了Thread,然后又想要把它归属动物类,但又只能选择一个
Runnable是一个接口,它可以实现Runnalble接口,也可以归属于动物类。


MAYZHMH
1 声望2 粉丝

« 上一篇
final