字符型常量和字符串常量的区别?

2021-01-14 15:29:54 浏览数 (1)

1. 形式上: 字符常量是单引号引起的一个字符;字符串常量是双引号引起的 0 个或若干个字符。

2. 含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算;字符串常量代表一个地址值(该字符串在内存中存放位置)。因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。要显示一个字符的Unicode编码,只需将char类型直接赋值给int类型即可。

代码语言:javascript复制
int n1 = 'A'; // 字母“A”的Unicodde编码是65
int n2 = '中'; // 汉字“中”的Unicode编码是20013

还可以直接用转义字符u Unicode编码来表示一个字符:

代码语言:javascript复制
// 注意是十六进制:
char c3 = 'u0041'; // 'A',因为十六进制0041 = 十进制65
char c4 = 'u4e2d'; // '中',因为十六进制4e2d = 十进制20013

3. 占内存大小:字符常量只占 2 个字节;字符串常量占若干个字节 (注意:char 在 Java 中占两个字节)。

4. 字符封装类 Character 有一个成员常量 Character.SIZE 值为 16,单位是bits,该值除以 8(1byte=8bits)后就可以得到 2 个字节。

Java语言要确定每种基本类型所占的存储空间大小。基本类型的大小不会随硬件架构的变化而变化。这种存储空间大小的不变性是Java语言具有可移植性的主要原因之一。

0 人点赞