1、JVM概念

1、基本概念

1.1、JVM是Java Virtual Machine的简称

意思是java虚拟机

1.2、虚拟机

指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

1.3、有哪些虚拟机

VMWare\Visual Box\JVM

1.4、VMWare或者Visual Box都是使用软件模拟物理CPU的指令集

1.5、JVM使用软件模拟Java字节码的指令集

2、Java和JVM的历史

2000年JDK 1.3 hotspot作为默认虚拟机发布,加入JavaSound
2004年发布JDK1.5 - 泛型、注解、装箱、枚举、可变长的参数、Foreach循环
2014年JDK1.8发布 - Lambda表达式、语法增强、Java类型注解

3、JVM

Oracle在JDK8时整合JRockit和Hotspot
KVM - sun发布的,IOS\ANDROID之前

4、JVM规范

  • class文件类型
  • 运行时数据
  • 帧栈
  • 虚拟机的启动
  • 虚拟机的指令集

4.1 byte

-128~127

4.2 整数的表达

原码

第一位为符号位(0为正数,1为负数)

反码

符号位不动,原码取反

负数补码

符号位不动,反码加1

正数补码

和原码相同
例如:

正数5,在计算机中的表示:
00000101
负数-6,在计算机中:
原码:10000110
反码:11111001
补码:11111010
负数-1,在计算机中:
原码:10000001
反码:11111110
补码:11111111

怎样打印一个整数在计算机中的二进制表示呢:

int a=6;
for(int i=0;i<32;i++){
  int t=(a & 0x80000000>>>i)>>>(31-i);
  System.out.print(t);
}

问题:计算机中为什么要用补码来表示整数呢?
1、用补码可以无歧义表示0
在这里插入图片描述)
2、用补码可以很好地进行整数运算
在这里插入图片描述

Float的表示

  • 支持IEEE754
    float 32为的表示
    s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
    一位的符号位+8位的指数位+23位的尾数位
    实际上的尾数位有24位,还有一位的隐藏的尾数附加位,如果e全部为0,那么尾数的附加位为0,否则尾数的附加位为1
    float表示的数值为:sm2^(e-127)
    例如:-5
    1 10000001 01000000000000000000000
    -1 * 2^(129-127) * (1 + 2^-2) — 这里1表示附加位,m部分从左往右,表示2的-2次幂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值