【数据类型】
基本数据类型:4 类 8 种
A:整数 占用字节数
byte:1
short:2
int:4
long:8
B:浮点数
float:4
double:8
C: 字符
char:2
D:布尔
Boolean:1
数据类型的转换:
boolean 类型不能转换为其他的数据类型。
默认转换:
A: byte、short、charintlongfloatdouble
B: byte、short、char 之间不能相互转换,它们参与运算首先转换为 int 类型。
强制转换:
从大的数据类型到小的数据类型。
格式:
目标数据类型 变量 = (目标数据类型) (被转换的数据);
注意:
不要随意的去使用强制转换,因为它隐含了精度损失问题。
面试题:
byte b = 130;有没有问题?如果想让赋值正确,可以怎么做?结果是多少?
//因为 byte 的范围时:-128 到 127 分析:
A: 获取 130 的二进制:00000000 00000000 00000000 10000010,这是 130 的原码,也是反码,也是补码。
B: 做截取操作,截成 byte 类型的了。 10000010 这个结果是补码
C: 已知补码求原码。
结果为-126
ASCII 表中需要记忆的值:
‘a’ 97
‘A’ 65
‘0’ 48
补充内容:
1. 在定义 Long 或 Float 类型变量的时候,要加 L 或 F;
2. 整数默认的是 int 类型,浮点数默认的是 double 类型。
3. byte 、short 在定义的时候,它们接受的其实是一个 int 类型的值。这个是自己做了一个数据监测的,如果不在 它们的范围内,就报错。
4. byte 值的问题
byte b1 = 127;
5. 数据类型转换之默认转换
byte、short、char 只要参与运算就先转换为 int 类型
long: 8 个字节
float:4 个字节。
A:它们底层的存储结构不同。
B:float 表示的数据范围比 long 的范围要大。
6. Java 语言中的字符 char 可以存储一个中文汉字吗?为什么?
可以,因为 java 语言中的字符占用两个字节
char ch = ' 我 '; System.out.println(ch); 运行结果:我
Java 语言采用的是 Unicode 编码
终身学习者