java編譯最佳化

來源:互聯網
上載者:User

標籤: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編譯最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.