1.JVM的概念
JVM是java Virtual Machine的简称,意为java虚拟机
JVM使用软件模拟java字节码的指令集。
Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。
为什么Java被称作是“平台无关的编程语言”?
Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。
2各式JVM
①KVM-sun发布、IOS Android前,广泛用于手机系统
②CDC/CLDC HotSpot-手机、电子书、PDA等设备上建立统一的java编程接口
-J2ME的重要组成部分
③IBM J9 VM-IBM内部
3.规范
Java语言规范-语法、变量、类型、文法
、
JVM规范-Class文件类型、运行时数据、帧栈、虚拟机的启动、虚拟机的指令集
补码形式
0x80000000,一个16进制需要4位二进制表示,所以表示的是100000000…31个零的二进制表示。A与其按位求与,>>> 无符号右移,右移指定位数,左边空出来补0
得到100000000—31个零的整数表示-2147483648,然后再将1000000--31个零无符号右移31位,得到整形的1,这样每次就能得到一位二进制表示。
为什么计算机中要使用补码?
为了正确表示零,使用补码的时候,0的表示形式是统一的,另外补码的话可以不用进行减法运算,直接使用加法运算即可。补码想家符号位参与运算
符号位 指数位 尾数(虽然只有23,实际上有24位)尾数中,附加位为1,故101000000等价于
对于 IEEE754单精度浮点数 = (-1)^S * (1.F) * 2^(E-127)
对于-5
符号位: S=1(一位) ;
介码: E=127+2= 1000 0001 (八位);
尾数: F= 010 0000 0000 0000 0000 0000 (二十三位);
0入栈,将0出栈存到第一个局部变量i中,然后执行第8条语句,局部变量i入栈,常数100入栈,比较i是否小于100,如果是回到第5条指令,执行i++,循环8-11,最后return结束。
本文参考LS-java虚拟机深入JVM内核—原理、诊断与优化视频 写出,如果错误,欢迎指出