定义
jvm严格来讲是一种规范,现下最流行的实现是hotspot。
发展史
1996年 SUN JDK 1.0 Classic VM
纯解释运行,使用外挂进行JIT
1997年 JDK1.1 发布
AWT、内部类、JDBC、RMI、反射
1998年 JDK1.2 Solaris Exact VM
JIT 解释器混合
Accurate Memory Management 精确内存管理,数据类型敏感
提升的GC性能
2000年 JDK 1.3 Hotspot 作为默认虚拟机发布
2002年 JDK 1.4 Classic VM退出历史舞台
原码,反码,补码
原码:第一位为符号位(0为正数,1为负数)
反码:符号位不动,原码取反
负数补码:符号位不动,反码加1
正数补码:和原码相同
打印整数的二进制表示
int a=-6;
for(int i=0;i<32;i++){
int t=(a & 0x80000000>>>i)>>>(31-i);
System.out.print(t);
}
-6
原码: 10000110
反码: 11111001
补码: 11111010
-1
原码: 10000001
反码: 11111110
补码: 11111111
0的正数和负数
正数:00000000
负数:10000000
用补码表示为00000000
补码主要用来运算(补码直接相加就是运算结果):
-6+5
11111010
+ 00000101
= 11111111
-4+5
11111100
+ 00000101
= 00000001
-3+5
11111101
+ 00000101
= 00000010
JVM需要对Java Library 提供以下支持:
反射 java.lang.reflect
ClassLoader
初始化class和interface
安全相关 java.security
多线程
弱引用
jvm底层执行代码
本文介绍了JVM的发展历程,从1996年的经典虚拟机到2002年Hotspot成为默认虚拟机,并详细解释了JVM如何支持Java Library,包括反射、ClassLoader等关键特性。同时,文中还涉及了原码、反码和补码的概念及其在运算中的应用。
1272

被折叠的 条评论
为什么被折叠?



