public class HelloWorld {
public static void main(String[] args) {
//类型转换
//低------------------------------------------->高
//byte, short, char-> int-> long-> float-> double
//运算时,不同类型的数据先转换为同一类型,然后进行运算
//强制转换 (类型)变量名 高到低
int i = 128;
byte b = (byte)i; //byte最大值127,128导致内存溢出
System.out.println(i);
System.out.println(b);
//自动转换 低到高
/*
【注】: 1.不能对布尔值进行转换
2.转换过程可能有内存溢出,或者精度问题
*/
System.out.println("===================精度问题====================");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
System.out.println("==============================================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
//操作比较大的数的时候,注意溢出问题
//JDK7特性,数字之间可以用下划线分割
int num = 10_0000_000;
System.out.println(num);
}
}
public class HelloWorld {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7特性,数字之间可以用下划线分割
int num = 10_0000_0000;
System.out.println(num);
int year = 20;
int total1 = num*year; //错误,计算时溢出了
long total2 = num*year; //计算默认是int,在转换成long之前已经出问题了
long total3 = num*((long)year); //先把一个数转换为long
System.out.println(total1);
System.out.println(total2);
System.out.println(total3);
}
}