首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏熊二哥

    JavaNIO快速入门

    NIO是Jdk中非常重要的一个组成部分,基于它的Netty开源框架可以很方便的开发高性能、高可靠性的网络服务器和客户端程序。本文将就其核心基础类型Channel, Buffer, Selector进行

    2.1K90发布于 2018-01-24
  • 来自专栏嗷呜大嘴狼

    JavaNIO实现按行读取文件操作

    JavaNIO实现按行读取文件操作在Java编程中,文件操作常常是必不可少的步骤。在对文件进行操作时,按行读取文件是一个常见需求。 Java提供了多种方法实现按行读取文件,其中一种方法是使用JavaNIOJavaNIO实现按行读取文件操作JavaNIO是Java New IO的简称,是Java SE 1.4版本引入的一种新的IO API。 相比传统的IO API,JavaNIO提供了更加强大、灵活和高效的IO操作方式。在使用JavaNIO实现按行读取文件操作时,可以使用BufferedReader和CharBuffer两个类。 可以看到,使用JavaNIO实现按行读取文件操作非常简单。通过以上方法,可以在读取文件时节省空间和时间,提高效率。

    1.5K30编辑于 2023-08-07
  • 来自专栏小工匠技术圈

    【Java小工匠】JavaNIO-缓存区基础

    Java小工匠聊网络编程--JavaNIO-缓存区基础 1.1、什么是缓存区?   

    80220发布于 2018-08-10
  • 来自专栏波波烤鸭

    Netty之JavaNIO编程模型介绍02

      NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 关系梳理图

    70220发布于 2019-12-31
  • 来自专栏小工匠技术圈

    【Java小工匠】JavaNIO-基础概念

    Java小工匠聊网络编程--JavaNIO-基础概念 1、同步与异步 同步与异步主要是从消息通知机制角度来说的。同步没有通知,异步有知。

    72030发布于 2018-08-10
  • 来自专栏波波烤鸭

    Netty之JavaNIO编程模型介绍01

      Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的

    68050发布于 2019-12-31
  • 来自专栏朱永胜的私房菜

    【面试题精讲】javaNIO的核心组件

    Java NIO(New I/O)是Java提供的一种非阻塞I/O操作的机制,它引入了新的核心组件来替代传统的Java IO API。Java NIO的核心组件包括以下几个部分:

    23240编辑于 2023-10-22
  • 来自专栏后端知识开放麦

    Java网络编程(五):Selector选择器与高并发实现

    无限制无限制数据结构位掩码结构体数组红黑树+链表事件通知返回就绪描述符总数返回就绪描述符总数返回就绪描述符列表内存拷贝每次调用都复制每次调用都复制注册时复制一次跨平台性几乎所有平台几乎所有平台仅Linux1.3JavaNIO 中的多路复用实现JavaNIO通过Selector类提供了对底层操作系统多路复用机制的抽象。 2.Selector的创建和通道注册2.1Selector的创建在JavaNIO中,创建Selector非常简单:收起代码语言:JavaAI代码解释Selectorselector=Selector.open 3.事件类型和SelectionKey机制3.1可选择的事件类型JavaNIO定义了四种标准的可选择事件类型,每种类型由一个常量表示:事件常量值描述适用通道SelectionKey.OP_READ1通道中有数据可读 5.总结Selector作为JavaNIO的核心组件,为构建高性能、可扩展的网络应用提供了强大支持。

    35120编辑于 2025-09-28
  • 来自专栏全栈程序员必看

    Java高并发读写文件[通俗易懂]

    利用JavaNIO实现非阻塞式的读写,通过锁机制完成高并发下的文件的操作。

    2.2K31编辑于 2022-08-30
  • 来自专栏后端知识开放麦

    Java网络编程(四):Buffer缓冲区操作与内存管理

    1Buffer的设计原理和内存模型1.1Buffer到底是什么Buffer就是JavaNIO里的数据容器,专门用来存放各种基本类型的数据。 每种数据类型都有对应的Buffer,比如ByteBuffer、IntBuffer内存灵活:可以用堆内存,也可以用堆外内存状态清晰:读模式和写模式分得很清楚自动跟踪:会自动记录当前操作的位置1.2Buffer家族成员JavaNIO 处理大量传感器数据配置信息传输:用堆Buffer处理小型配置数据文件存储:用直接Buffer或MappedByteBuffer处理大型日志文件实时数据处理:用直接Buffer提高网络通信效率5总结Buffer是JavaNIO 操作变得高效灵活的内存管理:既能用堆内存,也能用系统内存精确的状态控制:通过position、limit、capacity准确控制数据读写类型安全:针对不同数据类型提供专门的Buffer掌握了Buffer,我们就为学习JavaNIO

    42720编辑于 2025-09-27
  • 来自专栏石的三次方

    系统IO模型

    javaNIO的实现 「底层原理」:维护了一个选择器,调用Select选择器寻找数据已经就绪的通道,执行recvfrom进行复制;如果没有通道就绪,select线程阻塞 ?

    69810发布于 2021-01-05
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO 1.0 架构基石:SelectorProvider 源码深度剖析与 SPI 工厂模式

    前言:NIO体系的“创世引擎”在JavaNIO的宏大叙事中,Selector、SocketChannel、ServerSocketChannel等类是用户直接交互的主角,而SelectorProvider AsyncChannel线程模型用户管理Reactor线程Provider管理线程池/IOCPJDK版本1.41.7协议族支持JDK15+JDK7+(有限)inheritedChannel✅❌两者共存体现了JavaNIO 7.4技术哲学总结SelectorProvider体现了JavaNIO的核心设计哲学:抽象与实现的彻底分离:公共API不包含任何平台代码。可扩展性优于简单性:SPI机制为第三方实现预留了完整空间。 第八章:总结与展望SelectorProvider以不到300行的代码,构建了JavaNIO1.0的完整创建体系。它是SPI加载、工厂模式、跨平台抽象、进程间通信四大设计要素的完美融合体。

    17320编辑于 2026-05-24
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO 核心基石:AbstractSelectableChannel 源码深度剖析与架构设计哲学

    第九章:横向对比与技术哲学:JavaNIO在生态系统中的坐标没有任何技术是孤立存在的。 生态成熟度:JavaNIO经过二十年发展,AbstractSelectableChannel的边界情况和性能陷阱已被充分挖掘和修复。 对于新项目,若追求极致安全和性能,Rust是优选;若看重生态成熟度和人才储备,JavaNIO仍是稳健之选。 JavaNIO通过JIT优化、DirectMemory、零拷贝等技术不断逼近这一上限,但在极端低延迟场景下仍有差距。启示:JavaNIO是在“安全性/易用性”与“性能/控制力”之间取得的精妙平衡。 JavaNIO仍是王者。理解AbstractSelectableChannel的设计取舍,就是理解“何时该用JavaNIO”的判断依据。

    13920编辑于 2026-05-23
  • 来自专栏Liusy01

    初识Netty

    比如对消息进行编解码,协议不同,编解码步骤也不一样,例如Http和WebSocket 二、用Netty实现简易聊天窗口 在上一篇用JavaNIO写了一个例子,Java原生的NIO开发需要手动判断事件的类型才能做下一步处理 void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { //将消息转换成ByteBuf,对应于JavaNIO

    58330发布于 2020-09-01
  • 来自专栏后端知识开放麦

    Java网络编程(三):NIO核心组件Channel通道详解

    1Channel接口体系结构1.1Channel到底是什么Channel(通道)是JavaNIO的核心概念,你可以把它理解为数据传输的管道。 1.2Channel的家族关系JavaNIO的Channel接口设计得很有层次感:收起代码语言:TXTAI代码解释Channel(interface)├──ReadableByteChannel(interface 1.3常用的Channel类型JavaNIO提供了好几种Channel,每种都有自己的用途:Channel类型替代了什么主要用来干什么FileChannelFileInputStream/FileOutputStream

    50720编辑于 2025-09-27
  • 来自专栏云时代Java开发:原理、实战与优化

    Java源码之 NIO 连接状态守卫:AlreadyConnectedException 源码深度剖析与 SocketChannel 生命周期契约

    前言:TCP语义在JVM中的刚性投影在JavaNIO的网络编程模型中,AlreadyConnectedException是一个极具代表性的状态哨兵。 在JavaNIO的异常体系中,状态异常与I/O异常有着严格的分野:异常类别代表类语义可预防性处理策略状态违规AlreadyConnectedException对象方法调用顺序错误✅完全可避免修复代码逻辑资源冲突 6.4设计哲学总结AlreadyConnectedException体现了JavaNIO的核心设计原则:ProtocolSemanticsasTypeConstraints:TCP的点对点语义被编码为对象状态机

    12020编辑于 2026-05-25
  • Netty入门-第一话.md

    【简单示意图】<imgsrc="https://npm.elemecdn.com/youthlql@1.0.0/netty/introduction/chapter001/0003.png"/>JavaNIO JavaNIO编程JavaNIO基本介绍JavaNIO全称Javanon-blockingIO,是指JDK提供的新API。 JavaNIO的非阻塞模式,使一个线程从某通道发送请求或者读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情

    18110编辑于 2026-04-22
  • 来自专栏牛客网

    阿里凉经 简历+1面+2面

    HTTP协议和IP协议 GC是如何做到的,哪些作为GC root JavaNIO和IO区别,如果分别用他们实现QQ有什么区别 HashMap线程安全吗,多线程什么问题 ArrayList多线程什么问题

    1.8K10发布于 2018-09-20
  • 来自专栏云时代Java开发:原理、实战与优化

    Java NIO 中断引擎:AbstractSelector 源码深度剖析与可中断阻塞机制

    前言:NIO并发模型中最被低估的基石在JavaNIO的知识体系中,Selector往往被视为多路复用的核心,而AbstractSelector则常被当作一个“不得不继承的基类”草草带过。 8.4技术哲学总结AbstractSelector体现了JavaNIO的核心设计哲学:安全封装原生操作:通过begin()/end()将OS级别的阻塞操作纳入Java线程模型的管理范围。 但其核心设计原则——安全封装、精确边界、零开销抽象——将始终是JavaNIO演进的指南针。愿这篇深度解析能帮助你穿透抽象的表层,触及NIO并发模型的真正内核。

    13620编辑于 2026-05-24
  • 深入理解Netty:从搭建到核心实现原理解析

    传统的阻塞IO(如BIO)在高并发场景下表现迟钝,而JavaNIO虽强大,但API复杂、开发门槛高。 它基于JavaNIO(NewI/O)构建,但抽象了Selector、多路复用等底层细节,提供了一个高层API。

    66900编辑于 2025-11-15
领券