JVM的理解

  • JVM自身物理结构
  • JVM是Java的核心和基础,在Java编译器和os平台之间的虚拟处理器,它是一种基于下层的操作系统和硬件平台利用软件方法来实现的抽象的计算机,Java编译器只需面向jvm,生成jvm能理解的代码或者字节码文件.Java源文件编译器,编译成字节码程序,通过jvm将每一条指令翻译成不同平台的机器码,通过特定的平台运行,
    简单来说,jvm就相当于柴油机,他只能用Java(柴油)运行,jvm就是Java的虚拟机,有了jvm才能运行Java程序
时间: 2024-10-10 22:31:47

JVM的理解的相关文章

jvm基础理解

一.jvm运行时内存区域 包含堆,虚拟机栈,本地栈(调用native方法时用到),方法区(perm区),程序计数器. 假设32位操作系统,这时系统限制每个进程大小为2G.这样上述这些区域(对于本地栈及程序计数器来讲,是无法设置的,hotspot有提供-Xoss参数用于设置本地方法栈.但实际是无效的)可以用相应参数设置,共同划分全部2G内存. 注意还有一块直接内存,不属于JAVA运行时区域.但是它的空间用得太多的话,还是受限于物理内存和虚拟内存总大小,因此也会抛出OutOfMemory.典型的re

JVM深入理解

JVM深入理解 一.JVM介绍 JVM应用百度百科的原话是: JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.JAVA语言的一个非常重要的特点就是与平台的无关性. 而使用Java虚拟机是实现这一特点的关键.一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码.而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译.Java语言

聊聊JVM(五)从JVM角度理解线程

这篇说说如何从JVM的角度来理解线程,可以对Java的线程模型有一个更加深入的理解,对GC的一些细节也会理解地更加深刻.本文基于HotSpot的OpenJDK7实现. 我们知道JVM主要是用C++实现的,JVM定义的Thread的类继承结构如下: Class hierarchy - Thread - NamedThread - VMThread - ConcurrentGCThread - WorkerThread - GangWorker - GCTaskThread - JavaThread

jvm 深入理解自动内存分配与垃圾回收

要想了解jvm自动内存分配,首先必须了解jvm的运行时数据区域,否则如何知道在哪里进行自动内存分配,如何进行内存分配,回收哪里的垃圾对象? jvm运行时数据区:程序计数器,虚拟机栈,本地方法栈,方法区,堆 程序计数器:由于程序指令是一条一条顺序执行,一条执行完之后必须知道下一条该执行那条指令,那么程序计数器就是来记录下一条指令的地址,如果调用本地方法,则程序计数器记录空值,还有由于java线程由cpu调度并发执行,所以程序计数器也有助于线程状态的恢复,程序计数器如果线程共享,在频繁的线程调度下保

Java虚拟机JVM简单理解

Java虚拟机JVM的作用: Java源文件(.java)通过编译器编译成.class文件,.class文件通过JVM中的解释器解释成特定机器上的机器代码,从而实现Java语言的跨平台. JVM的体系结构包含三个主要的子系统和一个内存区,分别是: 垃圾回收器:用于回收堆(heap)中无引用的对象. 类装载子系统:定位及导入二进制class文件,校验被导入类的正确性,为类变量分配初始化内存,以及帮助解析符号引用. 执行引擎:执行被转载类中的方法指令. 运行时数据区:又叫做虚拟机内存或Java内存.

JVM深入理解<二>

以下内容来自: http://www.jianshu.com/p/ac7760655d9d JVM相关知识详解 一.Java虚拟机指令集 Java虚拟机指令由一个字节长度的.代表某种特定含义的操作码(Opcode)以及其后的零个至多个代表此操作参数的操作数构成.虚拟机中许多指令并不包含操作数,只有一个操作码.若忽略异常,JVM解释器使用一下为代码即可有效工作. do{ 自动计算PC寄存器以及从PC寄存器的位置取出操作码 if(存在操作数) 取出操作数; 执行操作码所定义的操作; }while(处

JVM深入理解<一>

以下文章来自与: http://www.jianshu.com/p/fabad9250b1b 一.什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.由一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域等组成.JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的

对JVM的理解

操作系统内核是至高无尚的内功心法,只有掌握了内功,学习其他的武功才会轻而易举. 现在我们来谈谈java.JVM其实是操作系统中运行的进程,可以把它看成一台虚拟的机器,这台机器可以按需加载可执行二进制文件(字节码文件),然后由虚拟机执行引擎解释执行字节码,将其翻译成cpu可以识别的指令.在jvm的逻辑地址空间中,有方法区(用来存放可执行文件),堆(用于存放对象和数组,jvm垃圾回收器动态分配和回收该区域的内存空间),栈(保存线程的方法调用关系,数据),常量池(存放常量)等.因此,一个Java虚拟机

我对jvm的理解

1.程序计数器:指向当前线程执行的字节码指令文件的地址和行号 为了在cpu将线程挂起,进行线程切换时,能够记录当前线程的执行进程,正确安全的执行完.2.虚拟机栈:(存储当前线程运行的方法的栈帧,只有等方法执行完栈帧才会出栈) 测试看在同一给方法中的多个方法. 用来执行对应的方法所需的数据,通过对方法的划分又细分为栈帧. 注意:由于虚拟机栈在数据结构中算是栈,有着先进后出的特点 每个虚拟机栈又可细分为 1)局部变量表:32位 8大基础数据类型 double/long(64):分为高32位,和低32