Java基本数据类型转换
免责说明:java基础资料均来自于韩顺平老师的《循序渐进学Java零基础》教案,具体视频内容可以去B站观看,这些资料仅用于学习交流,不得转载用于商业活动
1.Java基本数据类型转换
1.1 自动类型转换
当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型这个就是自动类型转换
数量类型按精度大小排序为:
char<int<long<float<double
byte<short<int<long<float<double
int a='c'; double d=80
注意:
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度最大的那种数据类型,然后再进行计算
- 当我们把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动类型转换
- (byte,short)和char之间不会相互自动转换
- byte,short,char 他们三者可以计算,在计算时首先转化为int类型
- boolean不参与转换
- 当把具体数赋值给byte时,先判断该数是否在byte范围内,如果是就可以。如byte b1=10; (-128-127)
- 如果是变量赋值,需要判断类型。如。int n2=1; byte b2=n2(报错,n2是int类型,不能自动转换为byte)
- 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
1.2 强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符号(),但可能造成精度降低或溢出,需要格外注意
public class demo { public static void main(String[] args) { int i=(int)1.9; System.out.println(i); int j=100; byte b1=(byte) j; System.out.println(b1); } }
说明:
- 当进行数据的大小从大到小转换,就需要使用到强制转换
- 强转符号()只对最近的操作数有效
- char类型可以保存int的常量值,但是不能保存int的变量值,需要强转 int n1=2;char c2=(char)n1;
- byte和short,char类型在进行运算时,当作int类型处理
1.3 基本数据类型和String类型的转换
在程序开发中,我们经常需要将基本数据类型转换成String类型。或者将String类型转换成基本数据类型
基本类型转String类型
语法:将基本数据类型的值+""即可
int n1=100; float f=1.1f; double d=3.4; boolean b=true; String str1=n1+""; String str2=f+""; String str3=d+""; String str4=b+""; System.out.println(str1+" "+str2+" "+str3+" "+str4+" ");
String类型转基本数据类型
语法:通过基本类型的包装类调用parseXX方法即可
public class demo { public static void main(String[] args) { Integer.parseInt("128"); Double.parseDouble("68.85"); Float.parseFloat("25.65"); Short.parseShort("12"); Long.parseLong("12345"); Boolean.parseBoolean("true"); Byte.parseByte("12"); } }
字符串转换成char
String s="abcd"; char c=s.charAt(0)