前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java对于表达式中的自动类型提升

Java对于表达式中的自动类型提升

作者头像
河岸飞流
发布2019-08-09 14:50:50
8840
发布2019-08-09 14:50:50
举报
文章被收录于专栏:开发杂记

1 表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byteshortchar操作数提升为int类型,这些类型的包装类型也是可以的。 例如: short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误。需要改为short s1=1; s1=(short)(s1+1);结果就是short类型。 例如: short s1 = 1; s1 += 1; +=是java语言中的运算符,Java编译器会对它特殊处理进行正确的编译。

2 类型提升规则: (1)byteshortchar类型的值都被提升为int类型; (2)如果有一个操作数是long类型,就将整个表达式提升为long类型; (3)如果有一个操作数是float类型,就将整个表达式提升为float类型; (4)如果任何一个操作数为double类型,结果将为double类型。 例如: byte b=1; char c='a'; short s=1024; int i=50; float f=2.0f; double d=.123; double result = (f * b) + (i / c) - (d * s); //f*b中,b被自动提升为float类型,该表达式结果是float类型; //i/c中,c被自动提升为int类型,该表达式结果是int类型; //d*s中,s被自动提升为doubl类型,该表达式结果是double类型; //最后,float+int-double,结果会被提升为double类型,double类型为最后结果result的类型。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档