java位元組碼速查筆記

來源:互聯網
上載者:User

標籤:詳細   tail   javap   ongl   bytecode   rbo   .net   nal   靜態   

java位元組碼速查筆記 發表於 2018-01-27 |  閱讀次數: 0 |  字數統計: |  閱讀時間長度 ≈執行原理

java檔案到通過編譯器編譯成java位元組碼檔案(也就是.class檔案),這個過程是java編譯過程;而我們的java虛擬機器執行的就是位元組碼檔案。不論該位元組碼檔案來自何方,由哪種編譯器編譯,甚至是手寫位元組碼檔案,只要符合java虛擬機器的規範,那麼它就能夠執行該位元組碼檔案

位元組碼學習好文
  1. http://blog.csdn.net/shenhonglei1234/article/details/54861958
    IDEA配置快速查看java位元組碼
  2. http://www.jianshu.com/p/252f381a6bc4 位元組碼基礎學習筆記
  3. http://ifeve.com/javacode2bytecode/ 比較詳細
查看位元組碼 (以HelloWorld檔案為執行個體)
  1. javac –verbose查看運行類是載入了那些jar檔案
    javac –verbose HelloWorld.java
    可以看到虛擬機器編譯時間做了那些事情……
  2. java –verbose HelloWorld
    可以看到虛擬機器運行一個程式時載入的jar包
    更多內容查看javac –help命令
  3. javap查看位元組碼
    首先使用javap –help可以查看到各種命令,各個命令什麼作用,可以自己運行試試……
    這裡只測試javap –cjavap –verbose
    javap –c HelloWorld 可以查看位元組碼,從中可以得到各種變數的資訊等等
    但是javap –verbose可以看到更加清楚的資訊
簡單的執行原理
  • iload_1 整形壓棧 同理
  • float_1 是浮點型壓棧
  • if_icmple 7 如何棧頂參數1<=2的值 則調到第7行
  • 被final修飾的變數我們稱之為常量,在類檔案中我們標識為ACC_FINAL。
  • 靜態變數的標誌 flags: ACC_PUBLIC, ACC_STATIC

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.