码迷,mamicode.com
首页 > 其他好文 > 详细

编译器的两点优化

时间:2020-01-03 19:19:19      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:图片   img   数值   种类   result   http   nbsp   变量赋值   范围   

1.对于byte/short/char三种类型来说,如果右侧的赋值的数值没有超过范围,那么javac编译器将会自动隐含的为我们补上一个(byte),(short),(char)。如果右侧超过左侧范围,编译器直接报错。

 

 右侧没有超过左侧的范围

技术图片

技术图片

 

右侧超过了左侧的范围

技术图片

 

 技术图片

 

 

 2.再给变量赋值的时候,如果右侧表达式全是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果

技术图片

技术图片

 

 技术图片

 

 short result = 5+8;等号右边全是常量,没有任何变量参与运算,编译之后,得到的.class文件相当于short result = 13;

且右侧的常量结果数值没有超过左侧范围,所以正确。这成为“编译器的常量优化”。

但是注意:一旦表达式中有变量参与,就不能进行这种优化了。

编译器的两点优化

标签:图片   img   数值   种类   result   http   nbsp   变量赋值   范围   

原文地址:https://www.cnblogs.com/jian2818/p/12146370.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!