中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java虛擬機知識點有哪些

發布時間:2021-11-18 10:05:12 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

這篇文章主要講解了“java虛擬機知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java虛擬機知識點有哪些”吧!

1. java 虛擬機結構

java虛擬機知識點有哪些

2. 整數在java虛擬機中的表示

整數在java虛擬機中以補碼的形式保存,

  • 原碼:所謂原碼,就是符號位加上數字的二進制表示,以int為例,第1位表示符號位(正數或負數),其余31位表示該數字的二進制值。

  • 反碼:所謂反碼,就是符號位不變,其余位取反。

  • 補碼:負數的補碼就是反碼加1,正數的補碼就是原碼本身。

在java中,可以使用位運算查看整數中每一位的實際值,代碼如下:

// 打印 -10 在虛擬機內的實際表示
public static void main(String[] args) {
    int a = -10;
    for(int i = 0; i < 32; i++) {
        int t = (a & 0x8000_0000 >>> i) >>> (31 - i);
        System.out.print(t);
    }
}

這段程序的基本思想是,進行32次循環,每次循環取出int值中的一位,第3行的 0x8000_0000 是一個首位為1,其余位為0的整數,通過右移i位,定位到要獲取的第i位,并將除該位外的其他位統一設置為0,而該位不變,最近將該位移至最右,并進行輸出。

使用補碼的好處

  • 可以統一數字0的表示。0既是非正數,又是非負數,使用原碼表示時符號位難以確定,把0歸入正數或者負數得到的原碼是不同的。但是使用補碼表示時,無論把0歸入正數還是負數都會得到相同的結果。

  • 使用補碼可以簡化整數的加減法計算,將減法計算視為加法計算,實現減法和加法的完全統一,實現正數和負數加法的統一。

3. 浮點數在java虛擬機中的表示

在java虛擬機中,浮點數有floatdouble兩種,分別是32位和64位浮點數。浮點數在java虛擬機中表示比整數略顯復雜。目前使用最為廣泛的是由 IEEE 754 定義的浮點數格式。

IEEE 754的定義中,一個浮點數由3部分組成:符號位、指數位 和 尾數位。以32位float類型為例,符號位占1位,表示正負數,指數位占8位,尾數為點剩余23位。

java虛擬機知識點有哪些

  • 31位為符號位:0表示正數,1表示負數

  • 31~23位:共8位表示指數位,內存存儲數據從0~2^8-1=255,由于指數可以是正也可以是負,所以指數位采用移位存儲表示數據,8位有符號有可表示數據從-128~127,所以指數位表示的實際指數應該是無符號位數減去127,例如0000 0000表示為0-127=-127,1111 1111表示為255-127=128,1000 0001表示為129-127=2

  • 22~0位:共23位表示尾數位,內存存儲數據從0~2^23-1=8388607

在java中,使用Float.floatToRawIntBits()函數可以獲得一個單精度浮點數的 IEEE 754 表示,如下:

public static void main(String[] args) {
    float a = -5;
    System.out.println(Integer.toBinaryString(Float.floatToIntBits(a)));
}

感謝各位的閱讀,以上就是“java虛擬機知識點有哪些”的內容了,經過本文的學習后,相信大家對java虛擬機知識點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰顺县| 公主岭市| 开远市| 吴江市| 襄城县| 台州市| 武乡县| 山丹县| 惠州市| 黄浦区| 中宁县| 蕲春县| 青海省| 慈溪市| 益阳市| 弥勒县| 汉阴县| 务川| 上饶县| 阿合奇县| 漳浦县| 延川县| 伊宁市| 深泽县| 沁水县| 大化| 外汇| 正宁县| 古浪县| 揭东县| 洪湖市| 兴化市| 含山县| 玛沁县| 遂川县| 陈巴尔虎旗| 晋中市| 正安县| 牡丹江市| 井陉县| 聂荣县|