JDK 、JRE 、 JVM、 DVM、JAVA解释器
来源:互联网 发布:小京东v7.完整源码分 编辑:程序博客网 时间:2024/05/17 02:15
JDK:(Java Development Kit) Java软件开发包,可以包括函数库、编译程序等。
JRE:(Java Runtime Enviroment) Java的运行环境,是面向Java程序的使用者.
JVM:(Dalvik Virtual Machine)JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。解释器不能单独执行,必须要有虚拟机。解释器它的作用只是把代码解释成虚拟机能够读懂的东西。Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
注意:JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE,所以安装了JDK就有了JRE、JVM和JVM中的java解析器。
DVM:(Dalvik Virtual Machine)很多人认为DVM是一个Java虚拟机,因为Android的编程语言恰恰就是Java语言。但是这种说法并不准确,因为 Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容;同时还有几个的不同点:
1.Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable),JVM是基于栈的,而DVM基于寄存器(基于寄存器的好处是编译的时候,花费的时间更短,在其他各方面性能上也有很大的提升)。
2.在Java SE程序中的Java类会被编译成一个或者多个字节码文件(.class)然后打包到JAR文件,而后Java虚拟机会从相应的CLASS文件和JAR文件中获取相应的字节码;Android应用虽然也是使用Java语言进行编程,但是在编译成CLASS文件后,还会通过一个工具(dx)将应用所有的 CLASS文件转换成一个DEX文件,而后DVM会从其中读取指令和数据。
3.DVM依赖于Linux内核的一些功能,如线程和底层内存管理机制。所以DVM只能运行在Android操作系统上,JVM并不依赖其他外部条件,所以它可以运行在各种平台之上。
JRE:(Java Runtime Enviroment) Java的运行环境,是面向Java程序的使用者.
JVM:(Dalvik Virtual Machine)JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。解释器不能单独执行,必须要有虚拟机。解释器它的作用只是把代码解释成虚拟机能够读懂的东西。Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
注意:JVM是属于JRE的,而现在我们安装JDK时也附带安装了JRE,所以安装了JDK就有了JRE、JVM和JVM中的java解析器。
DVM:(Dalvik Virtual Machine)很多人认为DVM是一个Java虚拟机,因为Android的编程语言恰恰就是Java语言。但是这种说法并不准确,因为 Dalvik虚拟机并不是按照Java虚拟机的规范来实现的,两者并不兼容;同时还有几个的不同点:
1.Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable),JVM是基于栈的,而DVM基于寄存器(基于寄存器的好处是编译的时候,花费的时间更短,在其他各方面性能上也有很大的提升)。
2.在Java SE程序中的Java类会被编译成一个或者多个字节码文件(.class)然后打包到JAR文件,而后Java虚拟机会从相应的CLASS文件和JAR文件中获取相应的字节码;Android应用虽然也是使用Java语言进行编程,但是在编译成CLASS文件后,还会通过一个工具(dx)将应用所有的 CLASS文件转换成一个DEX文件,而后DVM会从其中读取指令和数据。
3.DVM依赖于Linux内核的一些功能,如线程和底层内存管理机制。所以DVM只能运行在Android操作系统上,JVM并不依赖其他外部条件,所以它可以运行在各种平台之上。
0 0
- JDK 、JRE 、 JVM、 DVM、JAVA解释器
- jdk,jre,jvm解释
- java jdk jvm jre
- java-jdk jre jvm
- java jdk jre jvm
- java jdk jre jvm
- java - (01) JDK, JRE, JVM
- JAVA中的 JDK,JRE,JVM
- java JVM JRE JDK简介
- Java JVM,JDK,JRE简介
- jdk jre jvm 与 java环境变量
- java 中的jdk , jre , jvm的区别
- java jdk jre sdk jvm 详解
- 【Java】JVM, JRE,JDK 的区别
- Java中JDK,JRE,JVM的区别
- JAVA程序基础(JDK,JRE,JVM)
- Java中JDK,JRE,JVM的区别
- 和java有关的JVM,JDK,JRE
- 企业IT项目开发之七宗罪(中篇)
- 独生子女奖励费30多年不变 多地仍为每人每月5元
- 设置eclipse的背景色保护色
- 商务部:望台湾进一步放宽对大陆货物进口限制
- Python学习笔记(十三)----Python pass语句
- JDK 、JRE 、 JVM、 DVM、JAVA解释器
- 北京今年前11月为农民工追回2.86亿元工资
- js省市三级联动
- 通过重写ViewGroup学习onMeasure()和onLayout()方法
- 第四届福建省大学生程序设计竞赛
- paip. 调试技术打印堆栈 uapi print stack java php python 总结.
- Java 设计模式 单例模式
- hbase的shell命令
- HttpWatch使用简介