Java中基本类型占字节数以及Uint32的意思

2017-11-01  本文已影响0人  G桂

初学开发的时候(我的第一门语言是JAVA,android方向),基本很少考虑java中基本类型的占用字节数。
直到工作中接触到串口通讯,与单片机通讯,看着那些通讯文档,看着例如Uint16Uint32Uint64Char(16)Char(64)等等这些值类型的时候才发现一头雾水。

下面先讲讲java中的基本类型占用的字节数。文章最后再讲讲这些值类型的意思。

一. java中基本类型占用字节数

借鉴:http://www.jianshu.com/p/fd560bc39adb

1. 整型

类型 存储需求 bit数 取值范围 备注
int 4字节 4*8 -2147483648~2147483647 即 (-2)的31次方 ~ (2的31次方) - 1。
为什么是31而不是32?因为第一位是符号位,用来表示正负的
short 2字节 2*8 -32768~32767
long 8字节 8*8
byte 1字节 1*8 -128~127

2. 浮点型

类型 存储需求 bit数 取值范围 备注
float 4字节 4*8 float类型的数值有一个后缀F(例如:3.14F)
double 8字节 8*8 没有后缀F的浮点数值(如3.14)默认为double类型

3. char类型

类型 存储需求 bit数 取值范围 备注
char 2字节 2*8 Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。

至于为什么 Java 中 char 无论中英文数字都占用2字节,是因为 Java 中使用 Unicode 字符,所有字符均以2个字节存储。
而如果需要识别字符是否为中文,可以使用正则匹配式:

String _regex = "[\\u4e00-\\u9fa5]";

4. boolean类型

类型 存储需求 bit数 取值范围 备注
boolean 1字节 1*8 false、true

二. 为什么java中int占4个字节。

三. Uint16、Uint32、Uint64、Char(16)的意思

private String decode(byte[] b) {
  char[] psw = new char[4];
  for (int i = 0; i < psw.length; i++) {
    psw[i] = (char) b[i];
  }
  return String.valueOf(psw);
}
上一篇 下一篇

猜你喜欢

热点阅读