字符和字符串

字符类型

字符类型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字符意思了。

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和空字符串""。

results matching ""

    No results matching ""