⑤类型转换
以下内容均来自【狂神说Java】Java零基础学习视频通俗易懂P25 观看学习
类型转换
Java代码如下
public class Demo04 {
public static void main(String[] args) {
//强制转换 (类型)变量名 高--低
//自动转换 (类型)变量名 低--高
int i =128;
byte b =(byte) i; //强制转换 将 i 从int类型转换成byte类型
System.out.println(i); //结果为128
System.out.println(b); //结果为-128,因为byte最大是127,所以产生了内存溢出,出现问题
int i1 = 128;
double d = i1; //此时 i1 会自动从int类型转换成double类型 int低 --->double高 自动转换
System.out.println(i1); //结果为128
System.out.println(d); //结果为128.0
System.out.println("=============================");
/*
注意点:1、不能对Boolean布尔类型进行转换
2、不能把对象类型转化成不相干的类型,例如人不能转换成猪,但是男人可以变女人
3、高容量转换成低容量,强制转换
4、转换的时候存在内存溢出,或者精度问题!
*/
System.out.println((int)52.1); //结果为52,精度出现问题
System.out.println((int)-52.09f); //结果为-52,精度出现问题
System.out.println("=============================");
char c = 'a';
int i2 = c+1;
System.out.println(i2); //结果为98
System.out.println((char) i2); //结果为b
System.out.println("=============================");
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线_分割,下划线不会被表现出来
int money = 10_0000_0000;
int year = 20;
System.out.println(money); //结果为1000000000
int total = money*year;
System.out.println(total); //结果为-1474836480, 计算的时候溢出了
long total2 = money*year; //默认是int类型。在转换之前是int类型,已经溢出了,所以转换成long类型时候看到有问题
System.out.println(total2); //结果为-1474836480
long total3 = money*((long)year); //先把一个数从int类型变成long类型
System.out.println(total3); //结果为20000000000,结果没问题
//long类型 以后在数字后面写大写 L ,不要写小写 l ,小写的l 容易跟数字 1 混淆
}
}
代码运行结果如下