1.代码中的'<<'写法
private long ix(int i) {
return address + (i << 0);
}
这个就等价下面这种写法,但为什么用(i << 0)
private long ix(int i) {
return address + i;
}
我琢磨了很久,以为有什么特殊的考虑因素,后来看了其他openJDK6以后的代码才恍然大悟。DirectByteBuffer类是由Direct-X-Buffer.java作为模板生成的。生成的像其他的DirectShortBuffer和DirectCharBuffer是有 << 1。
待续...
分享到:
相关推荐
【IT十八掌徐培成】Java基础第26天-07.DirectByteBuffer.zip
【IT十八掌徐培成】Java基础第26天-08.DirectByteBuffer2.zip
Java-NIO-Programming-Cookbook英文版和配套源代码。有一个使用DirectByteBuffer和Non-Direct Buffer文件读取速度的对比实验程序和测试结果。
NIO是一种基于通道和缓冲区的I/O方式,它可以使用Native函数库直接分配堆外内存(区别于JVM的运行时数据区),然后通过一个存储在java堆里面的DirectByteBuffer对象作为这块内存的直接引用进行操作。这样能在一些...
使用 strace 命令来监控内存分配,找出OOM的原因 由于使用 Netty 导致的,那错误日志里可能会出现 OutOfDirectMemoryError 错误 如果直接是 DirectByteBuffer,那会报 OutOfMemoryError Direct buffer memory
DirectByteBuffer HeapByteBuffer ShortBuffer IntBuffer LongBuffer FloatBuffer DoubleBuffer CharBuffer Selector选择器 Selector的作用就是配合一个线程来管理多个channel,获取这些channel上发生
在JDK1.4 中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O 方式,它可以使用native 函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer 对象作为这块...
Java NIO通道:通道基础、文件通道、Socket通道、工具类 Java NIO缓冲区:基础、缓冲区(Buffer)、创建缓冲区、直接缓冲区(DirectByteBuffer) Java NIO选择器:核心概念、选择器使用、Demo、选择器深入、