数据类型

基本数据类型的转换
基本数据类型中的 int (4字节) 和 double (8字节)是默认的数据类型
类型的自动提升
public class DataTypeDemo1 {
public static void main(String[] args){
byte byteNum1 = 10;
byte byteNum2 = 22;
byte sum = byteNum1 + byteNum2;
}
}
/* 上面的写法会报错:
* DataTypeDemo1.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
* 这是因为java自动的类型提升所导致的,以防止出现不安全的情况如 "127 + 1"超出了byte的存储范围
*/
/*
* 只需将 sum 的数据类型改为 int 就好了
*/
public class DataTypeDemo2 {
public static void main(String[] args){
byte byteNum1 = 10;
byte byteNum2 = 22;
int sum = byteNum1 + byteNum2;
}
}
数据类型的强制转换
强制转换的格式
aimDataType newVal = ( aimDataType )( oldVal )
- 在范围内情况
public class DataTypeDemo3 {
public static void main(String[] args){
byte byteNum1 = 10;
byte byteNum2 = 22;
byte sum = (byte)(byteNum1 + byteNum2);
}
}
// byteNum1 + byteNum2 = 32, 32在byte的范围内
- 超出范围情况
public class DataTypeDemo4 {
public static void main(String[] args){
byte byteNum1 = 127;
byte byteNum2 = 1;
byte sum = (byte)(byteNum1 + byteNum2);
System.out.println(sum);
}
}
//运行结果: -128
/* 上述值转换前为 128,已超出byte(1字节)的储存范围,下面是转换过程分析:
(int)128 补码:00000000 00000000 00000000 10000000
(byte)补码:10000000
=> -128
*/
网友评论