数据转换
数据转换
自动类型转换
自动类型转换,也称为隐式类型转换,是指在不需要显式转换的情况下,Java编译器自动将一种数据类型转换为另一种数据类型。这通常发生在需要将小容量数据类型转换为大容量数据类型时,例如从int转换到long。自动类型转换遵循从低级到高级的顺序,具体顺序为:byte、short、char -> int -> long -> float -> double**。
强制类型转换
强制类型转换,也称为显式类型转换,需要程序员使用类型转换运算符来手动进行转换。这通常发生在将大容量数据类型转换为小容量数据类型时,可能会导致数据丢失或精度降低。例如,将double类型转换为int类型:
/**
* @version: java version 1.8
* @Author: Mr Orange
* @description:
* @date: 2025-12-01 18:35
*/
public class Demo05 {
public static void main(String[] args) {
int i= 128;
byte b= (byte)i; //byte最大值为127 内存溢出
//强制转换 (类型)变量 高--低
double c= i;
//自动转换 不需要加任何东西 低--高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*
1.不能对布尔值转换
2.不能把对象转换不相干的类型
3.在高容量转换到低容量时,强制转换
4.转换的时候可能出现溢出和精度问题
*/
System.out.println("========================");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45 精度问题
System.out.println("========================");
char c1= 'a';
int d =c1+1;
System.out.println(d);
System.out.println((char) d); //强转后变成’a' 后面+1 ‘a'后面是’b‘ 所以输出b
}
}
/**
* @version: java version 1.8
* @Author: Mr Orange
* @description:
* @date: 2025-12-01 18:49
*/
public class Dome6 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK操作特性 数字之间可以使用 _ 下划线分割
int money=10_0000_0000;
System.out.println(money);
int year =20;
int total=money*year;
System.out.println(total);//-1474836480 计算的时候数据溢出了
long total1=money*year;// -1474836480 默认是int 转换之前出现问题
System.out.println(total1);
long total12=money*((long)year);//在计算之前就进行转换
System.out.println(total12);
}
}

浙公网安备 33010602011771号