文章目录

  • ①. 什么是JVM?
  • ②. Java的跨平台及原理
  • ③. JVM的分类
  • ④. 三大商业虚拟机

①. 什么是JVM?

  • ①. JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机

  • ②. jvm是运行在操作系统之上的,与硬件没有任何关系

②. Java的跨平台及原理

  • ①. 跨平台:由Java编写的程序可以在不同的操作系统上运行:一次编写,多处运行

  • ②. 原理:编译之后的字节码文件和平台无关,需要在不同的操作系统上安装一个对应版本的虚拟机(JVM)
    (Java虚拟机不和包括java在内的任何语言绑定,它只与class文件这种二进制文件格式所关联。无论使用何种语言进行软件开发,只要将源文件编译为正确的Class文件,那么这种语言就可以在Java虚拟机上执行,可以说,统一而强大的Class文件结构,就是Java虚拟机的基石、桥梁)

③. JVM的分类

  • ①. 类加载子系统

  • ②. 运行时数据区(我们核心关注这里 的栈、堆、方法区)

  • ③. 执行引擎(一般都是JIT编译器和解释器共存)

  1. JIT编译器(主要影响性能):编译执行;一般热点数据会进行二次编译,将字节码指令变成机器指令。将机器指令放在方法区缓存
  2. 解释器(负责响应时间):逐行解释字节码


④. 三大商业虚拟机

  • ①. Sun HotSpot
  1. 提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机
  2. 在2006年的JavaOne大会上,Sun公司宣布最终会把Java开源,并在随后的一年,陆续将JDK的各个部分(其中当然也包括了HotSpot VM)在GPL协议下公开了源码, 并在此基础上建立了OpenJDK。这样,HotSpot VM便成为了Sun JDK和OpenJDK两个实现极度接近的JDK项目的共同虚拟机。
  3. 在2008年和2009年,Oracle公司分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit VM和HotSpot VM。 Oracle公司宣布在不久的将来(大约应在发布JDK 8的时候)会完成这两款虚拟机的整合工作,使之优势互补。 整合的方式大致上是在HotSpot的基础上,移植JRockit的优秀特性,譬如使用JRockit的垃圾回收器与MissionControl服务, 使用HotSpot的JIT编译器与混合的运行时系统
  • ②. BEA JRocket
  1. 专注于服务端应用(JRockit内部不包含解释器实现,全部代码都靠即时编译器编译后执行)
  2. Jrockit JVM 是世界上最快的jvm3. 2008年被oracle收购
  • ③. iBM J9
  1. 市场定位与hotspot接近,服务器端,桌面应用,嵌入式等
  2. 目前,是影响力的三大商业虚拟机之一

JVM01_概述、跨平台原理、分类、三大商业虚拟机相关推荐

  1. Java虚拟机(JVM)以及跨平台原理

    一. Java概述 1. Java语言概述 2. Java虚拟机以及跨平台原理 3. Java的主要就业方向 4. Java的不同版本 5. Java开发环境搭建 6. 第一个Java程序示例 7.  ...

  2. 【JAVA】Java概述(1、Java语言发展史;2、Java语言跨平台原理;3、JRE和JDK;4、JDK的下载与安装)

    Java概述 重新学习Java第一篇 文章目录 Java概述 1.JAVA语言发展史 1.1Java语言 1.2Java语言发展史 2.Java语言跨平台原理 2.1平台 2.2跨平台 2.3跨平台原 ...

  3. Java01-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  4. 集群概述及原理笔记(1)

    it你好linux学习文档之集群概述及原理笔记(1) 一 前言 目前,越来越多的网站采用Linux操作系统,提供邮件.Web.文件存储.数据库等服务.也有非常多的公司在企业内部网中利用Linux服务器 ...

  5. 【unity】unity跨平台原理

    跨平台 跨平台的含义是指一次编译,各个平台都可以运行. C/C++语言不能一次编译到处执行,因为C/C++的编译的结果是针对特定平台操作系统.处理器指令集而生成的本地代码(native code),那 ...

  6. 输入输出 原理 java_java输入输出,书写规范,运行原理,跨平台原理(复习)...

    一个大概的java程序执行过程: java虚拟机跨平台原理:不管是什么系统,java源代码程序经过javac编译器编译成二进制的.class文件, .class文件在运行在jvm(虚拟机)上解释成对应 ...

  7. 大数据平台,Hadoop集群架构,概述及原理

    目录 一,大数据平台架构概述 1,大数据概念 2,大数据的特征 3,大数据的处理流程和相关技术 4,大数据平台架构的特点 5,大数据平台架构原理 二,Hadoop集群概述 1,HDFS 2,MapRe ...

  8. unity跨平台原理

    一直以来很好奇,为什么unity可以跨平台开发,用了这么久还是有必要弄清楚的,所以今天特地研究了一下,记录下来,也供大家学习. Unity介绍: Unity3D主要包括两个部分:Unity Engin ...

  9. 2.Java语言跨平台原理?

    2.Java语言跨平台原理? 理解 为主 Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行 ...

最新文章

  1. python的服务器、客户端被拒绝访问_python – uWSGI服务器日志…权限被拒绝读取......
  2. 29 仿京东放大镜案例
  3. 漫画:什么是 JVM 的垃圾回收?
  4. java inflaterinputstream_java.util.zip.InflaterInputStream.available()方法示例
  5. 企业必须关注的IPv6网络安全25问
  6. 必须掌握的前端模板引擎之art-template
  7. SpringBoot官方提供的starter pom
  8. thinkphp模板常用的方法
  9. 【手势识别】基于matlab GUI石头剪刀布【含Matlab源码 774期】
  10. C++调用Object-C
  11. NPOI Word 多级标题结构设置
  12. 【无头浏览器】谷歌无头浏览器的几行代码简单设置?
  13. 前端微信支付代码(公众号支付)
  14. 拆 米家台灯_拆机测评 篇二: 就是一台149元 Mijia 米家台灯,有什么可测的?...
  15. Lebesgue可测但非Borel可测的函数
  16. C#学习之Spilt用法
  17. JVM调优-GC基本原理和调优关键分析
  18. web前端整套面试题(二)--今日头条面试题
  19. WORD如何互相复制样式?
  20. 【JavaSE】入门概述(1~41)

热门文章

  1. 【Excel】单元格输入换行符、替换换行符
  2. python3将汉字转换为大写拼音首字母
  3. [译]使用MVI打造响应式APP[七]:掌握时机(SingleLiveEvent问题)
  4. 神兵利器 - 在没有任何权限的情况下获取任何 Microsoft Windows 用户密码
  5. 高中就开始学的正态分布,原来如此重要!
  6. 快速排序(Java实现 )
  7. 从制造向智造迈进,可编程逻辑控制器方案的设计与实现
  8. java代码美化json格式
  9. 最简单的豆瓣电影排行爬虫 萌新都可以看懂
  10. java 释放static_JAVA中的static关键字作用与用法