数据类型
分类
整数类型
默认为 int 型,声明 long 型常量须后加 ‘l’ 或 ‘L’
浮点类型
默认为 double 型,声明 float 型常量须后加 ‘f’ 或 ‘F’
布尔型
boolean b = true;-
字符型
Java 字符用 Unicode 编码,因此可以进行计算
三种表现形式: char c = 'c';char c = '\n';char c = '\u000a';,直接使用 Unicode 值表示,\n 后跟一个十六进制整数,\u000a 表示换行符类型转换
不考虑布尔型,只研究其他七种基本类型
自动类型提升
当范围小的数据类型变量与范围大的数据类型变量做运算时,结果自动提升为范围大的数据类型byte/char/short -> int -> long -> float -> doublebyte/char/short之间相互运算,结果都是 int 类型
强制类型转换
- 自动类型提升运算的逆运算
- 要使用强转运算符
-
几种特殊情况
long l1 = 123;,不加 ‘l’ 或 ‘L’ 后缀可以通过编译,默认整数为 int 型,并自动提升为 long 型;
而long l2 = 9223372036854775808;,大于 9223372036854775807 且未加后缀,编译失败float f1 = 12.3;,不加 ‘f’ 或 ‘F’ 后缀不可以通过编译,因为默认浮点数为 double 型String
不是基本数据类型,是引用数据类型
String 可以定义空字符串,但 char 不能定义空字符:String s = "";,正确用法char c = '';,错误用法
字符串类型可以和基本数据类型做运算,但只能是连接运算:+,且运算结果仍为字符串运算
PS:
String str = 123 + "";System.out.println(str); // "123"int num = Integer.parseInt(str);System.out.println(num); // 123
