上一次主要讲了基本数据类型的相关知识点,今天我们接着讲,现在存的知识点有很多了,如果一味的学习,不敲代码,不复习,最终还是事倍功半。
本节目录
目录
前言
今天继续上一次的写,上一次写完基本数据类型了。
一、基本数据类型的转换
1.自动类型转换
(1).介绍:
自动类型转换:当Java程序在进行赋值或者运算时,精度小的类型自动转换成精度大的数据类型。
(2).数据类型按精度(容量)大小顺序(规则,背诵)
注意:方向不可逆
看一个示例:
①细节1: 有多种数据类型的数据混合运算时
//系统首先自动将所有数据转换成容量大的
//那种数据类型,然后再计算
比如:
public class Test01 {
public static void main(String[] args){
int num1 = 10;
double num2 = num1 + 1.1;
System.out.println(num2);
}
}
输出:11.1
②细节二: 当我们把精度(容量)大的数据类型,赋值给精度(容量)小的数据类型就会报错。
//反之就会进行自动类型转换
错误示例:
public class Test01 {
public static void main(String[] args){
int num1 = 10.0;
System.out.println(num1);
}
}
③细节三:当把具体整数赋值给byte时,系统会先判断这个整数是否在-128到127的范围内
//如果是,就可以。
public class Test01 {
public static void main(String[] args){
byte num1 = 10;
byte num2 = 257;
System.out.println(num2);
}
}
④细节四:(byte,short)和char 不能进行自动类型转换
public class Test01 {
public static void main(String[] args){
char num1 = 97;
byte num2 = num1;
short num3 = num1;
}
}
⑤细节五:byte char short三者之间可以运算,在计算时首先转换成int类型(只要出现他们中的一个或者多个 ,运算时其精度就会自动转换为int类型)
⑥细节六:boolean类型不能参与转换
⑦细节七:自动提升原则:表达式结果的数据类型自动提升为 操作数中最大的类型。
2.强制类型转换
(1)基本使用,介绍
自动类型转换的逆过程,将容量大的数据类型转换成容量小的数据类型,使用时要加上强制类型转换符() ,但可能造成精度降低或者溢出,要格外注意。
public class Test01 {
public static void main(String[] args){
//精度降低
int num1 = (int)1.9;
System.out.println(num1);
//精度溢出,比较严重
int num2 = 2000;
byte num3 = (byte)num2;
System.out.println(num3);
}
}
(2)细节
①当进行数据类型的大小比较为 :从大-->小 ,就需要用到强制类型转换
②强制类型转换符号 () 只针对于最近的操作数有效,往往会使用小括号提高优先级。
(3) char 类型可以保存 .int的常数值,但不能保存int 类型的变量值,需要强转(4)byte,short和char 类型在进行运算时,当做int类型处理。
3.基本数据类型和String类型的转换
(1)基本数据类型向String类型的转换
语法:将基本类型的值 + ""即可。
eg:char n2 = 97------>String str1 =n2 +"";
(2)String类型向基本数据类型的转换
语法:通过基本数据类型的包装类调用 parseXX方法即可
String n6 ="123";
int num1 = Integer.parseInt(n6);
double num2 = Double.parseDouble(n6);
float num3 = Float.parseFloat(n6);
long num4 = Long.parseLong(n6);
byte num5 = Byte.parseByte(n6);
boolean num6 = Boolean.parseBoolean("true");
short num7 = Short.parseShort(n6);
(4)注意事项:
①在将String类型转成 基本数据类型时,要确保String类型能够转换成有效的数据,比如
我们可以把“123”转换为一个整数,但是不能把"hello"转换成一个整数,即:得确保能够转换时,才能使用String类型转换成数据类型
public class Test01 {
public static void main(String[] args){
String str = "hello";
int num1 = Integer.parseInt(str);
System.out.println(num1);
}
}
②如果格式不正确,就会抛出异常,程序就会终止,如上图所示。
作业练习:
总结
这一节主要讲解了数据类型转换相关的知识点,下一节我们将会讲到有关运算符的知识点,加油,万丈高楼平地起。