java中char所占的字节数

didijiji 2012-11-15 07:58:57
C中有sizeof关键字可以计算某种数据类型所占的字节数,但是java中却没有,那么java中如何怎么得到char类型所占的字节数呢(char中在java中是占两个字节,但是如果事先不知道呢,有没有什么办法得出char在java中所占的字节数)
我在网上搜到了一个说是可以这样:
链接在这:http://zhengjunwei2007.blog.163.com/blog/static/352979422012226102426110/


char c = 'a';
System.out.println(c.getBytes().lenth());


但是好像时会报错,我输入c,然后打一个点,都不会自动弹出提示的,到底java中能不能输入类型所占字节数呢?
...全文
631 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangmingming2008 2013-06-07
  • 打赏
  • 举报
回复
应该和编译器有关吧
龙四 2012-11-15
  • 打赏
  • 举报
回复
引用 6 楼 ticmy 的回复:
你无法知道char底层究竟占了多少字节,可能是32字节,也可能是64字节,128字节 java值规定了每个类型的值域,也就是取值范围,char的取值范围用两个字节的补码来表示,最高位不为符号位 实际上,在jvm一层,通常是用int来表示byte,short,char,boolean类型的,而int究竟占多少位,jvm规范是没有规定的,爱怎么实现就可以怎么实现,但i……
更正:“可能是32字节,也可能是64字节,128字节”->"可能是32位,也可能是64位,128位……"
龙四 2012-11-15
  • 打赏
  • 举报
回复
你无法知道char底层究竟占了多少字节,可能是32字节,也可能是64字节,128字节 java值规定了每个类型的值域,也就是取值范围,char的取值范围用两个字节的补码来表示,最高位不为符号位 实际上,在jvm一层,通常是用int来表示byte,short,char,boolean类型的,而int究竟占多少位,jvm规范是没有规定的,爱怎么实现就可以怎么实现,但int的值域必须是4个字节的补码所表示的范围
halfsuccess 2012-11-15
  • 打赏
  • 举报
回复
引用
//单位为bit System.out.println("char:" + Character.SIZE); System.out.println("int:" + Integer.SIZE); System.out.println("short:" + Short.SIZE); System.out.println("long:" + Long.SIZE); System.out.println("byte:" + Byte.SIZE); System.out.println("float:" + Float.SIZE); System.out.println("double:" + Double.SIZE); byte: 8 short: 16 char: 16 int: 32 float: 32 long: 64 double: 64
同意1楼
Jacky-止涯 2012-11-15
  • 打赏
  • 举报
回复
引用 1 楼 icebamboo_moyun 的回复:
引用 楼主 didijiji 的回复:C中有sizeof关键字可以计算某种数据类型所占的字节数,但是java中却没有,那么java中如何怎么得到char类型所占的字节数呢(char中在java中是占两个字节,但是如果事先不知道呢,有没有什么办法得出char在java中所占的字节数) 我在网上搜到了一个说是可以这样: 链接在这:http://zhengj……
1楼正解,然后如果你想知道一个确认字符占多少个char,就可以用下面的方法来获取。

Character.charCount();
huntor 2012-11-15
  • 打赏
  • 举报
回复
链接里的文章应该是随手写的,不然怎么会犯在char类型的变量上调用String类提供的方法这种低级错误
huntor 2012-11-15
  • 打赏
  • 举报
回复
java中char是一个16位无符号整数。
惑惑 2012-11-15
  • 打赏
  • 举报
回复
引用 楼主 didijiji 的回复:
C中有sizeof关键字可以计算某种数据类型所占的字节数,但是java中却没有,那么java中如何怎么得到char类型所占的字节数呢(char中在java中是占两个字节,但是如果事先不知道呢,有没有什么办法得出char在java中所占的字节数) 我在网上搜到了一个说是可以这样: 链接在这:http://zhengjunwei2007.blog.163.com/blog/……
你看的那篇文章是错的 你可以使用下面的方法获取长度:

//单位为bit
System.out.println("char:" + Character.SIZE);
System.out.println("int:" + Integer.SIZE);
System.out.println("short:" + Short.SIZE);
System.out.println("long:" + Long.SIZE);
System.out.println("byte:" + Byte.SIZE);
System.out.println("float:" + Float.SIZE);
System.out.println("double:" + Double.SIZE);
输出结果为: char:16 int:32 short:16 long:64 byte:8 float:32 double:64

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧