java布尔表达式_Java中的布尔表达式优化

更新时间:2023-06-20 22:09:17 阅读: 评论:0

java布尔表达式_Java中的布尔表达式优化
考虑Java中的以下⽅法:
果然的反义词是什么
public static boolean expensiveComputation() {
遵循英语
for (int i = 0; i < Integer.MAX_VALUE; ++i);
return fal;
}
以下主要⽅法:
public static void main(String[] args) {
boolean b = fal;
if (expensiveComputation() && b) {手机扫描仪
}
}
逻辑连接(与&&)相同是commutative operation.那么为什么编译器不会将if语句代码优化为等效代码:
公司奖惩管理制度if (b && expensiveComputation()) {
}
此外,编译器是否尝试对布尔值进⾏其他逻辑简化或置换以⽣成更快的代码?如果没有,为什么?当然,⼀些优化会⾮常困难,但我的例⼦并不简单?调⽤⽅法应该总是⽐读取布尔值慢,对吧?
先感谢您.
解决⽅法:
它不会这样做,因为expensiveComputation()可能有副作⽤,改变程序的状态.这意味着评估布尔语句中表达式的顺序(expensiveComputation()和b)很重要.您不希望编译器将错误优化到编译的程序中,对吗?
例如,如果代码是这样的话
按摩睾丸
public static boolean expensiveComputation() {
for (int i = 0; i < Integer.MAX_VALUE; ++i);
b = fal;
return fal;
}
public static boolean b = true;
public static void main(String[] args) {
if (expensiveComputation() || b) {老汤怎么熬制
// do stuff
争奇斗艳拼音}
}金花茶种植
在这⾥,如果编译器执⾏了优化,那么当你不希望它通过查看代码时会运⾏// do stuff(因为b,它最初是真的,⾸先被评估).

本文发布于:2023-06-20 22:09:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1001371.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语句   代码   编译器   优化   逻辑   希望
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图