
public class Demo05 {
public static void main(String[] args) {
//byte,short,char--->int--->long--->float--->double
int i =128;
//强制转换 (类型)变量名 高--->低
byte b=(byte)i;//byte最大值127 内存溢出
System.out.println(i);//128
System.out.println(b);//-128
//自动转换 低--->高
int i2 =128;
double b2=i;
System.out.println(i2);//128
System.out.println(b2);//128
/**
* 注意点
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型
* 3.在把大容量转换到低容量的时候强制转换
* 4.转换的时候可能存在内存溢出和精度的问题
*/
System.out.println((int)33.5);
System.out.println((int)-22.8);
// *** 作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money =10_0000_0000;
System.out.println(money);//1000000000
int years=20;
int total=money*years;
System.out.println(total);//-1474836480 计算的时候溢出
long total2=money*years;
System.out.println(total2);//-1474836480 默认是int,转换之前存在问题
long total3=money*((long)years);
System.out.println(total3);//20000000000
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)