1、进程和线程的概念
进程:正在运行的程序,是系统进行资源分配和调用的独立单位,会创建系统资源(Process)
线程:是进程中的单个顺序控制流,是一条执行路径,是进程的子集,有很多个线程组成
2、创建线程实现方式有几种,请列举步骤
两种:
1)继承关系
自定义一个类,继承自Thread类
重写Thread类中的run方法
在main线程中,创建该类对象,启动线程(start())
2)实现Runnable接口的方式
自定义类实现Runnable接口
重写RUnnable接口中的run方法
创建该类对象---资源类(可以被多个线程共用)
创建Thread类对象资源类作为参数进行传递Thread(Runnable targe,String name)
启动线程 线程名.start()
3、finally,final,finalize的区别
finally:是异常处理的代码块,用于释放资源。一般来说finally肯定会执行,除非在执行到finally之前,jvm已经退出
final:可以修饰类,成员变量,成员方法
修饰类,类不能被继承
修饰变量,变量是常量
修饰方法,方法不能被重写
finalize:是Object类的一个方法,用于垃圾回收 开启垃圾回收器System.gc()---实际调用fianlize()
4、处理异常的方式有几种
捕获异常
try...catch...finally(开发中推荐)
try...catch...catch
抛出异常
throws:抛出在方法上
throw:在方法体中抛出
5、throw 和 throws 的区别
throw:用在方法体呢,跟的是异常对象名,只能抛出一个异常对象名,表示抛出异常,一般匿名对象(具体异常具体抛出)由方法体内的语句处理
throw抛出了异常,执行throw则一定抛出了某种异常
throw new xxxException();
他对异常的处理,是通过逻辑代码进行判断
throws:用在方法声明的后面,跟的是异常类名,可以跟多个异常,用逗号隔开,表示抛出异常,调用者调用由该方法的调用者来处理,throws表示出现的异常是一种可能性,并不一定发生这些异常