java基础知识(四)

34. Errror , Exception,RuntimeException 区别

Error(错误)表示系统级的错误和程序不必处理的异常,是 java 运行环境中的内部错误或者硬
件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,
它是由 Java 虚拟机抛出的。

Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕
疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
Exception 又分为运行时异常,受检查异常。
运行时异常,表示无法让程序恢复的异常,导致的原因通常是因为执行了错误的操作,建议终
止程序,因此,编译器不检查这些异常。
受检查异常,是表示程序可以处理的异常,也即表示程序可以修复(由程序自己接受异常并且
做出处理), 所以称之为受检查异常。

Exception 体系包括 RuntimeException 体系和其他非 RuntimeException 的体系:
① RuntimeException:RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问
空指针等等。处理 RuntimeException 的原则是:如果出现 RuntimeException,那么一定是程序员的
错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
②其他非 RuntimeException(IOException 等等):这类异常一般是外部错误,例如试图从文件
尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。

35. Java 语言如何进行异常处理,关键字:throws、throw、try、catch、finally 分 别如何使用。

throws 是获取异常
throw 是抛出异常
try 是将会发生异常的语句括起来,从而进行异常的处理,

catch 是如果有异常就会执行他里面的语句, 而 finally 不论是否有异常都会进行执行的语句。

36. throw 和 throws 有什么区别?

throws 是用来声明一个方法可能抛出的所有异常信息,而 throw 则是指抛出的一个具体的异常
类型。

37. 请说一下你常用的几种异常?

空指针异常; NullPointerException
数组下标越界; ArrayIndexOutOfBoundsException
类型转换异常; ClassCastException
算数异常,例如除数为零;ArithMeticException
IO 异常,比如说找不到文件; FileNotFoundException
找不到类异常; ClassNotFoundException
sql 异常,例如 sql 语句不能正常运行;

38. 线程的基本概念?线程的基本状态以及状态之间的关系

1、是程序执行流的最小单元。在单个程序中同时运行多个线程完成不同的工作,称为多线程。

2、开始时:就绪状态,等待 cpu 调用后进入运行状态,运行过程中遇到阻塞事件,进入阻塞状
态,等待阻塞事件结束后,重新进入就绪状态;如果没有阻塞事件,运行结束后,则进入结束状态。

39. sleep() 和 wait() 有什么区别?

sleep 就是暂停当前线程一段时间,把 cpu 让给其他线程使用,到时后会自动恢复。调用
sleep 不会释放对象锁。 wait 方法导致本线程放弃对象锁,进入等待,只有等到本对象的 notify 方法
(或 notifyAll)后本线程才进入就绪状态,等待执行

40. 多线程有几种实现方法?

多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值