Java学习之路04---类型转换

本文详细介绍了Java中的类型转换,包括自动类型转换和强制类型转换。自动类型转换发生在存储范围更大的类型向小的类型转换时,如整数到浮点数。强制类型转换则用于范围较小的类型到范围较大的类型,需要注意可能的数据丢失和错误。文章还探讨了不同类型之间的转换顺序和可能的陷阱,例如后缀修饰和整数预设类型的影响。
摘要由CSDN通过智能技术生成

架构图

前言

我们再进行Java程式编写时,常常会遇到运算的问题,例如常见的整数加减、浮点数的乘除、甚至是字元类型的运算。但很多时候运算的操作数不一定都是相同数据类型的

这时候我们就需要仰赖型别转换(Casting)将双方数据类型转换成统一类型,才可以继续运算。当我们说到型别转换,主要就是自动型别转换强制型别转换两种

布林类型数据不能进行型别转换

自动类型转换

自动型别转换顾名思义就是不需要使用者进行手动添加操作,编译器自行就会进行处理的型别转换,所以又称为隐式型别转换。出现条件为转换后变数类型的存储范围大于转换前的存储范围时,例如:

整数之间
若是相同数据类型之间的自动型别转换,通常不会造成数据丢失或发生错误

byte b = 1;
short s = 256;
int i = 65538;
long l = 458294l;

l = i; // 自动型别转换
i = s; // 自动型别转换
s = b; // 自动型别转换

上述例子中,编译器会自动将语句进行转换,例如l = i,经过编译器处理会变成l = (long)i
整数与浮点数
浮点数类型的存储范围较整数来得广,所以整数赋值给浮点数也是自动型别转换的一种

int i = 123456789;
float f = 12.3f;
f = i; // 自动型别转换

不过整数转浮点数的过程中很有可能发生赋值数据不一致问题。例如我们将上述范例执行一次,发现虽然整数可以自动转换成浮点类型,但精准度已经丢失

字元
字元类型数据也可以与浮点和整数之间进行转换,不过short与char之间不能进行自动型别转换,因为根据顺序转换表,char类型是直接转换成int

int i = 10;
char c = 'A';
float f = 12.3f;

i = c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值