字符类型
- 字符类型char是基本数据类型,它是character的缩写,一个char保存一个Unicode字符,Java在内存中总是使用Unicode表示字符
- 所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。
- 要显示一个字符的Unicode编码,只需将char类型直接赋值给int类型即可,字母“A”的Unicodde编码是65
字符串类型
- 字符串类型String是引用类型,我们用双引号"..."表示字符串。一个字符串可以存储0个到任意一个字符
- 字符串使用双引号"..."表示开始和结束,那如果字符串本身恰好包含一个"字符怎么表示?例如,"abc"xyz",编译器就无法判断中间的引号究竟是字符串的一部分还是表示字符串结束。这个时候,我们需要借助转义字符,因为是转义字符,所以,两个表示一个字符:例如:String s = "abc"xyz"; // 包含7个字符: a, b, c, ", x, y, z
- " 表示字符"
- ' 表示字符'
- 表示字符
- 表示换行符
- 表示回车符
- 表示Tab
字符串连接
- java里面可以使用+连接任意字符串和其他数据类型,如果用+连接字符串和其他数据类型,会将其他数据类型先自动转型为字符串,再连接。Java 13开始,字符串可以用"""..."""表示多行字符串
- Java的字符串不可变,变的是变量的指向,字符串一直存在
空值null
- 引用类型的变量可以指向一个空值null,它表示不存在,即该变量不指向任何对象
- 注意要区分空值null和空字符串" ",空字符串是一个有效的字符串对象,它不等于null
类型自动提升与强制转型
- 在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,short和int计算,结果总是int,原因是short首先自动被转型为int
- 也可以将结果强制转型,即将大范围的整数转型为小范围的整数。强制转型使用(类型),例如,将int强制转型为short,要注意,超出范围的强制转型会得到错误的结果
- 整数运算的结果永远是精确的;运算结果会自动提升;可以强制转型,但超出范围的强制转型会得到错误的结果;应该选择合适范围的整型(int或long),没有必要为了节省内存而使用byte和short进行整数运算