码上风云

记录精彩的程序人生

  menu
24 文章
0 浏览
2 当前访客
ღゝ◡╹)ノ❤️

Java基本数据类型各占多大内存?汉字占多大内存

timg.jpg

Java 的基本数据类型有 8 种,分别是:

byte,short,int,long,float,double,boolean,char

那么大家知道这 8 种各占多大内存吗?
image.png
那么,知道java中一个汉字占多大内存吗?
有人直接说是占 2 个字节。
那么答案到底对不对呢?不多说,直接上代码。

import java.io.UnsupportedEncodingException;

public class ByteTest {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String code = "码";
        String c = "0xF0";
        System.out.println("UTF-8占用内存大小为:"+code.getBytes("UTF-8").length);
        System.out.println("GBK占用内存大小为:"+code.getBytes("gbk").length);
        System.out.println("GB2312占用内存大小为:"+code.getBytes("GB2312").length);
        System.out.println("UTF-16占用内存大小为:"+code.getBytes("UTF-16").length);
        System.out.println("=========================");
        System.out.println("UTF-8占用内存大小为:"+c.getBytes("UTF-8").length);
        System.out.println("GBK占用内存大小为:"+c.getBytes("gbk").length);
        System.out.println("GB2312占用内存大小为:"+c.getBytes("GB2312").length);
        System.out.println("UTF-16占用内存大小为:"+c.getBytes("UTF-16").length);
    }
}
运行结果:
UTF-8占用内存大小为:3
GBK占用内存大小为:2
GB2312占用内存大小为:2
UTF-16占用内存大小为:4
=========================
UTF-8占用内存大小为:4
GBK占用内存大小为:4
GB2312占用内存大小为:4
UTF-16占用内存大小为:10

用表格总结一下:
image.png


think twice, code once