电话:0731-83595998
导航

Java高级:深入浅析Java类型提升的约定

来源: 2017-12-21 11:26

 百度广告

  类型提升的约定

  除了将byt型和short型提升到int型以外,java定义了若干适用于表达式的类型提升规则(type promotion rules). 首先,如刚才描述的,所有的byte型和short型的值被提升到int型.其次,如果一个操作数是long型,整个表达式将被提升到long型;如果一个操作数是float型,整个表达式将被提升到float型;如果有一个操作数是double型,计算结果就是double型.下面的程序表明:在表达式中的每个值是如何被提升以匹配各自二进制运算符的第二个参数:

  class Promote {

  public static void main(String args) {

  byte b = 42;

  char c = 'a';

  short s = 1024;

  int i = 50000;

  float f = 5.67f;

  double d = .1234;

  double result = (f * b) + (i / c) - (d * s);

  System.out.println((f * b) + "+" + (i / c) + " - " + (d * s));

  System.out.println("result =" + result);

  }

  }

  进一步看看发生在下列程序行的类型提升:

  double result = (f * b) + (i / c) - (d * s);

  在第一个表达式f*b中,变量b被提升为float类型,该子表达式的结果当然是float类型.接下来,在子表达式i/c中,边量c被提升为int类型,该子表达式的结果当然是int类型.然后,子表达式d*s中的变量s被提升为double类型,该子表达式的结果当然是double类型.最后,考虑三个中间值,float类型,int类型,和double类型.float类型加int类型的结果是float类型,然后float类型减去提升为double类型的double类型,该表达式的最后结果是double类型.

编辑推荐:

下载Word文档

温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)

网络课程 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

精品课程

更多
10781人学习

免费试听更多

相关推荐
图书更多+
  • 电网书籍
  • 财会书籍
  • 其它工学书籍
拼团课程更多+
  • 电气拼团课程
  • 财会拼团课程
  • 其它工学拼团
热门排行

长理培训客户端 资讯,试题,视频一手掌握

去 App Store 免费下载 iOS 客户端