IO和NIOAIO

1、运行时异常与受检异常区别

异常是表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误,只要程序设计的没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译器要求方法必须声明抛出可能发生的受检异常,但是并不要求必须声明抛出未被捕捉的运行时异常。异常和继承一样,是面向对象程序设计中经常被滥用的东西,在Effective Java中对异常的使用给出了以下原则:
1.不要将异常处理用于正常的控制流(设计良好的API不应该强迫他的调用者为了正常的控制流而使用异常)
2.对可恢复的情况使用受检异常,对编程错误的使用运行时异常。
3.避免不必要的使用受检异常(可以通过一些状态检测手段来避免异常的发生)
4.优先使用标准的异常
5.每个方法抛出的异常都要有文档。
6.保持异常的原子性。
7.不要在catch中忽略捕获到的异常。

2、Java序列化如何实现的

序列化是一种用来处理对象流的机制。对象流就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可以将流化后的对象传输与网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializabie接口,该接口没有需要实现的方法,inplements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(FileOutPutStream)来构造一个ObjectOutPutStream(对象流)对象,接着使用ObjectOutPutStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其形态),要恢复的话则用输入流。

3、Java中有几种类型的流?

字节流和字符流。字节流继承于InputStream,OutputStream,字符流继承于InputStreamReader,OutputStreamWriter。在java.io包下还有许多流,主要是为提高性能和使用方便。

4、Java的异常处理机制原理及应用

当Java程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示一个异常。违反语义规则包括两种情况。一种是Java类库内置的语义检查。比如数组下标越界会引发IndexOutOfBoundsException;访问null对象时会引发NullPointerException。另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Throwable的子类。

5、最常见的运行时异常有哪些

NullPionterException空指针异常、IndexOutOfBoundsException索引异常

6、error和exception的区别

error表示恢复不是不可能但很困难的情况下的一种验证问题。比如内存溢出。不可能指望程序能处理这样的问题。
exception表示一种设计或实现问题。也就是说,他表示如果程序运行正常,从不会发生的情况。

7、运行时异常和一般情况下出现的异常有什么异同

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的运行错误。Java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

8、如何打印日志

cat/var/log/*.log
如果日志还在更新,实时查看 tail -f /var/log/message
还可以使用watch -d -n 1 cat/car/log/messages(-d表示高亮不同的地方 -n表示多少秒刷新一次)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值