Java高频面试题(三): IO与NIO核心原理精解
IOIO体系概述字节流InputStream读、OutputStream写特点处理二进制数据字符流Reader读、Writer写特点处理文本数据缓冲流BufferedInputStream/BufferedReader特点减少磁盘/网络IO次数提升性能。转换流InputStreamReader字节-字符特点解决字符编码问题如将InputStream转为Reader序列化流ObjectInputStream/ObjectOutStream特点用于对象持久化需实现SerializableNIO非阻塞IO。Channel数据通道如FileChannel、SocketChannel、Buffer数据容器如ByteBuffer、CharBuffer、Selector监控多个Channel事件如读写特点基于事件驱动支持多路复用非阻塞IO。使用场景高并发网络编程如聊天室、Netty的Channel设计、RPC框架远程方法调用表示远程方法调用的方式httptcpIO面试题BIO、NIO、AIO的区别BIO是阻塞式IO每个连接对应一个线程。缺点线程资源消耗大高并发下性能差。NIO是非阻塞IO基于Selector多路复用单线程可处理多个连接。优点节省线程资源适合高并发场景如Web服务器。AIO是完全异步由操作系统通知就绪事件。优点更高效率但编程复杂Java7支持NIO中的Selector如何工作注册Channel到Selector并指定监听事件如OP_READSelector.select()阻塞等待事件遍历就绪的SelectionKey处理对应Channel的读写序列化时如何防止安全问题使用transient关键字保护敏感字段如密码自定义readObject()和writeObject()方法控制序列化逻辑设置serialVersionUID确保兼容性
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2412083.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!