JVM是怎么工作的?】的更多相关文章

了解JVM的工作机制能够更好的帮助我们理解java语言本身,规避各种可能的错误.所以,今天趁此机会好好复习一下.来看看JVM是怎么工作的. 一.啥是JVM JVM可以理解为用来运行java程序的一种运行时引擎(run-time engine).没错,main方法就是由jvm调用作为入口方法的.JVM是JRE的重要组成部分. JVM为java程序提供了一次编写,到处运行的基础. 当我们编译一个java文件时,就由编译器生成一个对应的class文件,当我们运行class文件时,JVM会对class文…
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font: 1.21em/1.2 KaTeX_M…
原文 https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ 再插一个关于线程和进程上下文,待判断 http://blog.sina.com.cn/s/blog_75e9551f01016cm3.html 垃圾收集基础 Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况.自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担. 拥有垃圾收集…
一.基本结构 类加载器:在 JVM 启动时或在类运行时需要将类的字节码信息加载到 JVM 内存区域中. 执行引擎:负责执行字节码信息中包含的字节码指令,相当于实际机器上的 CPU. 内存区域:也被称为运行时数据区.将内存划分为多个区域,模拟实际机器上的储存.记录和调度功能模块.因为执行引擎在执行一段程序时需要储存一些东西(如操作码需要的操作数,操作码的执行结果需要保存),而且类的字节码和对象等信息都需要在执行引擎执行前就准备好. 本地方法接口:主要是调用C或C++实现的本地方法及返回结果. 如图…
类加载器 classloader:谈到类加载,不得不提的就是负责此项工作的类加载器classloader,classloader的职责是将Java源文件编译后的字节码文件加载到内存中去执行. 类加载至卸载过程 步骤一.类加载机制 当系统运行时,类加载器将.class文件的二进制数据从外部存储器(如光盘,硬盘)调入内存中,CPU再从内存中读取指令和数据进行运算,并将运算结果存入内存中.内存在该过程中充当着"二传手"的作用,通俗的讲,如果没有内存,类加载器从外部存储设备调入.class文件…
JVM能跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽了与各个计算机平台的软件和硬件之间的差异. 7.1 JVM体系结构 7.1.1 何谓JVM 模拟一个计算机来达到一个计算机所具有的计算功能. 以计算为中心来看计算机的体系结构可以分为如下几个部分. 指令集    计算机能识别的机器语言的命令集合. 计算单元  能够识别并且控制指令执行的功能模块. 寻址方式  地址的位数,最小地址和最大地址范围,以及地址的运行规则. 寄存器定义 包括操作数寄存器,变址寄存器,控制寄存器等的定义,数量…
题外话:很久没有写博客了,事情颇多,今天空闲下来,学习一下顺便写一下自己的了解,机会总是留给有准备的人,所以平常一定要注意知识的巩固和积累.知识的深度也要有一定的理解,不比别人知道的多,公司干嘛选你? 一.JVM结构 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中. 2.执行引擎:负责执行class文件中包含的字节码指令(执行引擎的工作机制,这里也不细说了,这里主要介绍JVM结构): 3.内存区(也叫运行时数据区):是在JVM运行的时候操作所…
jvm体系 jvm简介 java virtual machine jvm体系详解 jvm工作机制 虚拟机怎么执行代码 jvm为何基于栈 执行引擎 执行引擎过程 java调用栈 总结…
IBM介绍文档:https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ Java 的新生代串行垃圾回收器中使用了复制算法的思想.新生代分为 eden 空间.from 空间.to 空间 3 个部分.其中 from 空间和 to 空间可以视为用于复制的两块大小相同.地位相等,且可进行角色互换的空间块.from 和 to 空间也称为 survivor 空间,即幸存者空间,用于存放未被回收的对象. 在垃圾回收时,eden…
JVM全程是java virtual machine(java虚拟机). 以计算为中心来看计算机的体系结构可以分为以下几个部分: 1.指令集:这个计算机所能识别的机器语言的命令集合; 2.计算单元:能够识别并控制指令执行的功能模块; 3.寻址方式:地址的位数.最小地址和最大地址范围,以及地址的运行规则; 4.寄存器定义:包括操作数寄存器.变址寄存器.控制寄存器等的定义.数量和使用方式; 5.存储单元:能够存储操作数和保存操作结构的单元,如内核级缓存.内存和磁盘等; 执行引擎是JVM的核心部分,它…
JVM主要包括四个部分: 类加载器(ClassLoad) 执行引擎 内存区: 本地方法接口:类似于jni调本地native方法 内存区包括四个部分: 1.方法区:包含了静态变量.常量池.构造函数等 2.Java堆:java实例或者是对象 3.Java栈:java栈总是和线程关联在一起,每当创建一个线程时,JVM就会为这个线程创建一个对应的java栈.在这个java栈中又会包含多个栈帧,每运行一个方法就创建一个栈帧,用于存储局部变量表.操作栈.方法返回值等.每 一个方法从调用直至执行完成的过程,就…
java jvm 有分层的思想.   java类..java文件,源文件,源代码,源程序   编译器不能把源代码直接编译成0101,除非是java语言写的操作系统.   windows认识的可执行文件是.exe文件,windows操作系统可以把.exe文件翻译成0101.  …
        JVM能够跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽了与各个计算机平台相关的软件或者是硬件之间的差异,使得与平台相关的耦合统一由JVM提供者来实现.   何为JVM         JVM的全名是Java Virtual Machine(Java虚拟机).它是通过模拟一个计算机的形式来实现到计算机所具有的计算功能.让我们先来看看一台真实的计算机具备计算功能的条件: 指令集 这个计算机所能识别的机器语言的命令集合. 计算单元 即能够识别并且控制指令执行的功能模块 寻…
本来JVM的工作原理浅到可以泛泛而谈,但如果真的想把JVM工作机制弄清楚,实在是很难,涉及到的知识领域太多.所以,本文通过简单的mian方法执行,浅谈JVM工作原理,看看JVM里面都发生了什么. 先上代码: public class Test { private int invar = 1; public static String concat(String str1, String str2) { return str1+str2; } public int f() { return inv…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms 逃逸分析(DoEscapeAnalysis )的概念——JVM栈上分配实验 JVM中client模式(-client)和server模式(-server)的区别 查看GC日志的方法 使用idea对JVM进行参数输入 Java栈,Java堆和方法区的交互原理 为了能让递归方法调用的次数更多一些,应该怎…
Java常见错误: 文件名字应该与文件中public类的名字相同 public static void main(String[] args); 如何定位错误和解决错误. JVM,JRE,JDK解释和区别. JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.ja…
转载: JVM垃圾回收机制总结:调优方法 JVM 优化经验总结 JVM 垃圾回收器工作原理及使用实例介绍…
jre: Java Runtime Environment java运行环境 ----------------------------------------- jdk:Java Development ToolKit(Java开发工具包 ----------------------------------------- JVM: Java Virtual Mechinal  Java虚拟机 -------------------------------------------- JDK : J…
什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Google APP SDK.SDK用于帮助开发人员的提高工作效率.各种不同类型的软件开发,都可以有自己的SDK.Windows有Windows SDK,DirectX 有 DirectX 9 SDK,.NET开发也有Microsoft .NET Framework SDK.JAVA开发也不含糊,也有自己…
http://www.cnblogs.com/hencehong/p/3252166.html 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用. JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环…
概述:JVM性能调优没有一个非常固定的设置,比如堆大小设置多少,老年代设置多少.而是要根据实际的应用程序的系统需求,实际的活跃内存等确定.正文: JVM调优工作流程 整个调优过程是不断重复的一个迭代,后面的步骤有可能影响前面的配置,可能需要重新调优. 应用程序的系统需求 确定应用程序的系统需求是性能调优的基础,后面的调优都会依赖这个要求.一个应用不会无休止地调优下去. 1.可用性 2.可管理性 3.启动时间 4.吞吐量 TPS: 每秒多少次事务 QPS: 每秒多少次查询 5.延迟 比如关键请求必…
此文主要对 JDK.JRE.JVM进行简单的介绍,给各位亲们一个参考.若有不足之处,敬请各位大神指正,不胜感激! 一.基本概念 JDK(Java Development Kit:Java 开发工具包) 是面向开发人员使用的 SDK(Software Development Kit:一般指软件开发包, 可以包含函数库.编译程序等), 它提供了 Java 的开发环境和运行环境.我们一般用 JDK 来代指Java API,Java API 是 Java 的应用程序接口,是前辈们写好的一些 Java C…
原文出处: 摆渡者 引言 曾几何时,我也敲打过无数次这样的命令: 然而之前的我都只关心过版本号,也就是第一行的内容.今天,我们就来看看第3行输出的内容:JVM的类型和工作模式. 其实说Server和Client是JVM的两种工作模式是不准确的,因为它们就是不同的虚拟机,因此应该说有两种类型的JVM. 第三行的输出中可以看到:JVM的名字(HotSpot).类型(Client)和build ID(24.79-b02) .除此之外,我们还知道JVM以混合模式(mixed mode)在运行,这是Hot…
我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用. JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础…
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar). JDK有以下三种版本: J2SE,standard edition,标准版,是我们通常用的一个版本 J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序 J2ME,…
JAVA用到现在还是分不太清楚JDK,JRE,JVM这三者的区别与联系,一直都是模模糊糊的.所以今天整理下此中的关系. 简单说明:我们编写的.java文件经过JDK(JDK的bin目录下javac.exe程序)编译成.class文件.之后.class文件会运行在JRE环境下并被JVM解释后交给操作系统.下面先上个大家非常熟悉的图: 1.JDK:编译环境(编译类库 + 编译程序) + JRE . 简单的说就是提供了Java的开发环境和编译环境一般包含JRE,主要用于开发JAVA程序,面向Java程…
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar). 最主流的JDK是Sun公司发布的JDK,除了…
使用java很久,但是一直不清楚JDK,JRE,JVM直接的关系,今天特地梳理一下. JDK:Java Development ToolKit(Java开发工具包),JDK是整个JAVA的核心,包括Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar). 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司…
首先声明,这篇文章是从网上粘贴过来的.原文地址是:http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html.感觉写的很好,所以粘贴过来记录下. 这些日子,在看一些java的东西,由于刚入手,对java不是很了解,结果对java的一些名词没有一个清晰的脉络,现在稍微整理一下 令我纠结的是jdk,sdk,jre,jvm,ide,adt,跨平台性,j2ee,j2se,这些名词弄的我云里雾里的. 首先,什么是SDK呢? Softwa…
这不是一篇描述jvm是什么的文章,也不介绍jvm跨平台的特性,也不是讲述jvm安全特性的文章,更不是讲解jvm指令操作,数据运算的文章,本文重点讲述类型的生命周期. 类型的生命周期涉及到:类的装载.jvm体系结构.垃圾回收机制. 为什么要讲jvm体系结构?因为类的装载和垃圾回收机制都和jvm体系结构息息相关. 那么什么是jvm体系结构呢? 当jvm运行起来的时候,它会向系统申请一片内存区(不同的jvm实现可能不同,有些可以使用虚拟内存),将这块内存分出一部分存储许多东西,例如:程序创建的对象,传…