黄志斌:
1.throw和throws的区别?
throw是用来抛出一个异常,是作用在方法内,用来抛出一个异常.并把异常返回到方法的调用者处,如果方法的调用者并没有处理这个异常,那么会继续返回到方法的调用者处,如果还没有处理,那么最后会返回到JVM,然后JVM就会中断程序,并且把该异常打印出来.如果方法的调用者捕获了次异常,那么会直接在方法内解决,不会再抛到JVM处.
throws用来声明一个异常,他是写在方法的参数列表后的,使用throws关键字加上异常的类型来声明此方法可能会发生异常,但在此方法中并不处理异常,也会吧异常返回到调用者处.
2.什么时候需要声明异常,什么时候不需要声明异常?
在JAVA中异常可以分为两种,
一种是Error,这是系统级错误,这是程序无法解决的.
还有一种就是Exception,这是需要程序捕捉和处理的异常,Exception分为编译时期异常,此异常是需要声明的,还有一种就是运行时期的异常,此异常是在代码执行过程中发生的异常,不需要声明此异常,直接交给JVM来处理就行
3.异常有几种处理方式?
throw是用来抛出一个异常,直接把异常返回给方法的调用者,如果调用者都没有处理异常,那么则需要继续抛出,让JVM来处理
throws是用来声明一个异常,也是直接把异常返回给方法的调用者,如果调用者都没有处理异常,那么则需要继续抛出,让JVM来处理
try....catch用来捕获异常,把可能产生异常的方法放在try语句块中,catch代码块中则是放该异常的处理方法.
4.什么是并发,什么是并行?
并发指的是多个事件在同一时间段内发生,他是一个时间段内做很多事.
并行指的是有多个事件在同一个时间,并行则是同时做很多的事.
5.什么是进程,什么是线程?
进程指的是内存中运行的一个程序,一个程序可以拥有多个进程.
线程是进程的一个执行单位,一个进程最少要有一个线程,一个进程可以有多个线程.
6.run()方法和start()方法的区别?
在多线程中,如果创建的对象直接调用run()方法,那么只是执行了该方法,并不是开启了线程,而使用start()方法调用的话,则是表示开启新的线程,并执行run()方法中所写的内容. |