积少成多,记录java菜鸟的成长之路(一)

写文章的目的是帮自己梳理java的一些细小的知识网络,在以后的面试中不会再向之前那样。问:容器了解么?java IO 会么?多线程会么?异常处理知道么?答:知道。问:那你所说你知道的。这么大的一个问题该怎么答,该怎么答。面试中冷场三秒就很尴尬了。

java异常是什么?java异常继承了throwable接口,另外一个继承这个接口的类是Error,常见的error有stackoverflow、outofmemryError,出现这种错误的原因是方法的栈深度超出了预设的最大值,容易出现在错误地使用递归方法上。Exception异常类总体分为RuntimeException和非RuntimeException两大类。RuntimeException不用处理就能编译成功,但是非RuntimeException必须进行处理才能编译成功,即生成class文件。常见的RuntimeException有空指针异常、算术异常、类型转换异常、未找到类异常(ClassNotFoundException),非法参数异常(IllegalArgumentException)和下标越界异常。非RuntimeException有io异常等,这类异常在编译时必须处理。处理方式有两种,

第一种 throw,抛给上一级处理,若在主方法抛出异常,则交给虚拟机处理。第二种try/catch处理,catch在匹配到第一个符合的异常时,就不再往后匹配。finally块表示无论try块出不出现异常,finally块都最终被执行。

javaIO流主要分为两块字节流和字符流。字节流主要用于文件传输、对象传输,二进制数据传输等,读取和写入的最小单位为一个字节。字符流主要用于字符串处理,读取和写入的最小单位为一个字符,两个字节。BufferedInputStream和Bufferedeader利用缓冲机制减少文件读取/写入的次数,以提高效率。注意在写入数据的过程中,如果使用了缓冲流,最后要flush清空缓冲流,否则最后一部分可能写不进去。

java多线程实现方式两类,一是继承Thread类,第二种实现Runnable接口。线程的状态有创建、就绪、进行、阻塞、消亡等状态。调用start方法进入就绪状态,sleep和wait进入阻塞状态,notify唤醒线程,yield方法倾向于将CPU的占用权交给优先级高的线程,join方法在此线程进行时插入线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值