码迷,mamicode.com
首页 > 编程语言 > 详细

java编译优化

时间:2017-08-10 23:49:40      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:jvm   amp   表达式   编译   识别   基本类型   ack   boolean   str   

#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编译优化

标签:jvm   amp   表达式   编译   识别   基本类型   ack   boolean   str   

原文地址:http://www.cnblogs.com/yuefeng123/p/7341929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!