Java基础 -- (类型转换)

171 阅读2分钟

基本数据类型转换

自动类型转换

  1. Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这就是自动类型转换
  2. 数据类型按精度(容量)大小排序为: 第一种:
graph TD
char --> int --> long --> float --> double

第二种:

graph TD
byte --> short --> int --> long --> float --> double

自动类型转换细节

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据数据转换成容量最大的那种数据类型,然后再进行计算
int n1 = 10;
double d1 = n1 + 1.1;
  1. 当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错。反之会进行自动类型转换
int n = 1.1; //会报错
  1. (byte , short) 和 char之间不会互相自动转换
  2. byte, short, char 他们三者可以计算,在计算时首先转换为int类型
  3. boolean 不参与转换
  4. 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

强制类型转换

  1. 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加强制转换符(),但是可能会造成精度降低或者溢出,需要格外注意
int i = (int)1.9 // 打印出来显示的是1

强制类型转换细节

  1. 当进行数据的大小从大---->小,就需要用到强制类型转换
  2. 强转符号只针对最近的操作数有效,往往会使用小括号提升优先级
int x = (int)10*3.5+2*1.5 // 错误
int y = (int)(10*3.5+2*1.5)
  1. char类型可以保存int的常量值,但不能保存int的变量值,需要强转
char a = 100; // Ok
int m = 100; // ok
char a2 = a + m; //错误
char a3 = a + (char)m; // ok
  1. byteshort类型在进行运算时,当作int类型处理