#How many bytes does char occupy in Java?
A char in java takes up 2 bytes. Java uses Unicode, 2 bytes to represent a character. A number, English or Chinese character is a character, but when it comes to numbers and English, the first byte of the two bytes stored is 0, which is a waste of space. Storing Chinese characters takes up 2 bytes.
1: "Byte" is byte, "bit" is bit;
2: 1 byte = 8 bit;
The example code is as follows:
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; } }
Run results:
bytes 大小:3 bytes1大小:2
java uses unicode to represent characters. The unicode of the Chinese character "中" is 2 bytes.
String.getBytes(encoding) method is to obtain the byte array representation of the specified encoding.
Usually gbk/gb2312 is 2 bytes and utf-8 is 3 bytes.
If encoding is not specified, the system default encoding will be used.
php Chinese website, a large number of freeJava introductory tutorials, welcome to learn online!
The above is the detailed content of How many bytes does char occupy in Java?. For more information, please follow other related articles on the PHP Chinese website!