Java大小端 大端:数据高字节保存在内存低地址中,数据低字节保存在内存高地址中 小端:数据高字节保存在内存高地址中,数据低字节保存在内存低地址中 java虚拟机屏蔽了机器的大小端模式,默认都是大端模式; 可以通过ByteOrder.nativeOrder获取机器模式,通过ByteBuffer的or ...
分类:
编程语言 时间:
2020-04-21 18:43:43
阅读次数:
82
Netty 异步事件驱动的网络应用程序框架。 特点 高并发 基于NIO开发的网络通信框架 传输快 零拷贝 Netty的接受和发送bytebuffer使用堆外直接内存进行socket读写,传统堆内存进行socket读写,JVM将堆内存buffer拷贝到内存,然后写入socket。相比之下,消息在发送多 ...
分类:
Web程序 时间:
2020-04-07 22:30:42
阅读次数:
195
最大堆外内存的配置 -XX:MaxDirectMemorySize=15g 分配堆外内存 java.nio.ByteBuffer#allocateDirect DirectByteBuffer 类是包权限的,使用 unsafe 分配和回收内存 class DirectByteBuffer exten ...
分类:
编程语言 时间:
2020-02-21 17:52:58
阅读次数:
71
netty 中,每一个 channel 有一个写缓冲 ChannelOutboundBuffer ChannelOutboundBuffer 类中维持一个 Entry 链表,Entry 是链表的节点,封装了待写入的 ByteBuf,而 netty 最终写入 socket 的是 ByteBuffer, ...
分类:
数据库 时间:
2020-01-10 01:14:41
阅读次数:
93
主要是通过AbstractByteBufAllocator类实现的ByteBuffer的申请。 代码如下: 会根据是否有Unsafe的类支持来判断是否需要使用“堆外内存”;如果配置了3种情况则不会使用 (1)io.netty.noUnsafe这个属性false (2)io.netty.tryUnsa ...
分类:
Web程序 时间:
2019-12-20 11:58:25
阅读次数:
115
关于NIO Buffer中4个重要状态属性 position、limit、capacity 与 mark Buffer本身是一个容器,称作缓冲区,里面包装了特定的一种原生类型,其子类包括ByteBuffer、CharBuffer、LongBuffer、IntBuffer、DoubleBuffer、S ...
分类:
其他好文 时间:
2019-12-19 13:09:50
阅读次数:
65
NIO selector 多路复用reactor线程模型 package com.study.hc.net.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; ...
分类:
编程语言 时间:
2019-12-16 10:11:51
阅读次数:
218
一、Buffer缓冲区 package com.itbac.net.NIO.BIO; import java.nio.ByteBuffer; /** * Buffer缓冲区 */ public class BufferDemo { public static void main(String[] a ...
分类:
其他好文 时间:
2019-12-09 01:26:27
阅读次数:
90
1. 服务端 import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Iterator; import java.util.Set; pub ...
分类:
其他好文 时间:
2019-11-30 18:53:37
阅读次数:
79
JDK的ByteBuffer的缺点: 1.final byte[] hb;这是JDKde ByteBuffer对象中用于存储数据的对象声明;可以看到,其字节数组是被声明为final的,也就是长度是固定不变的,一旦分配好后不能动态扩容与收缩;而且当待存储的数据字节很大时就很有可能出现IndexOutO ...
分类:
编程语言 时间:
2019-11-24 21:11:56
阅读次数:
94