java虚拟机知识点有哪些

这篇文章主要讲解了“java虚拟机知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java虚拟机知识点有哪些”吧!

创新互联长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为谢通门企业提供专业的网站建设、网站设计谢通门网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

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虚拟机知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

新闻标题:java虚拟机知识点有哪些
本文路径:https://www.cdcxhl.com/article44/pjdoee.html

成都网站建设公司_创新互联,为您提供静态网站搜索引擎优化网站内链自适应网站网站维护虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设