java编译优化

Posted 勇往直前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;//编译时,常量折叠了
           
      



  















































以上是关于java编译优化的主要内容,如果未能解决你的问题,请参考以下文章

java编译器的代码优化问题

java编译优化

执行引擎:程序编译与代码优化

JVM性能优化, Part 2 ―― 编译器

深入理解jvm - 编译优化(下)

Java技术指南「编译器专题」重塑认识Java编译器的执行过程(常量优化机制)!