本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
ByteBuffer常用方法详解
ByteBuffer常用方法详解(转)
时间 2014-08-04 00:47:54 CSDN博客
原文 http://blog.csdn.net/u012345283/article/details/38357851
主题 JVM 面向对象编程
Bytebuffer和ByteBuf比较
一.ByteBuffer
ByteBuffer是JDK NIO中提供的Java.nio.Buffer, 在内存中预留指定大小的存储空间来存放临时数据,其他Buffer 的子类有:CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBuffer 和 ShortBuffer
1. Buffer
ByteBuffer继承B ...
Java nio读取文本文件
JDK1.4的java.nio.*包中引入了新的Java I/O类库,其目的在于提高速度。在新I/O中我们需要知道有两个非常重要的对象,那就是通道和缓冲器。唯一与通道交互的缓冲器是ByteBuffer。
1、简单读取文本信息(不支持中文)
FileInputStream in = new FileInputStream("E:/nio/test_en.txt");
Fil ...
关于ByteBuffer中flip和rewind方法的作用说明
关于flip,看到JDK的文档大概是这么说的:“将limit属性设置为当前的位置”;而关于rewind方法,是在limit属性已经被设置合适的情况下使用的。也就是说这两个方法虽然都能够使指针返回到缓冲区的第一个位置,但是flip在调整指针之前,将limit属性设置为当前位置。
以下程序可以验证:
package com.bijian.study;
imp ...
ByteBuffer
ByteBuffer:
创建ByteBuffer的两种方式:
ByteBuffer buffer = ByteBuffer.wrap(byte[]);
ByteBuffer buffer = ByteBuffer.allocate(int );
capacity:buffer的容量
limit:可读写的范围 如果容量是10 ,limit是5,则只有前5位是可读写的
pos ...
Java NIO使用及原理分析(二)
在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的Buffer对象。
在缓冲区中,最重要的属 ...
数值类型与字节数组之间的相互转换
我们在上文 如何选择使用字符串还是数字呢? 中阐述了使用数值类型的好处,那么问题来了,如何在数值类型与字节数组之间相互转换呢?
我们先看看单个数值类型和字节数组之间的转换,我们以Integer类型为例:
public static byte[] intToBytes(int x) {
ByteBuffer intBuffer = ByteBuffer.allocate(Integer ...
java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果文件超大的话,更快的方式是采用MappedByteBuffer。
MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。NIO最主要的就是实现了对异步操作的支持。其中一种通过把一个套接字通道(SocketChannel)注册到一个选择器( ...
java.nio.BufferUnderflowException 分析
在写一个简单的Buffer的小例子的时候,抛出一个异常:
Exception in thread "main" java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Buffer.java:498)
at java.nio.HeapByteBuffer.getChar(HeapByte ...
NIO UDP 编程
和TCP的SocketChannel类似,UDP的DatagramChannel能充分利用NIO的优势。
服务端:Selector, DatagramChannel, ByteBuffer
客户端:DatagramChannel, ByteBuffer
区别:
a. 服务端没有与TCP的ServerSocketChannel相对应的Channel,服务端和客户端之间更趋于平等,不过服务端 ...
NIO学习笔记2(ByteBuffer)
ByteBuffer这个类略蛋疼
作为nio里最常用的字节流运载工具,ByteBuffer提供了很多非常好用的接口
首先创建对象,主要有两种方式
ByteBuffer buffer;
//直接划定大小的空buffer,容量由一个int参数定义
buffer=ByteBuffer.allocate(1024);
//或者直接由已存在的byte[]数组生成,大小由byte[]的length决定 ...
ByteBuffer
ByteBuffer的常用属性
1.position 标识下一个byte的操作位
2.limit 标识上界
3.capacity 标识容量
4.mark 辅助标识
ByteBuffer的常用函数
ByteBuffer.allocate(250) -- 新建byteBuffer
bb.wrap(new byte[100]) -- 新建byteBuffer
p ...
netty从入门到精通——实例篇(一)
前面了解了netty的基本用法与几个核心概念,从本文开始会通过一些实例(主要参考源码example包)来进一步学习netty的使用方法以及其中的原理。
先来实现一个简单的功能:服务端如果接收到客户端的连接,则返回字符串”success”,客户端读到该消息打印出来。
服务端的方法改写了第一篇blogNetty从入门到精通—入门篇中的handler,具体如下:
class ...