形式上:
1. 字符常量是单引号括起来的一个字符
2. 字符串常量是双引号括起来的0个或多个字符
含以上:
1. 字符常量相当于一个整型值(ASCII值),可以参加表达式运算
2. 字符串常量代表一个地址值(该字符串在内存中的存放位置)
占内存大小:
1. 字符常量只占2个字节
2. 字符串常量占多个字节
注意:char在Java中占两个字节
字符封装类 Character 有个一成员常量 Character.SIZE 值为16,单位是 bites,该值除以8(1byte = 8bits)后就得到2个字节
在Java语言中,中文字符所占字节数取决于字符的编码方式:
-
一般情况下,采用ISO8859-1编码方式时,一个中文字符和一个英文字符一样只占1个字节;
-
采用GB2312或GBK编码方式时,一个中文字符占2个字节;
-
采用UTF-8编码时,个中文字符占3个字节
我们可以通过String类的getBytes(String charsetName)方法获取到字符串以指定编码方式编码后所得到的字节数组,字节数组的长度就是字符串在指定编码方式下所占的字节数。
"测试".getBytes("ISO8859-1").length
"测试".getBytes("GB2312").length
"测试".getBytes("GBK").length
"测试".getBytes("UTF-8").length
执行结果:
2
4
4
6
关于编码格式的详细介绍,下面这篇博文很详细:
一个中文字符占多少个字节