Java中char到底是多少字节

Python08

Java中char到底是多少字节,第1张

java中的char占2个字节 

       1:“字节”是byte,“位”是bit ;

2: 1 byte = 8 bit ;

char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

代码如下:

public class Test {

    public static void main(String[] args) {

        String str= "中"

        char x ='中'

        byte[] bytes=null

        byte[] bytes1=null

        try {

            bytes = str.getBytes("utf-8")

            bytes1 = charToByte(x)

        } catch (UnsupportedEncodingException e) {

            // TODO Auto-generated catch block

            e.printStackTrace()

        }

        System.out.println("bytes 大小:"+bytes.length)

        System.out.println("bytes1大小:"+bytes1.length)

    }

    public static byte[] charToByte(char c) { 

        byte[] b = new byte[2] 

        b[0] = (byte) ((c & 0xFF00) >> 8) 

        b[1] = (byte) (c & 0xFF) 

        return b 

    }

}

结果如下:

bytes 大小:3

bytes1大小:2

首先,java中的一个char的确是2个字节。java采用unicode,2个字节来表示一个字符。

一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字节的第一个字节都为0,就是浪费了点空间。存汉字就占满了2个字节。

因为java中的char是两个字节的,所有可以用来存储中文(一个中文也是两个字节),而在c语言中char只是一个字节,所有不能用来存储中文,要想存储中文,只能用字节数组。

java的基本数据类型长度

* byte:1

* short:2

* int:4

* long:8

* boolean:1

* char:2

* float:4

* double:8

c的基本数据类型长度

* short:2

* int:4

* long:4

* char:1

* float:4

* double:8