当前位置: 首页 > news >正文

【Java面试笔记:基础】11.Java提供了哪些IO方式? NIO如何实现多路复用?

在这里插入图片描述

在Java中,I/O操作是网络编程和文件处理的核心,其发展经历了从传统的BIO(Blocking I/O)NIO(Non-blocking I/O),再到**AIO(Asynchronous I/O)**的演进。

1. Java 提供的 IO 方式

  • 传统同步阻塞 IO(BIO)
    • 特点:基于流模型实现,代码简单直观,但扩展性和性能存在局限性。
    • 应用场景:适合连接数较少的场景,如简单的文件操作或少量客户端的网络通信。
    • 缺点:线程数随连接数线性增长,资源消耗大,无法支撑高并发。
    • 示例InputStreamOutputStreamReaderWriterSocketServerSocket
// 服务端代码(单线程阻塞)
ServerSocket serverSocket = new ServerSocket(8080);
while (true) {Socket socket = serverSocket.accept(); // 阻塞等待连接new Thread(() -> {// 处理请求(读写操作也会阻塞)}).start();
}
  • NIO(New IO)
    • 特点:引入了 ChannelSelectorBuffer 等新的抽象,支持多路复用的同步非阻塞 IO
    • 应用场景:适合高并发场景,如服务器端

相关文章:

  • 【Java学习笔记】选择结构
  • ACI multipod 二、IPN (Inter-Pod Network)
  • 【最新版】沃德代驾源码全开源+前端uniapp
  • [蓝桥杯 2025 省 Python B] 异或和
  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • Python基础语法3
  • 模板方法模式:定义算法骨架的设计模式
  • “在中国,为中国” 英飞凌汽车业务正式发布中国本土化战略
  • 数据的加载与保存
  • 国产三维CAD皇冠CAD在机械及汽车零部件设计建模教程:斜滑动轴承
  • 亚远景-基于ASPICE标准的汽车软件过程优化路径
  • 汽车免拆诊断案例 | 2016款奔驰C200L车组合仪表上多个故障灯偶尔点亮
  • 【AI大模型】MCP:AI应用的“超级扩展坞”
  • 新市场环境下新能源汽车电流传感技术发展前瞻
  • 算法习题-经典环形涂色问题
  • 边缘计算在工业自动化中的应用:开启智能制造新时代
  • RK3568平台开发系列讲解(调试篇)debugfs API接口及案例
  • 开源作业调度框架Quartz框架详细使用说明
  • 于烟火处拾诗意,在文字间见山河 ——《远方并不远》散文推荐
  • 【MQ篇】RabbitMQ之发布订阅模式!
  • 百位名人写“茶”字,莫言王蒙贾平凹都写了
  • 威廉·透纳诞辰250周年|他是现代艺术之父
  • IMF将今年美国经济增长预期下调0.9个百分点至1.8%
  • 洛阳白马寺存争议的狄仁杰墓挂牌,当地文物部门:已确认
  • “HPV男女共防计划”北半马主题活动新闻发布会在京举办
  • 美菲开始举行年度军演,外交部:菲公然站在地区国家的对立面