java的数据类型解析

发布时间:2024年01月12日

数据类型

Java中的数据类型

Java是一种强数据类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括 基本数据类型 和 引用数据类型 两种。

Java中的基本数据类型:

数据类型关键字内存占用取值范围
整数类型byte1-128~127
short2-32768~32767
int(默认)4-2的31次方到2的31次方-1
long8-2的63次方到2的63次方-1
浮点类型float4负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38
double(默认)8负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308
字符类型char20-65535
布尔类型boolean1true,false

说明:

e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。

在java中整数默认是int类型,浮点数默认是double类型。

类型转换

在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。

隐式转换(理解)

把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。例如:

double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0

类型从小到大关系图:

说明:

  1. byte、short和char类型的数据参与运算时会自动转换为int类型

byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2; 
// 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。
// 修改为:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
  1. boolean类型不能与其他基本数据类型的转换。

  2. 参与运算的数据 数据类型的结果以大的为准

强制转换

把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量,无法自动转换数据类型,不强转会报错。

强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;

例如:

double num1 = 5.5;
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)

类型转换案例

整数常量的优化机制

案例代码:

byte a = 3;
byte b = 4;
byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型
byte d = 3 + 4; //正确。常量优化机制

常量优化机制:

在编译时,整数常量的计算会直接算出结果,并自动判断该结果是否在byte取值范围内

在:编译通过

不在:编译不通过

文章来源:https://blog.csdn.net/m0_61925586/article/details/135537701
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。