类型转换
运算中,不同类型的数据先转换成同一类型,然后再进行运算
public class Demo3 { public static void main(String[] args) { int i=128; double b=i;//内存溢出 //强制转换 (类型)变量名 高--低 //自动转换 低--高 System.out.println(i); System.out.println(b); /* 注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换成不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者进精度问题 */ System.out.println((int)25.7); System.out.println((int)45.8f); char c='a'; int d=c+1; System.out.println(d);//自动转换 System.out.println((char)d);//强制转换 } }
package 基础语法; /** * @author qin chao * @date 2022/3/24 15:07 */ public class Demo4 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK新特性,数字之间可以用下划线分割,但是下划线并不会输出 int money=10_0000_0000; int year=20; int total=money*year;//-1474836480 计算的时候溢出了 long total2=money*year;//默认是int,转换之前已经是int了,已经溢出,存在问题了 long total3=money*((long)year);//先把一个数转换成long System.out.println(total); System.out.println(total2); System.out.println(total3); //L 因为小写l和数字1很像,所以平时尽量写大写L } }
数据类型转换就是指:不同数据类型之间的相互转换 关于数据类型转换只需要你掌握两种方式:
自动类型转换。 强制类型转换。
自动类型转换 关于自动类型转换你只需要记住一句话,就是:表数范围小的可以向表数范围大的进行自动类型转换。 你可以这样理解:当一个小的容器的水换到一个大的容器中毫无问题,但是一个大的容器的水换成小的容器可能会装不下,就会溢出。
既然自动类型转换只能是表数范围小的可以向表数范围大的转换那么我在实际使用中想要将表述范围大的向小的转换怎么办呢?诶这里就要用到强制类型转换了,顾名思义,强制类型转换就是将:表数范围大的数向表数范围小的进行转换。