JVM 和JMM的区别】的更多相关文章

首先从定义上看 JVM (Java Virtual Machine)Java虚拟机模型 主要描述的是Java虚拟机内部的结构以及各个结构之间的关系. JMM(Java Memory Model) Java内存模型 主要规定了一些内存和线程之间的关系 其次从内存结构上看 JVM内存结构 JMM 内存结构: 总结: jmm中的主内存.工作内存与jvm中的Java堆.栈.方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量.主内存.工作内存的定义来看,主内…
一 jvm结构 jvm的内部结构如下图所示,这张图很清楚形象的描绘了整个JVM的内部结构,以及各个部分之间的交互和作用. 1 Class Loader(类加载器)就是将Class文件加载到内存,再说的详细一点就是,把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类加载器的作用. 2 Run Data Area(运行时数据区) 就是我们常说的JVM管理的内存了,也是我们这里主要讨论的部分.运行数据区是整个JVM的重点.…
java程序在jvm和dvm的执行过程: #jvm和dvm的区别(Dalvil VM) 谷歌刚开发的安卓系统用的就是JVM,JVM版权属于sun公司也就是Oracle公司,后来用的是DVM,由于版权问题.DVM是基于openjdk做的2次开发,DVM解决了JVM的效率问题,jvm的运行效率会低. jvm里面class代码必须要在jvm里面进行解释后在底层操作系统里面执行,真正执行是底层操作系统执行,由于必须在jvm里面解释所以效率要低. dvm会先把class文件转换为dex文件之后再去解释执行…
JRE与JVM.JDK的区别 一. 详细介绍1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行.JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域. J…
Java 1.Java的特性和优势 Write Once,Run Anywhere 简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 2.Java的三大版本 JavaSE:标准版(桌面程序,控制台开发--) JavaME:嵌入式开发(手机,小家电--) JavaEE:E企业级开发(web端,服务器端) 3.jdk,jre,jvm的联系与区别 有Java编程经验的程序员应该都知道:Java程序是运行在JVM(Java虚拟机)上的,在开发程序之前都要配置Java开发环境,其…
Dalvik虚拟机存在于Android系统,JVM是java虚拟机,两者都是虚拟机,本文就对两者进行比较,讲述它们的不同. Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一.它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统.(dx 是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.…
JVM和DVM JavaSE 程序使用的虚拟机叫 Java Virtual Machine,简称 JVM.Android 平台虽然是使用java语言来开发应用程序,但Android程序却不是运行在标准java虚拟机上的,谷歌专门为Android平台设计了一套虚拟机来运行Android程序,它就是Dalvik虚拟机.Dalvik虚拟机执行的是已转换为 .dex(即 Dalvik Executable)格式的 Java 应用程序,.dex 格式是专为 Dalvik 设计的一种压缩格式,适合内存和处理…
  本文转自:http://blog.csdn.net/yujun411522/article/details/45932247   1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?Dalvik虚拟机允许多个instance的存在.实际上android中的每一个app都是运行在自己VM实例之中(沙盒).每一个VM实例在linux中又是一个单独的进程,所以可以认为是同一个概念.运行在自己的DVM进程之中,不同的app不会相互干扰,且不会因为一个DVM的崩溃导致…
在网上看到一篇讲解jvm,jre,jdk区别的文章,感觉不错,就收藏到自己的博客了. 1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行.JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令…
1.重载(overload)方法 对重载方法的调用主要看静态类型,静态类型是什么类型,就调用什么类型的参数方法. 2.重写(override)方法 对重写方法的调用主要看实际类型.实际类型如果实现了该方法则直接调用该方法,如果没有实现,则在继承关系中从低到高搜索有无实现. 3. java文件的编译过程中不存在传统编译的连接过程,一切方法调用在class文件中存放的只是符号引用,而不是方法在实际运行时内存布局中的入口地址. 基本概念 1.静态类型与实际类型,方法接收者 Human man = ne…