异常总结和多线程初识

throws关键字

用于一个方法的对外声明:用于表示该方法不处理异常,交由调用处进行处理。

子类重写父类的方法时,不能抛出比父类更大的异常。

父类抛出异常,子类可以不抛出

父类抛出异常,子类可以抛出和父类一样的或者是比父类小的异常

父类抛出异常,子类不能抛出比父类更大的异常

父类没有抛出异常,子类也不能抛出异常。

throw关键字

用于代码中主动抛出一个异常对象:设计一个方法的功能的时候,根据逻辑分析,可以主动抛出一个异常对象。

【面试题】对比Exception和RuntimeException的区别。

1、Exception是最大的异常父类。RuntimeException是Exception的子类。

2、RuntimeException是运行时异常,程序不强制一定处理该类型的异常。Exception的异常,包含了受检异常,程序中必须处理该类型的异常。

【面试题】对比throws和throw的区别。

1、throws关键字,用于表示一个方法向外声明,该方法不处理异常,交由调用处处理这个异常。处理异常的一种方式:捕获,抛出。

2、throw关键字,代码中,主动抛出一个异常对象。因为某个逻辑原因,主动抛出一个异常对象,打断程序的执行。主动抛出异常对象。

自定义异常

了解性内容:理论知识能够懂。

自己定义一个类,用于表示某种异常。需要继承Exception或其子类即可。

问题:不是哪个类的对象,都有被创建并抛出就能够打断程序的功能。

多线程

串行:任务一个接一个做。

并行:同时在做多个任务。(硬件的支持)

并发:在多个任务之间快速的切换,看起来同时执行多个任务。但是实际上,某一个事件点,执行1个任务。

宏观并行,微观串行。

进程和线程

1、进程:一个正在执行的程序:JVM正在执行的程序

2、线程:正在执行的程序中的一条执行路径

3、多线程:一个进程中,可以同时有多条线程一起执行。

如果一个进程没有了,该进程中的线程也就没有了。

如果线程没有了,但是进程不一定的。

创建线程并启动:继承Thread类

step1:创建子类,继承Thread类。

step2:重写run(),线程体。并发执行的内容,写在这个方法中。

step3:启动线程:start()

实现Runnable接口,创建线程的方式二

step1:创建实现类,实现Runnable接口

step2:重写run(),线程体。并发执行的内容,写在这个方法中。

step3:启动线程:

对比run()和start()

run(),是线程体。就是要并发执行内容。

start(),启动一个线程?就是该线程准备就绪了,随时可以被CPU执行。什么时候执行,CPU自己说了算。

一个线程,只能被start一次。

Thread类的构造方法

new Thread();//并发执行,执行run()方法。

new Thread(Runnable target);//并发执行,执行的run是Runnable接口的实现类实现run方法

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容