jiao_zg的专栏

jiao_zg的专栏

Java 常量折叠

比较代码:  A:int a = 1+2;  B:int a =3;

A与B,在程序运行时,使用的cpu时间是完全一样的。为什么?

javac编译代码过程如下:


在javac编译代码过程中,在进行语法分析中,编译阶段(java代码编译为class字节码文件的过程中)会进行把1+2,计算成结果3,存放到语法树中。该现象称之为常量折叠。

我们运行阶段,直接从语法树中读指令,此时直接读到的就是3的结果。所以,A与B的在运行阶段的cpu消耗时间是没有区别的。

(摘自 深入理解Java虚拟机 -早期(编译期)优化章节)

阅读更多

扫码向博主提问

去开通我的Chat快问

水上冰石

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 信息安全
  • 后端开发
  • Java编程语言
  • saas平台
  • github开源项目
版权声明:本文为博主原创文章,转载请注明博客地址与作者。 https://blog.csdn.net/jiao_zg/article/details/79974653
个人分类: jave
上一篇网络身份五大要素
下一篇开放api的设计图解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭