028-86763871

精品课程

Java中的基本数据类型转换(自动、强制、提升)

  • 来源:
  • 2020-10-16 14:40
  • 阅读()
  • 分享
说基本数据类型转换之前,先了解下 Java 中的 8 种基本数据类型,以及它们的占内存的容量大小和表示的范围,如下图所示。
 
 
 
重新温故了下原始数据类型,现在来解释下它们之间的转换关系。
 
自动类型转换
 
自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。
 
如:

 
具体自动转换如如下图所示。
 
 
 
实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。
 
自动转换也要小心数据溢出问题,看下面的例子。


 
编译没任何问题,但结果却输出的是负数,这是因为两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的代表范围。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。


 
另外,向下转换时可以直接将 int 常量字面量赋值给 byte、short、char 等数据类型,而不需要强制转换,只要该常量值不超过该类型的表示范围都能自动转换。
 
强制类型转换
 
强制类型转换我们再清楚不过了,即强制显示的把一个数据类型转换为另外一种数据类型。
 
如:


 
以上的转换结果都在我们的预期之内,属于正常的转换和丢失精度的情况,下面的例子就一样属于数据溢出的情况。

 
300 已经超出了 byte 类型表示的范围,所以会转换成一个毫无意义的数字。
 
类型提升
 
所谓类型提升就是指在多种不同数据类型的表达式中,类型会自动向范围表示大的值的数据类型提升。
 
把上面的溢出的例子再改下。


 
 
price 为 int 型,count 为 long 型,运算结果为 long 型,运算结果正常,没有出现溢出的情况。

课程好礼申请领取
您的姓名
您的电话
意向课程
 

优越学院

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

下一篇:没有了

上一篇:8张图带你轻松温习Java知识

推荐阅读

优越学院:youyue-college

关注优越学院官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
Java开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优越学院官方微信
扫码回复关键词“大礼包”
领取80G学习资料