字符和字符串
字符类型
字符类型char是基本数据类型,它是character的缩写。一个char保存一个Unicode字符。
因为Java在内存中总是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。要显示一个字符的Unicode编码,只需将char类型直接赋值给int类型即可:
char c1 = 'A';
char c2 = '中';
int n1 = 'A'; // 字母“A”的Unicodde编码是65
int n2 = '中'; // 汉字“中”的Unicode编码是20013
转义字符
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
常见的转义字符包括:
\"
表示字符"\'
表示字符'\\
表示字符\\n
表示换行符\r
表示回车符\t
表示Tab\u####
表示一个Unicode编码的字符
字符串连接
Java的编译器对字符串做了特殊照顾,可以使用+连接任意字符串和其他数据类型,这样极大地方便了字符串的处理。例如:
/**
* 字符串拼接
*/
public static void concatenate() {
String s1 = "Hello";
String s2 = "world";
String s = s1 + " " + s2 + "!";
System.out.println(s);
}
不可变特性
Java的字符串除了是一个引用类型外,还有个重要特点,就是字符串不可变。考察以下代码:
public static void immutability() {
String s = "hello";
String t = s;
s = "world";
System.out.println(t); // t是"hello"还是"world"?
}
小结
- Java的字符类型char是基本类型,字符串类型String是引用类型;
- 基本类型的变量是“持有”某个数值,引用类型的变量是“指向”某个对象;
- 引用类型的变量可以是空值null;
- 要区分空值null和空字符串""。