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



      

  • 相关阅读:
    [备忘]使用Outlook 2010,拖拽大于20M附件发生“附件大小超过了允许的范围”提示的解决方法
    关于Linq to SQL 的“异常详细信息: System.InvalidCastException: 指定的转换无效。”
    [备忘]ie6中href设为javascript:void(0)页面无法提交的解决方法
    [备忘]谷歌员工证实PR值不再更新 呼吁用户关注内容
    今天早上
    C++primer6.20
    Fuzzy KNN
    数值转换
    ArcMap分割图斑
    VS2008 集成openCV过程
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7341929.html
Copyright © 2020-2023  润新知