今天在公交车上遇到了扒手!司机提示了好多次说“请注意扒手”,我猜想司机一定看到了"熟悉的面孔"所以才这么说的。。。结果不出所料,一个男同胞的手机被扒了,司机很恼怒,汗。。。算了不说了。。说了伤心,尽管不是我的手机被偷!
上一篇文章我对NIO的包进行全面的概括,下面我们就详细的讲讲这些类。
首先讲一下Buffer 这个类是一个抽象类,继承自Object!
这个类是缓冲区由于数据的输入和输出相对于其他的操作是很消耗资源的,而缓冲区正好可以帮助我们改善这些情况。
它从两个方面来提升效率:
减少对实际物理内存的频繁操作
缓冲区被创建就分配了内存,他能够被重用,而不至于让我们频繁的动态创建和回收。
Buffer这个类的作用就类似与BufferedInputStream 和 BufferedOutputStream BufferedRead
BufferedWriter.
来看看API 中 Buffer的具体方法和属性。
那么怎么改变他们呢?
前面已经提到,Buffer是一个抽象类所以他不能实例化,她有多个子类,每一种基本类型都有它对应的缓冲类但是boolean除外!此外还有就是ByteBuffer这个子类,它定义了存放数据的字节单元,但是他不能实例化只能通过静态方法来得到他的对象集体方法如下:
以上两个方法我并没有找到具体的区别性能上也米有测试,希望做过研究的同学给说一下!
先说到这里。。心情不好!等我调整一下心情在写~
好了接着说其他的类,Charset 这个类
它包含的方法我们这里只需要记住两个就行了
不管是ByteBuffer 还是CharBuffer 都是Buffer的子类。那么推测Buffer的另一种用途就是帮助这些基本类型之间进行转换,我们可以按照指定的形式来转换自己的数据!
上一篇文章我对NIO的包进行全面的概括,下面我们就详细的讲讲这些类。
首先讲一下Buffer 这个类是一个抽象类,继承自Object!
这个类是缓冲区由于数据的输入和输出相对于其他的操作是很消耗资源的,而缓冲区正好可以帮助我们改善这些情况。
它从两个方面来提升效率:
减少对实际物理内存的频繁操作
缓冲区被创建就分配了内存,他能够被重用,而不至于让我们频繁的动态创建和回收。
Buffer这个类的作用就类似与BufferedInputStream 和 BufferedOutputStream BufferedRead
BufferedWriter.
来看看API 中 Buffer的具体方法和属性。
capacity //定义了缓冲区的容量,也就是可以保存多少数据
limit//定义了缓冲区的极限,当前缓冲区的终点
postion//读取的位置
那么怎么改变他们呢?
clear();//设置极限为容量 并把将要读取的位置设置为0
flip();//设置极限为位置,并把位置设置为0
rewind();//不修改极限,但把位置设置为0
前面已经提到,Buffer是一个抽象类所以他不能实例化,她有多个子类,每一种基本类型都有它对应的缓冲类但是boolean除外!此外还有就是ByteBuffer这个子类,它定义了存放数据的字节单元,但是他不能实例化只能通过静态方法来得到他的对象集体方法如下:
allocate(int capacity)//返回指定大小的缓冲区
allocateDirect(int capcaity)//返回新的缓冲区
以上两个方法我并没有找到具体的区别性能上也米有测试,希望做过研究的同学给说一下!
先说到这里。。心情不好!等我调整一下心情在写~
好了接着说其他的类,Charset 这个类
它包含的方法我们这里只需要记住两个就行了
encode(String str) //返回的是ByteBuffer
decode(ByteBuffer bb)//返回的是CharBuffer
不管是ByteBuffer 还是CharBuffer 都是Buffer的子类。那么推测Buffer的另一种用途就是帮助这些基本类型之间进行转换,我们可以按照指定的形式来转换自己的数据!