Java中char到底是多少字节?

Python012

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个字节 

       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