Java基础:类型转换
前言
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
-
运算中,不同类型的数据先转化为同一类型,然后进行计算(向表示范围大的类型转化,相同类型不变)
分类
- 强制类型转换(大范围向小范围转换)
- 自动类型转换(小范围向大范围转换)
代码示例
-
强制类型转换与自动类型转换
public class Demo4 { public static void main(String[] args) { int i=128; //强制类型转换 (类型)变量名 高——>低 byte b=(byte)i; //内存溢出 System.out.println(i); System.out.println(b); char c='a'; int d=c+1; System.out.println(d); System.out.println((char)d); System.out.println("==============="); //自动类型转换 低——>高 double e=i; System.out.println(e); /* 注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不想干的类型 3.在高容量转换到低容量的时候,强制转换 4.在转换过程中可能存在内存溢出,或者精度问题 */ } }
-
精度问题
//有关精度问题的代码示例 System.out.println((int)23.7); System.out.println((int)-45.89f);
-
内存溢出问题
public class Demo5 { public static void main(String[] args) { //操作比较大的数时,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000; int years=20; int total=money*years; System.out.println(total); //计算时溢出了 long total2=money*years; //默认值是int,转换之前已经存在问题了 System.out.println(total2); //解决方法 long total3=money*((long)years); //向范围大的类型转换 System.out.println(total3); } }
重要声明:本篇文章整理自B站狂神说Java

浙公网安备 33010602011771号