#java编译器对`String常量表达式`的优化:
 - 1.String+String 可以被编译器识别为常量表达

String a="ab" ;

String b="a"+"b";//编译后:b="ab"

           System.out.println(a==b);//true           


       
    分析: 
            编译器将"a"+"b"当做常量表达式,在编译时期进行优化,直接取"ab". 在运行时期 
            并没有创建新的对象,而是从jvm字符串常量池中获取之前已经存在的"ab"对象.

- 2.String+基本类型 可以被编译器识别为常量表达式
   
           String a="a1";
           String b="a"+1; //"a1"
           String c="a"+true;//"atrue"
           String d="a"+3.14;//"a3.14"           
      
 #java编译器对`常量`优化:
  * 它是编译时的一项优化技术,将代码的常量计算在编译期完成,节约了运行时的计算量.
  
         1.常量替换
            //编译前:
            final int x=10;
            int  y=x;

//编译后
            int x=10;
            int y=10;//编译时,常量替换了
      
       
        2.数学恒等式的模式匹配替换
 
            //编译前:
             int x=10+10;

//编译后
            int x=20;//编译时,模式匹配替换了
           
      
         3.常量折叠
 
            //编译前:
             boolean flag=true||(a || b && c);

//编译后
            boolean flag=true;//编译时,常量折叠了
           
      

java编译优化的更多相关文章

  1. 15个问题自查你真的了解java编译优化吗?

    摘要:为什么C++的编译速度会比java慢很多?二者运行程序的速度差异在哪? 了解了java的早期和晚期过程,就能理解这个问题了. 本文分享自华为云社区<你真的了解java编译优化吗?15个问题 ...

  2. java编译期优化

    java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程: 1.前端编译:把.java文件转变为.class文件 2.后端编译:把字节码转变为机器码 3.静态提前编译:直接把*.ja ...

  3. 关于java字符串编译优化问题

    情景一:不好的字符串拼接习惯    起因是这样的:一个大牛在写了一篇关于java字符串优化问题的讲解,他提到:不要使用strObj+otherValue的方法将otherValue转换为字符串形式,因 ...

  4. 90% 的 Java 程序员都说不上来的为何 Java 代码越执行越快(1)- JIT编译优化

    麻烦大家帮我投一票哈,谢谢 经常听到 Java 性能不如 C/C++ 的言论,也经常听说 Java 程序需要预热,那么其中主要原因是啥呢? 面试的时候谈到 JVM,也有很多面试官喜欢问,为啥 Java ...

  5. Java 程序优化 (读书笔记)

    --From : JAVA程序性能优化 (葛一鸣,清华大学出版社,2012/10第一版) 1. java性能调优概述 1.1 性能概述 程序性能: 执行速度,内存分配,启动时间, 负载承受能力. 性能 ...

  6. Linux下Java 编译运行说明

    命令行环境下Java编译运行 1. java的运行机制的基本概念: 源文件 也就是我们熟知的.java文件. 类文件  .class文件是编译器由.java文件编译而成.众所周知,Java的跨平台性在 ...

  7. Java性能优化_转载

    一.避免在循环条件中使用复杂表达式 1.在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 2.不可使用多层循嵌套. 二.集合大 ...

  8. Java性能优化的50个细节(珍藏版)

    原文地址:https://www.toutiao.com/i6595499804082569742/ 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重 ...

  9. 有哪些Java性能优化方法?

    面试官:"有性能优化经验没?"  应聘者:"有一点."   面试官:"那你们从哪些方面做了优化?"   应聘者:"sql优化.JV ...

随机推荐

  1. 教你用DrawLayout 实现Android 侧滑菜单

    现在的APP越来越注重用户体验,百度视频客户端有一个特效还是挺吸引人的,在主界面手指向右滑动,就可以将菜单展示出来,而主界面会被隐藏大部分,但是仍有左侧的一小部分同菜单一起展示.类似的还有天天动听,人 ...

  2. Scrapy项目之User timeout caused connection failure(异常记录)

    Windows 10家庭中文版,Python 3.6.4,Scrapy 1.5.0, 提示:此文存在问题,真正测试, 请勿阅读, 07-14 14:26更新: 经过两个多小时的测试,发现此问题的原因是 ...

  3. React 学习一 运行

    最近项目准备使用React作为前端,主要第一比较火,第二比较小.抽空先来学习一下. 首先下载资源文件:压缩后不到50KB,是挺小的哦. 其中:react.js 是 React 的核心库,react-d ...

  4. vue-cli脚手架安装

    -1.安装淘宝镜像 $ alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.ca ...

  5. Baidu软件研发工程师笔试题整理

    Hadoop Map/Reduce Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别 ...

  6. C++拾遗——重新开始

    http://www.cnblogs.com/uniqueliu/category/307731.html

  7. Linux文件系统备份dump

    常用的备份方式有三种:1.完全备份:把所有数据完全备份下来2.增量备份:以上一次备份的内容作参照3.差异备份:一直以某一个记录点的全备份作参照备份 dump备份工具dump命令:dump -数字 数字 ...

  8. 【POJ】1067.取石子游戏

    题解 这道题让我对SG函数有了更深刻的理解,这是道打表找规律题 我们打出来SG函数似乎是 1 2必败 3 5必败 4 7必败 6 10必败 8 13必败 哇我找到规律了-- 然而,我显然不会通项 后来 ...

  9. USACO 4.4 Pollutant Control (网络流求最小割割集)

    Pollutant ControlHal Burch It's your first day in Quality Control at Merry Milk Makers, and already ...

  10. Django: ImportError: No module named 'corsheaders'

    pip3 install django-cors-headers #设置PIP镜像 pip3 --trusted-host pypi.python.org install django-cors-he ...