deme 05
public class Demo04 {
public static void main(String[] args) {
/*int i=128; 这里会内存溢出,原因是超出了数据类型的范围int的范围是-128-127;
byte b =(byte) i; 强制转换 格式:(类型)变量名
强制转换====高到低
自动转换====低到高
Java中的基本数据类型由低到高排序:byte,short,char int long float double*(小数优先级高于整数
*/
int i=128;
double b = i;
System.out.println(i);
System.out.println(b);
/*
注意点:
1.不能对布尔值进行数据类型转换(Boolean);
2.不能将对象类型转换为不相干的类型;
3.在将高容量数据转为低容量数据时,强制转换;
4.转换时可能会出现内存溢出或精度丢失;
*/
System.out.println("==================================");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f );//45
System.out.println("==================================");
char c ='a';
int d = c+1;
System.out.println(d);
System.out.println((char) d);
}
}
demo6
public class Demo05 {
public static void main(String[] args) {
//操作比较大的数时,注意内存溢出问题
//JDK7新特性 数字之间可以用下划线分割
long money = 10_0000_0000 ;
int years = 20;
long total = money*years;//计算的时候溢出了
long total2 = money*years;//默认的是int,已经出现了问题
long total3 = money*((long)years);
long total4 = ((long) money)*years;
System.out.println(total2);
System.out.println(total3);
System.out.println(total4);
}
}