JVM从入门到基础(一) 一JVM介绍
2017-11-20 20:40
309 查看
JVM从入门到基础 一JVM介绍
一 概念
JVM是JAVA Vittual Machhine的简称,意为Java虚拟机。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。常见的虚拟机有VMWare,Visual Box,JVM。
JVM使用软件模拟JAVA字节码的指令集。
二 JVM规范
JAVA语言规范定义了什么是JAVA语言,而JVM主要定义了二进制class文件和JVM指令集等。JAVA语言与JVM相对独立。JVM定义了Class的文件格式
JVM数字的内部存储和表示范围–Byte -128 to 127 (-2^7 to 2^7 - 1)
定义相应的数据类型、堆、栈、方法区。
JVM中整数的表示用原码、补码、反码。
原码:第一位为符号位(0为整数,1位负数)
反码:符号位不动,原码取反。
负数补码:符号位不动,反码加1。
正数补码:和原码相同。
为什么使用补码?,对于0而言,如果用原码表示0,正数的0位00000000,负数的0位10000000,这样的表示有歧义,但是对于0的补码而言,正数的0为00000000,负数的0为0的补码11111111加1结果为00000000,这样的表示没有歧义。
同时补码能够很好的参与二进制运算,例如-6+5换算成补码的话为11111010+00000101=11111111换算成原码的话结果为-1,又如-4+5=11111100+00000001=00000001=1,还如-3+5=11111101+00000101=00000010=2。这样使用补码在计算机内部计算,可以直接以补码在计算机内部以加法方式进行运算,同时符号位参加运算,即可得到相应的结果。
VM 指令集
类型转化:l2i
出入栈操作 aload astore
运算 iadd i sub
流程控制 ifeq ifne
函数调用 invokevirtual invokeinterface invokespecial invokestatic
JVM需要对JAVA library提供以下支持:
反射 java.lang.reflect
ClassLoader
初始化class和interface
安全相关 java.security
多线程
弱引用
相关文章推荐
- JVM入门,java环境基础+理解内存+垃圾判定、回收算法
- Nodejs基础:stream模块入门介绍与使用
- linux系统学习:基础篇(系统介绍以及命令行的使用)快速入门linux系统
- ABAP--关于SAP Control Framework(入门GUI编程的不错的基础介绍)
- 接口测试基础-5-postman工具介绍和应用--接口测试入门结束篇
- JVM 简单入门 简单结构介绍
- Java基础知识——JNI入门介绍
- salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
- Linux从基础入门->服务器部署应用(一)Linu基础介绍
- Linux内核入门之内核基础知识介绍
- Nginx基础入门之nginx基本介绍(1)
- Thymeleaf教程入门到深入1:基础介绍
- java语言基础入门——类的介绍
- 5.2.vue入门基础学习笔记-基础指令介绍(表单绑定v-model)
- C#基础入门--关于C#背景介绍以及变量相关
- JAVA从入门到基础(三) 一 常用JVM配置参数
- PHP循环函数使用介绍之PHP基础入门教程
- Avaya Experience Portal(AEP)基础介绍 一(入门)
- Java基础知识——JNI入门介绍