类型转换

低--------------------------------------------------->高

byte,short,char-->int-->long-->float-->double

public class Demo03 {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i;//内存溢出
//强制转换 (类型) 变量名 高到低
System.out.println(i);
System.out.println(b);
//自动转换 低到高
int o = 128;
double p = o;
System.out.println(o);
System.out.println(p);

/*注意点
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型
* 3.在把高容量转换到低容量的时候,强制转换
* 4.转换的时候可能存在内存溢出,或者精度问题!*/
System.out.println("=================");
System.out.println((int) 23.7);//double高转低int,精度出问题
System.out.println((int) 45.54F);//float高转低int,精度出问题
System.out.println("=================");
char c = 'a';//98对应’a‘
int d = c+1;
System.out.println(d);
System.out.println((char)d);//char字符
System.out.println("=================");
//操作比较大的数的时候注意溢出问题
//JDK7新特性,数字下能用下划线_
int money =10_0000_0000;
int year = 20;
int total = money*year;
long total2 = money*year;
long total3 = (long)money*year;
System.out.println(total);//-1474836480溢出
System.out.println(total2);//-1474836480,默认是int,转换之前已经存在问题
System.out.println(total3);//20000000000,先把一个数转long
}
}

posted on 2021-02-10 21:29  小云拌饭  阅读(28)  评论(0)    收藏  举报

导航