Java NIO实现多人聊天室
接下来进行一个实战例子,用NIO实现一个多人运动版本的聊天室。 服务端代码: public class GroupChatServer { private Selector selector; private ServerSocketChannel serverSocketCh ...
Read more
Java NIO 网络IO
其实NIO的主要用途是网络IO,在NIO之前java要使用网络编程就只有用Socket。而Socket是阻塞的,显然对于高并发的场景是不适用的。所以NIO的出现就是解决了这个痛点。 主要思想是把Channel通道注册到Selector中,通过Selector去监听Channel中的事件状态,这样就不 ...
Read more
Java NIO 文件IO
通道间的数据传输这里主要介绍两个通道与通道之间数据传输的方式: transferTo():把源通道的数据传输到目的通道中。 public static void main(String[] args) throws Exception { //获取文件输入流 File file ...
Read more
Java NIO 选择器
Selector翻译成选择器,有些人也会翻译成多路复用器,实际上指的是同一样东西。 只有网络IO才会使用选择器,文件IO是不需要使用的。 选择器可以说是NIO的核心组件,它可以监听通道的状态,来实现异步非阻塞的IO。换句话说,也就是事件驱动。以此实现单线程管理多个Channel的目的。 核心API ...
Read more
Java NIO 管道
首先我们看一下Channel有哪些子类: 常用的Channel有这四种: FileChannel,读写文件中的数据。 SocketChannel,通过TCP读写网络中的数据。 ServerSockectChannel,监听新进来的TCP连接,像Web服务器那样。对每一个新进来的连接都会创 ...
Read more
Java NIO 缓冲区
思维导图 NIO概述定义java.nio全称java non-blocking IO,是指JDK1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络(来源于百度百科)。 为什么使用NIO在上面的描 ...
Read more
Java IO 概览
Java IO流Java IO 也称为IO流,IO = 流,它的核心就是对文件的操作,对于 字节 、字符类型的输入和输出流。 IO是指对数据流的输入和输出,也称为IO流,IO流主要分为两大类,字节流和字符流。字节流可以处理任何类型的数据,如图片,视频等,字符流只能处理字符类型的数据。 IO流的本质是 ...
Read more
URL Decoder 异常 Illegal hex characters in escape (%)
在解析URL的时候,由于字符串中存在 % 导致解析失败 字符串 : http://passport.233.com/m/login/?redirectURL=https://m.233.com/chuji/shiti/202009/2114385550345.html?back=https://m. ...
Read more
CompletableFuture 组合处理
thenCombine / thenAcceptBoth / runAfterBoth这三个方法都是将两个CompletableFuture组合起来,只有这两个都正常执行完了才会执行某个任务,区别在于,thenCombine会将两个任务的执行结果作为方法入参传递到指定方法中,且该方法有返回值;the ...
Read more
CompletableFuture 异步回调
thenApply / thenApplyAsyncthenApply 表示某个任务执行完成后执行的动作,即回调方法,会将该任务的执行结果即方法返回值作为入参传递到回调方法中,测试用例如下: @Testpublic void test5() throws Exception { Fo ...
Read more