java类型转换

自动转换

自动转换又称为隐式转换或类型提升,由java编译器和运行时环境自动完成。自动转换一般发生于基本类型混合出现的情形。

java对基本类型混合出现时自动转换规则为:

byte,short,char>int>long>float>double

开发者通常无须关心自动转换的细节,不同的基本类型相遇时,自动转换总是将“小”类型提升为“大类型”,这样做的目的很明显——保证值和精度不会丢失。例如,byte型与long型相遇时,前者将被符号扩展为64为的long型。对于byte,short,char型,它们相遇时不会发生自动转换,如确实需要转换,可以使用强制转换。

强制转换

强制转换又称为显式转换或造型,这种转换由代码显式告知java编译器和运行时环境将某种类型的数据转换成其它类型,其语法格式为:

(目标类型)式子 或 (目标类型)(式子)

其中,目标类型是要转换到的类型,若式子仅含单个常量或变量,则可以省略其外的一对圆括号,否则不能省略。

例如,“(int)a” 与“(int)(a)”是等价的——都是将a的值强制转换为int型,而“(long)(a+b)”与“(long)a+b” 却不等价——因求和运算优先级低于强制转换,前者是将a与b的和强制转换为long型,而后者却是将a的值强制转换为long型,再与b相加。

相对于自动转换,强制转换更为灵活,使得开发者能自由控制转换的方向以满足不同的需求,但需要注意以下两点:

  • 不能boolean型与其它基本类型之间做强制转换。
  • 无论是自动转换还是强制转换,转换的过程中只是得到一个临时的变量,而被转换变量的类型并没有发生变化,仍然是声明变量时所指定的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南离火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值