zoukankan      html  css  js  c++  java
  • java编译优化

    #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;//编译时,常量折叠了
               
          



      

  • 相关阅读:
    【Nginx 快速入门】反向代理、负载均衡、动静分离
    【Redis】缓存穿透、缓存击穿、缓存雪崩(面试必备)
    【Redis】特殊数据类型
    【Redis】特殊数据类型
    【Redis】特殊数据类型
    typescript 技巧学习
    angular9的学习(十九)
    angular11源码探索二十六[Router整体路由配置]
    angular11源码探索二十五[Router路由事件]
    angular11源码探索二十四[路由检测变更策略]
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7341929.html
Copyright © 2011-2022 走看看