一、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,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比SUN的JDK高的多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。
JDK有以下三种版本:
J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序

我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。

JRE:Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。

JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

JVM原理:
1、jvm相对于操作系统来说,是一个应用程序,jvm负责与系统交互,屏蔽掉操作系统的环境。jvm有自己的生命周期、数据空间。
2、jvm相对java程序来说,是一个容器。
3、JRE包含JVM。
JVM执行程序的过程:
1、加载class文件。
2、管理并分配内存(java程序运行)。
3、执行垃圾收集(java程序运行期间)。
什么时候启动JVM:
对于开发者来说,打开IDE的同时就启动了JVM,比如用的IDE是MyEclipse,MyEclipse启动的同时会启动java.exe。启动java.exe即新建一个JVM.
启动JVM的步骤:
1、创建JVM的转载环境和配置。
2、转载JVM.dll
3、初始化JVM.dll 并挂接到JNIENV(JNI调用接口)实例。
4、调用JNIENV实例并加载class文件。
JVM与编译器、操作系统的关系图:(java虚拟机就是JVM)

jvm原理、启动时间、与编译器操作系统关系相关推荐

  1. JVM原理、调优、GC

    转自:https://www.jianshu.com/p/63fe09fe1a60 jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语 ...

  2. 面试必问之JVM原理

    1:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...

  3. Java的jvm原理和常识

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机 ...

  4. 面试必问之JVM原理 1

    1:什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...

  5. Java 虚拟机(JVM)原理介绍

    Java 虚拟机[JVM]原理介绍 1.概述 2.Java类的加载原理机制 2.1 .Java类的加载过程 2.2 .Class loader (类加载器) 2.2.1 类的生命周期 2.2.1.1 ...

  6. 第二十三章 Java线程与操作系统关系

    Java线程与操作系统关系 Java线程的实现方式 线程的实现 内核线程实现 用户线程实现 用户线程加轻量级进程混合实现 Java线程的实现 Java线程调度 线程状态转换 线程安全 线程安全分类 线 ...

  7. java的jvm是指_java JVM原理与常识知识点

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机 ...

  8. jvm原理解析——不疯魔不成活

    摘要: 作为一名java开发人员,如果有人问你java是什么?java是如何运行的?你该如何回答,事实上java是有Java语言.class文件.jvm.Java API共同组成. java程序运行 ...

  9. jvm原理解析--不疯魔不成活

    java程序运行 *.java文件-->编译器-->*.class文件-->线程启动(main)-->jvm-->操作系统-->硬件 通过上面的流程我们可以看出ja ...

最新文章

  1. (十二)企业级java springcloud b2bc商城系统开源源码二次开发-断路器监控(Hystrix Dashboard)...
  2. 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题
  3. Android开发--AsyncTask异步任务(二)
  4. linux常用特殊符号大全
  5. OAauth2.0包括以下角
  6. 丰富自己的代码库-快速排序
  7. PyFoam来实时输出残差
  8. distinct作用于后面所有的列吗_所有的鱼缸都适合放底砂吗?有的沙子让观赏鱼变美,有的起反作用...
  9. C++ dll的隐式与显式调用
  10. java中runnable_Java:在Runnable中处理RuntimeException
  11. spinlock导读
  12. Media Player Classic - HC 源代码分析 6:MediaInfo选项卡 (CPPageFileMediaInfo)
  13. lufylegend引擎制作接水果小游戏
  14. 送书 | Web前端性能优化
  15. Apache opennlp简单介绍
  16. 上海电力大学计算机科学与技术学院,栗风永 - 上海电力大学 - 计算机科学与技术学院...
  17. jQuery图片播放插件ColorBox使用方法
  18. 计算机win10下常用命令验证性实验
  19. HTML-----图像,超链接,锚链接,网页布局
  20. nuxt 目录结构及配置文件详解

热门文章

  1. NSDate分类,把系统返回的时间与现在进行比较---秀清
  2. 【AC自动机】HDU 2222 Keywords Search 裸题
  3. Java 工厂模式学习
  4. IEnumerableT 接口主要成员
  5. 首页静态生成 错误:客户端发现响应内容类型为“text/html”,但应该是“text/xml”...
  6. 再读《精通css》00
  7. leetcode 1025 python
  8. C语言课后习题(53)
  9. 懒人看执行计划神器 for Oracle
  10. 2019年开源数据库报告发布:MySQL仍卫冕!