Java数据存储单位以及bit、byte、字母、汉字之间的关系

java筑基 · 2023-02-03 · 153 人浏览

1 基本数据单位

1.Java中,最小的的数据单位是Byte,也就是字节类型,1 字母 = 1 byte ,一般3个字节(utf-8的编码方式)相当于中文中的一个汉字,B(大写)是Byte的缩写。其他的数据类型(INT,DOBBLE,BOOLEAN)都是以B(字节)为最基本的单位计算存储大小,例如int是4个B(字节)。java中的对应关系。
在这里插入图片描述

2.b(小写)是bit的缩写,也就是比特位(bit),存放一位二进制数,即 0 或 1,是计算机的最小基本单位,和Java无关。

2 换算的关系

计算机存储单位一般用bit、B、KB、MB、GB、TB等来表示。

字节byte:Byte是java中最常用的单位。8个二进制位(bit)为一个字节(B),

1 Kilo Byte(KB) = 1024 B(Byte)

Mega Byte(MB) = 1024 KB

1 Giga Byte (GB)= 1024 MB

1 Tera Byte(TB)= 1024 GB

1 Peta Byte(PB) = 1024 TB

1 Exa Byte(EB) = 1024 PB

3 汉字占用的字节数

Java中,汉字可以使用String或者char类型存储,例如String a=“名字”,Char a=”姓“。
汉字占用的字节数和编码的方式有关,不同的编码方式,汉字占用的字节也不同,例如utf-8,汉字占用3个字节,GBK占用2个字节等。
测试代码如下,

public void test() throws UnsupportedEncodingException {
        String a = "嘿";
        System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length);
        System.out.println("GBK编码长度:"+a.getBytes("GBK").length);
        System.out.println("GB2312编码长度:"+a.getBytes("GB2312").length);
        System.out.println("==========================================");
    }输出结果:UTF-8编码长度:3GBK编码长度:2GB2312编码长度:2