/*
java类型转换级别,由低到高分别为:
byte,short,char,int,long,float,double
低到高转换,叫自动类型转换
高到低转换,叫强制类型转换 强制类型转换需要注意内存溢出
内存溢出:假如byte类型最高是127,赋值128就叫溢出,无法转换正确
*/
public class nice4 {
public static void main(String[] args) {
int a = 128 ;
byte b = (byte) a ;
System.out.println(a); //输出128
System.out.println(b); //输出-128
//内存溢出,因为byte最大值是127,
//强制转换格式:(类型)变量名 如:(byte)a ---高到低转换
//自动转换格式: 直接赋值转换即可 如:double b = a ---低到高转换
/*
注意点:
1、无法对布尔值进行转换
2、不能把对象类型转换为不想干类型
3、高-低转换的时候,要强制转换
4、转换的时候可能会遇到内存溢出问题或精度问题
*/
System.out.println((int)46.7); //输出46 精度问题
System.out.println((int)-45.78f); //输出-45
}
}
public class nice5 {
public static void main(String[] args) {
int money = 10_000_000_00;
int years = 16;
int total = money * years ;
long total2 = money * years ;
System.out.println(total); //输出-1179869184
//计算过大,溢出
System.out.println(total2); //输出-1179869184
//long在转换前已经存在问题,默认已经是int
long total3 = money* ((long)years);
System.out.println(total3); //输出16000000000
//输出前先转换成long类型
//注意:L和l 大小写L,小写l一般是看成1,大写L一般看成是long类型,所以一般要大写L
}
}