1.  用HeapByteBuffer放int占几个byte?

占4个。而且不论你是放1还是-1还是0xffff。

因为int的长度是4个byte,HeapByteBuffer的存储又是byte数组。

2. 用HeapByteBuffer放char占几个byte?

同1,是两个,因为java中char的长度是2byte。

同样,不论是存英文字符还是存中文字符,都占用2个byte。

示例代码

ByteBuffer buff = ByteBuffer.allocate(1024*1024);
buff.putChar('c');
System.out.println(buff.position());
buff.putChar('中');
System.out.println(buff.position());
buff.flip();
char ch1 = buff.getChar();
char ch2 = buff.getChar();
System.out.println("ch1:" + ch1 + ",ch2:" + ch2);

上例中的’中’字在jvm中运转时是怎样编码的?

参见 Java虚拟机规范

更多的参见

“java语言使用的是Unicode编码”是指的jvm?.java文件?

3. unicode与utf-8是怎样的区别

参见 Unicode 和 UTF-8 有何区别?  标题问法不是很严格

4. 对于1中的整数“浪费空间”的问题有什么办法

参见h2数据库的org.h2.mvstore.DataUtils.writeVarInt(ByteBuffer, int)方法,能做到按需占用。

最新文章

  1. ASP.NET Web API Model-ParameterBinding
  2. 无需activity获得屏幕尺寸
  3. JQuery解析json数据
  4. Codeforces Round #363 Div.2[111110]
  5. Android 绿豆蛙版连连看(简陋版)
  6. PC安装了MAC,那么CMD键和OPTION键什么的在哪里?
  7. 【转】详解Oracle的dual表
  8. DevExpress GridControl功能总结
  9. 遇上了artTemplate做的东西
  10. PAT乙级 1003. 我要通过!(20)
  11. Samza文档翻译 : Concepts
  12. init.d文件夹
  13. Flink Program Guide (4) -- 时间戳和Watermark生成(DataStream API编程指导 -- For Java)
  14. 基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow
  15. java基础-四种方法引用
  16. IDEA引MAVEN项目jar包依赖导入问题解决
  17. openjudge(三)
  18. 找到多个与名为“Home”的控制器匹配的类型。解决方法
  19. Mysql与SQLserver区别
  20. Linux------使用Xfpt6连接阿里云ECS服务器

热门文章

  1. linux vi命令
  2. C#对象序列化与反序列化
  3. 桶装水 送水 消费充值PDA会员管理系统 介绍
  4. [数据库]cakephp操作ENUM、tinyint等类型的一点说明
  5. ACM: NBUT 1107 盒子游戏 - 简单博弈
  6. FLEX各种特效集合
  7. 如何在Android中实现全屏,去掉标题栏效果
  8. unity3d的GUI元素的界面坐标系统总结(有公式)
  9. log4j使用快速入门【转】
  10. c++多态的实现