# 关于flip
ByteBuffer 的filp函数, 将缓冲区的终止位置limit设置为当前位置, 缓冲区的游标position(当前位置)重设为0. 
比如 我们有初始化一个ByteBuffer 后有 
ByteBuffer buffer = ByteBuffer.allocate(1024);
这是 终止位置limit在1024, 而起始位置position在 0
如果我们添加一个数据, 
buffer.putint(90);
这会使起始位置 position 移到4, 也就是说postion始终都在第一个可写字节的位置上. limit 则不会发生改变
而如果这时,我们调用
buffer.flip();
position转到0, limit转到 4 也就是原来的position 所在位置
这里的flip, 从另外一个角度上来说, 是在读数据时,操作的
然而, 如果我此时在写
buffer.putInt(90);
就会将原来的覆盖掉
如果我们在写, 这时就不行了, 就会重现问题了. 因为我们的limit是4, 我们写入数据不能超过这个limit,(当然还有capacity)
所以在写的时候,最好先清空buffer.clear();
如果真的不想清空, 也可以调用 
buffer.limit(newlimit);
设置一个较大的limit, 再写入 
当然不能超过capacity, 可以等于 capacity
fanxu 评论于 2010-09-29 14:31  回复  更多评论   

最新文章

  1. centos之开放80端口
  2. JavaScript Array
  3. 自然语言7_NLTK中文语料库sinica_treebank
  4. ng指令之 ng-repeat 篇
  5. 变态跳台阶-一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  6. 线程入门之join方法
  7. fork()和vfork()区别
  8. cocos2dx lua 学习笔记(二)
  9. Angular4.0.0发布总览文章
  10. Mysql MHA(GTID)配置(实操)
  11. 启动springjar
  12. Oracle性能优化-读懂执行计划
  13. Python建立时间事件引擎原理剖析
  14. selenium+chromedriver刷点击量
  15. asp.net core 通过ajax上传图片及wangEditor图片上传
  16. IP地址与无符号整数值相互转换
  17. Linux IPC BSD socket编程基础
  18. SQLServer SELECT @@IDENTITY 遇到的坑
  19. transfer function
  20. SpringBoot idea maven打包war及运行war包

热门文章

  1. 关于MFC中重载函数是否调用基类相对应函数的问题
  2. 【leetcode刷题笔记】Add Two Numbers
  3. 【跨域】Access-Control-Allow-Origin
  4. 2017-2018-1 20179215《Linux内核原理与分析》第二周作业
  5. C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?
  6. org.springframework.web.client.HttpClientErrorException: 400 null
  7. druid数据源的加密解密工具
  8. Python:更改字典的key
  9. centos7 查看启动ntp服务命令
  10. Servlet的生命周期以及简单工作原理的讲解