哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> Java技術(shù) >> 文章正文

java中的KVM常量池

Java是一種動(dòng)態(tài)連接的語言,常量池的作用非常重要,常量池中除了包含代碼中所定義的各種基本類型(如int、long等等)和對(duì)象型(如String及數(shù)組)的常量值還,還包含一些以文本形式出現(xiàn)的符號(hào)引用,比如:

  類和接口的全限定名;

  字段的名稱和描述符;

  方法和名稱和描述符。

  在C語言中,如果一個(gè)程序要調(diào)用其它庫中的函數(shù),在連接時(shí),該函數(shù)在庫中的位置(即相對(duì)于庫文件開頭的偏移量)會(huì)被寫在程序中,在運(yùn)行時(shí),直接去這個(gè)地址調(diào)用函數(shù);新疆軟件開發(fā)網(wǎng)  而在Java語言中不是這樣,一切都是動(dòng)態(tài)的。編譯時(shí),如果發(fā)現(xiàn)對(duì)其它類方法的調(diào)用或者對(duì)其它類字段的引用的話,記錄進(jìn)class文件中的,只能是一個(gè)文本形式的符號(hào)引用,在連接過程中,虛擬機(jī)根據(jù)這個(gè)文本信息去查找對(duì)應(yīng)的方法或字段。

  所以,與Java語言中的所謂“常量”不同,class文件中的“常量”內(nèi)容很非富,這些常量集中在class中的一個(gè)區(qū)域存放,一個(gè)緊接著一個(gè),這里就稱為“常量池”。

  常量池由多條“常量池項(xiàng)”組成,每一個(gè)常量池項(xiàng)又由兩部分組成,這里分別稱為“常量池項(xiàng)頭”和“常量池項(xiàng)體”。

  常量池項(xiàng)頭表明常量池項(xiàng)的類型,常量池項(xiàng)共分為11種類型,分別為:

  常量池項(xiàng)類型

  值

  說明

  CONSTANT_Utf8

  1

  UTF-8編碼的Unicode字符串

  CONSTANT_Integer

  3

  int型常量

  CONSTANT_Float

  4

  Float型常量

  CONSTANT_Long

  5

  Long型常量

  CONSTANT_Double

  6

  double型常量

  CONSTANT_Class

  7

  對(duì)一個(gè)class的符號(hào)引用

  CONSTANT_String

  8

  String型常量

  CONSTANT_Fieldref

  9

  對(duì)一個(gè)字段的符號(hào)引用

  CONSTANT_Methodref

  10

  對(duì)一個(gè)類方法的符號(hào)引用

  CONSTANT_InterfaceMedthodref

  11

  對(duì)一個(gè)接口方法的符號(hào)引用

  CONSTANT_NameAndType

  12

  對(duì)名稱和類型的符號(hào)引用

  常量池項(xiàng)體中存放的就是對(duì)應(yīng)的常量數(shù)據(jù),比如各種數(shù)值型的常量或者字符串等等。

作者:未知 | 文章來源:未知 | 更新時(shí)間:2007-11-23 14:50:30

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    JAVA開發(fā)的6個(gè)實(shí)踐的例子
    JAVA中的抽象類型的一些概念
    java語言開發(fā)程序中的幾個(gè)例子大家看看
    了解java開發(fā)語言在軟件開發(fā)中的幾個(gè)誤區(qū)
    如何才能使用Java實(shí)現(xiàn)內(nèi)部領(lǐng)域的特定語言
    Java開發(fā)學(xué)習(xí)小心使用Date以及Time類
    sun最近修補(bǔ)了一部分java的安全補(bǔ)丁
    Java程序員應(yīng)該了解那些開源協(xié)議
    java性能優(yōu)化的一些見解
    解析c#語言和java語言最相似的地方
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·j2se 嵌入式腳本抓取引擎
    ·JAVA開發(fā)的6個(gè)實(shí)踐的例子
    ·JBuilder7 / Weblogic7開發(fā)
    ·JAVA中的抽象類型的一些概
    ·java語言開發(fā)程序中的幾個(gè)
    ·了解java開發(fā)語言在軟件開
    ·如何才能使用Java實(shí)現(xiàn)內(nèi)部
    ·Java開發(fā)學(xué)習(xí)小心使用Date
    ·Java程序員應(yīng)該了解那些開
    ·java性能優(yōu)化的一些見解
    ·介紹JDK5.0一些collection
    ·基礎(chǔ)學(xué)習(xí):java中使用存儲(chǔ)
    ·解析c#語言和java語言最相
    ·Java語言學(xué)習(xí):jAVA中 的多
    ·Java是不是應(yīng)該增加新特性
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000