第一课:初识Java虚拟机

1.有哪些虚拟机
VMWARE
Visual Box
JVM 现实当中不存在的计算机
2.jdk历史
2004年发布了 jdk.5
泛型、注解、装箱、枚举、可变长的参数、foreach、精准循环
11年jdk7
Gc当中的G1
14年jdk1.8
lambda表达式:函数式表达的方式。试图减少代码冗余
语法增强 jaba类型注解
3.使用最广泛地jvm是hotspot
另一款是JRockit VM
(都是sun公司的)
2010 年 在jdk8的时候就整合了hotspot和JROckit
就是在hotspot基础上整合了Jrockit Vm优秀的特性
还有一款IBM的J9
另外还有一款Apache Harmony。开源,与Oracle关系恶劣,退出jcp
4.变量的值
class value{int val;}
class Test{
public class void main(String[] args){
int r1 = 3;
int r2 = r1;
r2 = 4;
value v1 = new value();
v1.val = 5
value v2 = v1;
v2.val = 6
}
}
打印出来 i1 = 3 i2 = 4
v1.val = v2.val = 6
原因是:i1 和 i2 为不同的变量。v1 v2却在一个实例当中。你们引用的对象都一样,那肯定是最后的结果是一样的。
5.java语言和jvm相对独立
Groovy Clojure scala
那这三种语言,肯定写的和java不一样,是不符合java语言规范的。但是这些语言却符合jvm规范,能够在jvm规范下运行。
6.原码,反码,补码。比如-6
原码:第一位为符号位。10000110
反码:符号位不动,原码取反11111001
负数补码和正数补码。正数的补码就是原码。负数的补码就是按位取反末尾加一。11111010
打印正数的二进制表示
int a = -6
for(int i = 0; i<32 ;i++){
int t=(a & 0x80000000>>>i)>>>(31-i);//0x80000000代表最高位为1的数字
System.out.println(t);
}
0的表示:00000000.反码:11111111补码:00000000.
为什么使用补码?因为在计算机计算时,计算两个补码数字之和,符号位直接参与运算
-6+5
11111010
+00000101
=11111111 即-1
7.jvm
准确的说hotsopt是jvm的一个实现,jvm是一个规范,是一个文档,任何人任何企业都能够根据这个文档来
编写自己的的规范
————————————————————华丽丽的分割线——————————————————————————
作业作业作业作业:

  1. 有关补码,简要阐述补码的好处。并计算给出 -99, -105, 205 整数的补码
  2. 有关浮点数,根据IEEE745,计算1 10000010 00100000000000000000000的单精度浮点的值,并给出计算过程。
    3.写一个Java程序,将100.2转成IEEE745 二进制表示 ,给出程序和结果。

答案:
1.
补码表示的0没有歧义 在进行运算的时候补码运算直接进行加法运算就好 更简单
110011101 110010111 011001101

  1. -9
    计算过程如下:公式为sm2^( e-127)
    (1 10000010 100100000000000000000000)
    符号位为负 -2到-9位 为正数位 130 后19位为:
    -1 * 2^(130-127) * {2^(-3) + 2^0}=-1 * 8 * 1.125=-9

1000010110010000110011001100110
static String floatToByte(float f){
String s = Integer.toBinaryString(Float.floatToIntBits(f));
return s;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值