首页
编程日记
docker
golang
udp
动态路由
nio
2024/9/12 16:52:14
NIO之ByteBuffer
NIO中的ByteBuffer是缓冲区,其中有几个比较重要的属性capacity,position和limit。 capacity: 其中,capacity是缓冲区的容量大小,在分配内存空间后不会改变。 limit: limit是限制位置,在读写模…
阅读更多...
Java 网络编程之TCP(三):基于NIO实现服务端,BIO实现客户端
前面的文章,我们讲述了BIO的概念,以及编程模型,由于BIO中服务器端的一些阻塞的点,导致服务端对于每一个客户端连接,都要开辟一个线程来处理,导致资源浪费,效率低。 为此,Linux 内核…
阅读更多...
问:你知道IO和NIO有哪些区别不?
一、先表示一下_ Java IOJava NIO主要特点面向流(Stream)的I/O操作面向缓冲区(Buffer)和通道(Channel)的I/O操作,支持非阻塞I/O和选择器(Selector)常用方法InputStream、…
阅读更多...
已解决java.lang.ExceptionInInitializerError: 初始化程序中的异常错误的正确解决方法,亲测有效!!!
已解决java.lang.ExceptionInInitializerError: 初始化程序中的异常错误的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 分析错误栈信息 检查静态初始化块和静态变量 验证资源和配置 使用日志记录…
阅读更多...
netty转发tcp连接
Netty 是一个高性能的网络应用框架,常用于构建高性能的 TCP/UDP 服务器和客户端。如果您想使用 Netty 转发 TCP 连接,可以创建一个简单的 TCP 代理(或中间人),它接收来自客户端的连接,然后将这些连接转发到…
阅读更多...
JAVA系列:NIO
NIO学习 一、前言 先来看一下NIO的工作流程图: NIO三大核心组件,channel(通道)、Buffer(缓冲区)、selector(选择器)。NIO利用的是多路复用模型,一个线程处理多个IO的读…
阅读更多...
已解决java.nio.charset.CoderMalfunctionError: 编码器故障错误的正确解决方法,亲测有效!!!
已解决java.nio.charset.CoderMalfunctionError: 编码器故障错误的正确解决方法,亲测有效!!! 亲测有效 报错问题解决思路解决方法1. 检查和清理输入数据2. 选择正确的字符集3. 处理异常情况4. 更新Java版本或库5. 检查第三方库的依…
阅读更多...
Java 入门指南:JVM(Java虚拟机)—— Java 内存运行时的数据区域
前言 对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。 由于程序员把内存控制权利交给 Java 虚拟机,一旦…
阅读更多...
Netty一文搞懂入门篇<随手笔记>
1.Java IO的读写原理 IO是Input和Output的缩写,即输入和输出。用户程序进行IO的读写基本上会用到read和write两大系统调用。 read把数据从内核缓冲区复制到进程缓冲区,write是把数据从进程缓冲区复制到内核缓冲区。 这两大系统的调用都不负责数据在内核…
阅读更多...
Java 输入与输出之 NIO.2【AIO】【内存映射文件】【自动资源管理】探索之【四】
一,自动资源管理 Java 7 增加了一个新特性,该特性提供了另外一种管理资源的方式,这种方式能自动关闭文件等系统资源。这个特性又被称为自动资源管理(Automatic Resource Management, ARM), 该特性以 try 语句的扩展版为基础。自动…
阅读更多...
Java NIO详解:深入理解非阻塞式网络编程
Java NIO详解:深入理解非阻塞式网络编程 Java NIO(New I/O)是一种高性能的I/O处理机制,它提供了对标准Java I/O API的替代方案,以支持更高效的文件和网络数据传输。本文将从NIO的基本概念、核心组件、关键特性以及实际…
阅读更多...
Java 网络编程之TCP(四):基于NIO中的selector实现服务端,BIO实现客户端
上一篇文章中,没有使用Selector,实习服务端的读取多个客户端的数据;本文先使用Selector实现读取多个客户单数据的功能,然后做些扩展。 一、基于NIO Selector读取多个客户的数据 1.服务端:基于Selector处理客户端的连…
阅读更多...
Java 入门指南:初识 Java NIO
NIO 的引入 在传统的 Java I/O 模型(BIO)中,I/O 操作是以阻塞的方式进行的。当一个线程执行一个 I/O 操作时,它会被阻塞直到操作完成。这种阻塞模型在处理多个并发连接时可能会导致性能瓶颈,因为需要为每个连接创建一…
阅读更多...
Java中的BIO,NIO与操作系统IO模型的区分
Java中的IO模型 Java中的BIO,NIO,AIO概念可以是针对输入输出流,文件,和网络编程等其他IO操作的。 但是主要还是在网络编程通信过程中比较重要,因为很多情况网络编程需要它们来提供更好的性能。 所以本篇文章偏向于网络…
阅读更多...
经验笔记:RPC与高性能NIO框架
RPC与高性能NIO框架的经验笔记 引言 随着互联网技术的发展,分布式系统逐渐成为了现代软件架构的标准之一。在这种架构中,服务之间的通信变得尤为关键,而RPC(远程过程调用)作为一种服务间通信的方式,因其简…
阅读更多...
BIO NIO AIO有什么区别?
通俗易懂地解释这些东西是我的风格, BIO就是阻塞io,就是一个程序在发出io请求之后不能干任何别的事,只能等待请求,不断检测io的状态,只有接受到反馈之后才能干别的事 适用场景: 用作请求少而且连接时间短的情况 NIO就是非阻塞,也就是没有阻塞,怎么没有阻塞了?说白了就是发出…
阅读更多...