byte short int占用的字节数

编码问题存在两个方面:JVM之内和JVM之外。
1、Java文件编译后形成class
这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码格式正确读取后产生class文件,这里的class文件编码是Unicode编码(具体说是UTF-16编码)。
因此,在Java代码中定义一个字符串:
String s="汉字";
不管在编译前java文件使用何种编码,在编译后成class后,他们都是一样的: Unicode编码表示。

2、JVM中的编码
JVM加载class文件读取时候使用Unicode编码方式正确读取class文件,那么原来定义的String s="汉字"; 在内存中的表现形式是Unicode编码。

 

ASCII码: 一个英文字母(不分大小写)占一个字节,一个中文汉字占两个字节。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制,最小值0,最大值255。
UTF-8编码: 一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。 (utf-8的mysql库  VARCHAR2(32) 能支持32个中文, length() 是 96。

Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节
 

boolean false/true(理论上占用1bit, 1/8字节,实际处理按1byte处理)
byte:  1个字节占8位。 如果有正负则-128到127;否则0~256.
char :2个字节
short : 2个字节
int:  4个字节
float:  4个字节
double:   8个字节
long:   8个字节

转载于:https://my.oschina.net/u/3434392/blog/1649497

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值