精华内容
下载资源
问答
  • Java jvm 原理

    2015-10-24 11:28:00
    1.Java语言运行的过程 Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上...JVMjava的核心和基础,在java编译器和os平台之间的虚拟处理器。...

    1.Java语言运行的过程

    Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行。

    Java语言运行的过程

    也相当与

    Java语言运行的过程

    注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。

    2.JVM:

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

    java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

    JVM执行程序的过程 :

    I.加载。class文件

    II.管理并分配内存

    III.执行垃圾收集

    JRE(java运行时环境)由JVM构造的java程序的运行环境 

    JVM执行程序的过程

     

     

     

    ------------------------------------

    jvm的配置主要针对的是jdk,所谓的tomcat 配置其实都是通过外层入口对JDK的配置

    可用cmd命令直接对jvm配置

    转载于:https://www.cnblogs.com/heygirl/p/4906491.html

    展开全文
  • JAVA JVM原理资料

    2010-05-03 10:28:05
    JAVA JVM原理资料,最新。很不错,看看吧。
  • JVMjava的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。编译器负责把Java程序转成Class文件,方便...

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

    编译器负责把Java程序转成Class文件,方便Jvm来读取它.

    Jvm是java虚拟机,其实它就是解释器,把Class文件中的命令转成某种平台的命令,比如把Java命令转成Windows下的命令,然后Java程序就执行了.

    这里和大家简单分享一下JAVA和JVM运行的原理,Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器

    JAVA和JVM运行的原理

    1.Java语言运行的过程

    Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行。

    Java语言运行的过程Java语言运行的过程

    f585e8c561b07dbf80b9561f23824977.gif

    也相当与

    145b44584d0782a7ec6f09f2c039c181.gif

    Java语言运行的过程

    注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。

    2.JVM:

    JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

    java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

    JVM执行程序的过程 :

    I.加载。class文件

    II.管理并分配内存

    III.执行垃圾收集

    JRE(java运行时环境)由JVM构造的java程序的运行环境

    JVM执行程序的过程

    673f348a21dc1accc54bbf4dae1c983e.gif

    欢迎添加小编的Java学习群,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2019年最新的Java资料和0基础入门教程视频,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑

    a6c7e92a5edb7a1c33dc7147bdb7dfe0.png

    本文由博客一文多发平台 OpenWrite 发布!

    展开全文
  • 在本文中小编给大家分享的是关于javaJVM原理java常识,有兴趣的朋友们可以学习下
  • 深入解析Java jvm原理

    2016-08-24 15:04:55
    深入解析jvm原理 Performance Engineering Performance Requirements Application Performance Analysis
  • JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟...下面通过本文给大家介绍jvm原理与调优相关知识,感兴趣的朋友一起学习吧
  • JAVA JVM原理详解

    2019-09-08 17:10:51
    JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的...

    前言

      JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。

    运行流程

      我们都知道java一直宣传的口号是:一次编译,到处运行。那么它如何实现的呢?我们看下图:

    image

      java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行。这样我们是不是可以推演,如果要在mac系统上运行,是不是只需要安装mac java虚拟机就行了。那么了解了这个基本原理后,我们尝试去做更深的研究,一个普通的java程序它的执行流程到底是怎样的呢?例如我们写了一段这样的代码:

    public class HelloWorld { public static void main(String[] args) { System.out.print("Hello world"); } }

    这段程序从编译到运行,最终打印出“Hello world”中间经过了哪些步骤呢?我们直接上图:

    image

      java代码通过编译之后生成字节码文件(class文件),通过:java HelloWorld执行,此时java根据系统版本找到jvm.cfg,各位可以搜索一下自己电脑上的jvm.cfg文件在哪,它会根据你的系统版本放在不同的位置,比如我的这个文件就在:C:\Program Files\Java\jdk1.8.0_101\jre\lib\amd64\jvm.cfg,打开看一下:

    S{6G7J8WOT3$)72FL1DW5U7

      这是我电脑上的文件,其中-server KNOWN就表示名称为server的jvm可用。如果这时你搜索一下你电脑上jvm.dll,你就会发现它一定在你的某个server目录下,比如我的:C:\Program Files\Java\jdk1.8.0_101\jre\bin\server\jvm.dll。简而言之就是通过jvm.cfg文件找到对应的jvm.dll,jvm.dll则是java虚拟机的主要实现。接下来会初始化JVM,并且获取JNI接口,什么是JNI接口,就是java本地接口,你想啊java被编译成了class文件,JVM怎么从硬盘上找到这个文件并装载到JVM里呢,就是通过JNI接口(它还常用于java与操作系统、硬件交互),找到class文件后并装载进JVM,然后找到main方法,最后执行。

    JVM基本结构

      可能通过上面的描述,大家对JVM运行流程有了一个粗略的认识,那么JVM内部到底是怎么执行一个class文件的呢,也就是上图中最后一步第6步的内部细节是怎样的呢?要了解这个问题,我们首先得看一下JVM的内部结构:

    image

      从这个结构不难看出,class文件被jvm装载以后,经过jvm的内存空间调配,最终是由执行引擎完成class文件的执行。当然这个过程还有其他角色模块的协助,这些模块协同配合才能让一个java程序成功的运行,下面就详细介绍这些模板,它们也是后面学习jvm最重要的部分。

    内存空间:

    JVM内存空间包含:方法区、java堆、java栈、本地方法栈。

    方法区是各个线程共享的区域,存放类信息、常量、静态变量。

    java堆也是线程共享的区域,我们的类的实例就放在这个区域,可以想象你的一个系统会产生很多实例,因此java堆的空间也是最大的。如果java堆空间不足了,程序会抛出OutOfMemoryError异常。

    java栈是每个线程私有的区域,它的生命周期与线程相同,一个线程对应一个java栈,每执行一个方法就会往栈中压入一个元素,这个元素叫“栈帧”,而栈帧中包括了方法中的局部变量、用于存放中间状态值的操作栈,这里面有很多细节,我们以后再讲。如果java栈空间不足了,程序会抛出StackOverflowError异常,想一想什么情况下会容易产生这个错误,对,递归,递归如果深度很深,就会执行大量的方法,方法越多java栈的占用空间越大。

    每个帧代表一个方法,Java方法有两种返回方式,return和抛出异常,两种方式都会导致该方法对应的帧出栈和释放内存。

     ③ 栈运行原理

         栈中的数据都是以栈帧(Stack Frame)的格式存在,栈帧是一个内存区块,是一个数据集,是一个有关方法和运行期数据的数据集,当一个方法A被调用时就产生了一个栈帧F1,并被压入到栈中,A方法又调用了B方法,于是产生栈帧F2也被压入栈,B方法又调用了C方法,于是产生栈帧F3也被压入栈…… 依次执行完毕后,先弹出后进......F3栈帧,再弹出F2栈帧,再弹出F1栈帧。

         遵循“先进后出”/“后进先出”原则。

        帧的组成:局部变量区(包括方法参数和局部变量,对于instance方法,还要首先保存this类型,其中方法参数按照声明顺序严格放置,局部变量可以任意放置),操作数栈,帧数据区(用来帮助支持常量池的解析,正常方法返回和异常处理)。

    本地方法栈角色和java栈类似,只不过它是用来表示执行本地方法的,本地方法栈存放的方法调用本地方法接口,最终调用本地方法库,实现与操作系统、硬件交互的目的。

    PC寄存器,说到这里我们的类已经加载了,实例对象、方法、静态变量都去了自己改去的地方,那么问题来了,程序该怎么执行,哪个方法先执行,哪个方法后执行,这些指令执行的顺序就是PC寄存器在管,它的作用就是控制程序指令的执行顺序。

    执行引擎当然就是根据PC寄存器调配的指令顺序,依次执行程序指令。

    静态变量+常量+类信息+运行时常量池存在方法区中,实例变量存在堆内存中。

    基本类型的变量和对象的引用变量都是在函数的栈内存中分配。

    展开全文
  • JVMJava Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一...

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

    1、JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。

    4ba323c0319e6221d413b9eba4670a46.png

    2、JVM的体系结构:

    类装载器(ClassLoader)(用来装载.class文件)

    执行引擎(执行字节码,或者执行本地方法)

    运行时数据区(方法区、堆、java栈、PC寄存器、本地方法栈)

    4cd6010ff5b9c653319346279c24e17e.png

    3、JVM运行时数据库示意图

    21ca3e4511126cb3be395d0dd4241927.png

    1、/3JRE/JDK/JVM是什么关系

    JRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java 程序都要在JRE下才能运行。普通用户只需要运行已开发好的java程序,安装JRE即可。

    3c5aaaa6ba1550cd8d82e8e51b5dd56d.png

    2、JDK(Java Development Kit)是程序开发者用来来编译、调试java程序用的开发工具包。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是 安装的一部分。所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文件。

    6d1c40e1e0a466fe17d7b9c6a98fbb59.png

    3、

    JVM(JavaVirtualMachine,Java虚拟机)是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。使用JVM就是为了支持与操作系统无关,实现跨平台。

    d95d0e7fb0cef1b3fcc53150df2b2730.png

    以上就是关于JAVA JVM的原理和知识点,感谢大家的阅读和对脚本之家的支持。

    展开全文
  • JVMjava的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。编译器负责把Java程序转成Class文件,方便...
  • 一:简介在学习Java虚拟机之前,也就是Jvm之前,我想大家能够带着问题去学习,这样的话,大家学习起来也会比较有所获!1.Java虚拟机(Jvm)是什么?2.Java虚拟机是用来干什么的?3.Java虚拟机它的体系结构是什么样子的...
  • Java JVM内部原理

    2020-07-29 16:43:08
    java实现了一次性编写,不同系统平台都可以运行的功能,主要还是基于其JVM的机制。 JVM机制主要执行流程如下图(以HelloWord程序为例子,源自网络): 从中可以看出几个需要记住的重要文件:jvm.cfg 和 JVM的主要...
  • 前言JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。运行流程我们都知道java一直宣传的口号...
  • 码住学习~ Java 详解 JVM 工作原理和流程
  • JVM 运行机制及其原理发布时间:2018-05-22 22:15,浏览次数:1074, 标签:JVM最近出去面试,总被问到JavaJVM相关的东西,什么JVM的内存模型、JVM的内存分配、内存回收、内存回收算法…搞得我一头雾水,早些年还看过...
  • Java Jvm运行机制原理

    2019-09-24 07:34:45
    Java Jvm运行机制原理 一:简介 在学习Java虚拟机之前,也就是Jvm之前,我想大家能够带着问题去学习,这样的话,大家学习起来也会比较有所获! 1.Java虚拟机(Jvm)是什么?2.Java虚拟机是用来干...
  • Java JVM GC原理

    2018-06-12 14:48:56
    绝大部分内存回收时发生在JVM的堆(用来存储对象实例)上的1.GC回收判断对象已死的算法1)引用计数算法:给对象中添加个引用计数器,每当有地方引用它时,计数器+1;失去引用时,计数器-1;优点:判定效率高,在大...
  • 1、 什么是JVMJVM的全称是Java Virtual Machine(Java虚拟机),它通过模拟一个计算机来达到计算机所具有的计算功能。2、 JVM体系结构详解JVM的结构基本上由四部分组成:----类加载器(ClassLoader):在JVM启动时或运行...
  • Javajvm原理和常识

    2019-05-16 02:15:27
    JVMJava Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、...
  • 打个小广告,欢迎大家关注Java经验分享,里面大量BATJ面试题,Java技术干货,也欢迎大家投稿~java经验分享​zhuanlan.zhihu.com1、JVM原理JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最...
  • 一:简介在学习Java虚拟机之前,也就是Jvm之前,我想大家能够带着问题去学习,这样的话,大家学习起来也会比较有所获!1.Java虚拟机(Jvm)是什么?2.Java虚拟机是用来干什么的?3.Java虚拟机它的体系结构是什么样子的...
  • Java JVM 工作原理详解

    2017-07-12 16:15:43
    原文:...从这个框图很容易大体上了解 java 程序工作原理。首先,你写好 java 代码,保存到硬盘当中。然后你在命令行中输入 javac YourClassName.
  • JVM原理及个人建议,欢迎查看
  • 这里和大家简单分享一下JAVAJVM运行的原理Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVMjava的核心和...
  • https://www.cnblogs.com/whhjava/p/9916626.html java JVM运行机制和原理 老铁,如果有收获,请点个免费的赞鼓励一下博主

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,651
精华内容 5,460
关键字:

javajvm原理

java 订阅