一、基本数据自动转换
public class Automatic {
public static void main(String[] args) {
int a1 = 'a';
double a2 = 555;
System.out.println(a1);
System.out.println(a2);
}
}
二、注意事项
1、有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
public class Automatic01 {
public static void main(String[] args) {
int a1 = 'a';
// float a2 = a1 + 55.5;
//解决方法
double a2 = a1 + 55.5;
float a3 = a1 + 55.5f;
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
}
}
2、当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。
public class Automatic01 {
public static void main(String[] args) {
long a1 = 100000;
int a2 = a1;
}
}
3、byte、short和char之间不会相互自动转换。
public class Automatic01 {
public static void main(String[] args) {
byte a1 = 100;
char a2 = a1;
}
}
4、byte, short, char他们三者可以计算,在计算时首先转换为int类型。
public class Automatic01 {
public static void main(String[] args) {
byte a1 = 100;
char a2 = 100;
int a3 = a1 + a2;
System.out.println(a3);
}
}
5、boolean不参与转换
public class Automatic01 {
public static void main(String[] args) {
boolean a1 = false;
int a2 = a1;
}
}
6、自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型
public class Automatic01 {
public static void main(String[] args) {
int a1 = 100;
long a2 = 1000;
float a3 = 1000.0f;
float a4 = a1 + a2 + a3;
System.out.println(a4);
}
}
三、基本数据类型与 String类型转换
将基本数据类型转成String类型,或者将String类型转成基本数据类型。
1、基本数据类型转String类型
public class String01 {
public static void main(String[] args) {
int a1 = 10;
long a2 = 100;
float a3 = 100.0f;
double a4 = 10.00;
boolean a5 = false;
System.out.println(a1 + "");
System.out.println(a2 + "");
System.out.println(a3 + "");
System.out.println(a4 + "");
System.out.println(a5 + "");
}
}
2、String类型转基本数据类型
import java.lang.Integer;
public class String02 {
public static void main(String[] args) {
String num = "321";
int a1 = Integer.parseInt(num);
long a2 = Long.parseLong(num);
float a3 = Float.parseFloat(num);
double a4 = Double.parseDouble(num);
boolean a5 = Boolean.parseBoolean("false");
short a6 = Short.parseShort(num);
char a7 = num.charAt(0);
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
System.out.println(a5);
System.out.println(a6);
System.out.println(a7);
}
}