JVM(一)

  • JVM概述
    • 计算机系统中JVM所处的位置
    • 什么是java虚拟机(JVM)?
    • JVM体系结构概览
    • JVM生命周期
      • 1.启动
      • 2.执行
      • 3.退出
    • 各种JVM

JVM概述

计算机系统中JVM所处的位置


JVM是运行在操作系统之上的,并没有和硬件有直接的交互

什么是java虚拟机(JVM)?

java虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统

Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行

JVM体系结构概览


1.方法区和堆区是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。

2.Java栈又叫做jvm虚拟机栈

3.方法区(永久代)在jdk8中又叫做元空间Metaspace

  • 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器(JIT编译器,英文写作Just-In-Time Compiler)编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做 Non-Heap(非堆),目的应该是与 Java 堆区分开来。
  • 在JDK1.7之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时hotspot虚拟机对方法区的实现为永久代
  • 在JDK1.7 字符串常量池被从方法区拿到了堆中, 这里没有提到运行时常量池,也就是说字符串常量池被单独拿到堆,运行时常量池剩下的东西还在方法区, 也就是hotspot中的永久代
  • 在JDK1.8之后JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。同时在 jdk 1.8中移除整个永久代,取而代之的是一个叫元空间(Metaspace)的区域。

4.java代码执行流程:
java程序–(编译javac)–>字节码文件.class–>类装载子系统化身为反射类Class—>运行时数据区—>(解释执行)–>操作系统(Win,Linux,Mac JVM)

JVM生命周期

1.启动

通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的.

2.执行

  • 一个运行中的java虚拟机有着一个清晰的任务:执行Java程序;程序开始执行的时候他才运行,程序结束时他就停止;
  • 执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程。

3.退出

  • 程序正常执行结束
  • 程序异常或错误而异常终止
  • 操作系统错误导致终止
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且java安全管理器也允许这次exit或halt操作
  • 除此之外,JNI规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况

各种JVM

  • SUN Classic
  • Exact VM
  • HotSpot VM :HotSpot指热点代码探测技术
  • BEA JRockit:(BEA 已被Oracle收购) 专注于服务端应用,世界最快的jvm之一
  • IBM J9
  • Taobao JVM: 目前已经在淘宝、天猫上线,替换了Oracle官方JVM;
  • Graal VM: Oracle 2018年4月公开,口号 Run Programs Faster
  • Anywhere.最可能替代HotSpot的产品

总结

深入理解java虚拟机(一)之JVM概述相关推荐

  1. linux查看java虚拟机内存_深入理解java虚拟机(linux与jvm内存关系)

    本文转载自美团技术团队发表的同名文章 https://tech.meituan.com/linux-jvm-memory.html 一, linux与进程内存模型 要理解jvm最重要的一点是要知道jv ...

  2. java虚拟机和内存的关系_深入理解java虚拟机(linux与jvm内存关系)

    本文转载自美团技术团队发表的同名文章 https://tech.meituan.com/linux-jvm-memory.html 一, linux与进程内存模型 要理解jvm最重要的一点是要知道jv ...

  3. 深入理解java虚拟机之类加载机制

    回顾我们<深入理解java虚拟机之初识JVM>,我们了解了类加载的过程,我们知道了类加载的生命周期有以下七个阶段:加载.验证.准备.解析.初始化.使用.卸载.其中解析和初始化交换顺序可以实 ...

  4. 深入理解JAVA虚拟机学习笔记(一)JVM内存模型

    摘要:   上周末搬家后,家里的宽带一直没弄好,跟电信客服反映了N遍了终于约了个师傅明天早上来迁移宽带,可以结束一个多星期没网的痛苦日子了.这段时间也是各种忙,都一个星期没更新博客了,再不写之前那种状 ...

  5. 深入理解java虚拟机JVM(上)

    深入理解java虚拟机JVM(上) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  6. 《深入理解java虚拟机》(Jvm)一篇概括

    目录 1.Java内存区域与内存溢出异常 2.垃圾收集器与内存分配策略 3.虚拟机性能监控与故障处理工具 4.调优案例分析与实战 5.类文件结构 6.虚拟机类加载机制 7.虚拟机字节码执行引擎 8.类 ...

  7. 深入理解Java虚拟机——JVM垃圾回收机制和垃圾收集器详解

    一:概述 说起垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来.在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,顾名思义,垃圾回收就是释 ...

  8. 深入理解java虚拟机JVM(下)

    深入理解java虚拟机JVM(下) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  9. 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)读书笔记

    前言 我在读 深入理解java虚拟机 这本书,把整体其中的关键点标记了,希望自己对它有个不一样的理解,也希望大家能看看这本写的很好的书 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) pd ...

  10. 深入理解Java虚拟机(第三弹)- JVM 内存分配与回收策略原理,从此告别 JVM 内存分配文盲

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:打卡活动第二期来啦,100% 能获得奖品个人原创+1博客:点击前往,查看更多 虚拟机系列文章 深入理解 Java ...

最新文章

  1. post和get提交中文数据的转码问题
  2. linux文字全选_linux编写脚本全选注释素材
  3. Lua中的模块和使用
  4. ansible---基础
  5. springcloud 创建子父项目_idea搭建springCloud----搭建父子项目(二)
  6. 路由器性能测试工具_小米路由器AX3600与AX1800 MESH 实测
  7. nodejs不同浏览器跳转问题
  8. UVA - 1347
  9. 2020年9月中国旅游行业网络关注度分析报告
  10. word2010中设置页码起始页从任意一页开始
  11. AAAI论文摘要【知识图谱补全】:A Survey on knowledge Graphs:Representation,Acquisition and Application
  12. JAVA求数组最大值最小值总和均值
  13. 如何做顶级“新生代农民工”?这几本书为你打开大门
  14. 机器学习(一) 贝叶斯法则与概念学习
  15. [ACTF新生赛2020]easyre
  16. js个人博客设计大作业
  17. Ceph: ceph基础知识
  18. java优化方法_JAVA程序性能优化的10个简单方法
  19. Metal 系列教程
  20. HTML网页设计期末课程大作业~动漫樱桃小丸子5页表格div+css学生网页设计作业源码...

热门文章

  1. 水果店圈子:水果店怎么开怎么进货,新手开家水果店该如何进货
  2. AX2012服务器配置--Windows Server 2012 如何实现多个用户远程桌面登陆?
  3. 某盾blackBox逆向——纯算
  4. 京东2016版首页改版前端总结
  5. 用于超短脉冲的高效光栅
  6. druid监控数据转存mysql_使用Druid监控SQL执行状态
  7. mysql计算两个日期之间的工作日(可跨年,排除周六日,不排除节日)
  8. 有些型号的华为手机使用rem时,内容会超出屏幕宽度的问题
  9. 万国觉醒国服服务器未响应是什么意思,万国觉醒开服萌新常见问题有哪些
  10. 鸿蒙os bate,鸿蒙os beta版下载