一、基本数据类型转换
Java中精度小的类型可以自动转换为精度大的数据类型,即自动类型转换
数据类型按照精度(容量)大小排序
自动类型转换细节
- 有多种类型的数据混合运算的时候,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
- 当我们把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动类型转换。
- (byte , short )和 char 之间不会相互自动转换。
- byte, short, char 三者可以计算,在计算时首先转换为int类型
- boolean不参与转换
- 自动提升原则,表达式结果的类型自动提升为操作数中最大的类型
二、基本数据类型的强制转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或者溢出
强制类型转换的细节
-
当数据的大小从大到小,就需要进行强制类型转换
-
强制转换符只针对于最近的操作数有效,会使用小括号来提升优先级
int x = (int)10*3.5 + 6*1.5;//先把10转换成int,再运算 int y = (int)(10*3.5 + 6*1.5); System.out.println(y);
-
char类型可以保存int的常量值,但不能保存int的变量值,需要强转
char c1 = 100; int m = 100; char c2 = m; char c3 = (char)m; System.out.println(c2);
-
byte和short类型在进行运算的时候,当作int类型处理。
三、基本数据类型和String类型的转换
基本数据类型转String
将基本类型的值+""即可
int n1 = 100;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 +"";
String s2 = f1 +"";
String s3 = d1 +"";
String s4 = b1 +"";
String类型转换为基本数据类型
通过基本类型的包装类调用parseXX方法
//使用基本的数据类型对应的包装类的相应方法,得到基本的数据类型
String s5 = '123';
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
boolean b = Boolean.parseBoolean("true");
short num6 = Short.parseShort(s5);
//怎么把字符串转换成字符char ->含义是指 得到字符串的第一个字符
//s5.charAt(0) 得到 s5字符串的第一个字符'1'
System.out.println(s5.charAt(0));