引言

1.什么是JVM?

定义:Java Virtual Machine -java 程序的运行环境(java 二进制字节码的运行环境)

好处:

  • 一次编写 到处运行

  • 自动内存管理,垃圾回收功能

  • 数组下标越界检查

  • 多态

比较:

2.学习JVM有什么用

  • 面试

  • 理解底层实现的原理

  • 中高级程序员必备的技能

3.常见的JVM

4.学习路线

内存结构

1.程序计数器

  • 定义:Program Counter Register程序计数器(寄存器)

  • 作用

    是记住下一条JVM指令的执行地址

  • 特点

    • 对于线程来说是私有的

    • 唯一不会存在内存溢出的区域

2.虚拟机栈

  • 定义

栈:线程运行时需要的内存空间栈帧:每个方法运行时需要的内存,栈由多个栈帧组成

  • 演示

    public class test {
    ​public static void main(String[] args) {m1();}
    ​public static void m1(){m2(1,2);}public static int m2(int a,int b){int c = a + b;return c;}
    }
  • 栈内存溢出

  • 线程运行诊断

1.虚拟机栈有关的问题

1、垃圾回收是否涉及栈内存? 不需要!栈帧出栈的时候就已经释放掉了

2、栈内存分配越大越好吗? 不是!栈内存太大反而影响到线程数目,采用系统默认的大小即可

3、方法内的局部变量是否线程安全? 如果方法内部局部变量没有逃离方法的作用范围,它是线程安全的 如果是局部变量引用了对象,并逃离方法的作用范围,需要考虑线程安全

2.栈内存溢出

  • 栈帧过多(递归调用)

  • 栈帧过大

3.线程运行诊断

1.CPU占用过多

3.本地方法栈

定义

Java虚拟机调用本地方法(Native Method)时提供的内存空间

JVM虚拟机——初识相关推荐

  1. java虚拟机工作原理图_超“强”的图文详解-JVM虚拟机底层原理与调优实战

    今天我和大家分享一篇文章,文章上半部分为JVM底层原理 下半部分为调优实战 文章有点长,需要点耐心哦! 如果觉得看文章太难理解,就点击下面我投稿B站的jvm视频讲解. 还配有视频讲解:解密BATJ一线 ...

  2. java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...

  3. 深入理解JVM虚拟机(二):垃圾回收机制

    谈起GC,应该是让Java程序员最激动的一项技术,我相信每个Java程序员都有探究GC本质的冲动!JVM垃圾回收机制对于了解对象的创建和对象的回收极为重要,是每个Java程序员必须掌握的技能. 本博客 ...

  4. msm(CentOS 6)及jvm虚拟机性能监控(04)_recv

    为什么80%的码农都做不了架构师?>>>    JVM JVM内存管理--运行时数据区 JVM大体由五个部分组成,分别为JVM Stack.Native Stack.Program ...

  5. jvm虚拟机_一文入门jvm虚拟机

    点击上方「10分钟编程」关注我呦 让我们每天「博学」一点点 一文带你理解JVM 1.jdk.jre.jvm的区别与联系 jdk的全称是Java Development kit(java开发工具包),我 ...

  6. jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气

    对于Java程序员来说,在众多Java知识点当中JVM是很重要的一块,每个Java程序都离不开Java虚拟机,Java程序的运行依靠具体的Java虚拟机实例. 在Java虚拟机规范中,分别用子系统.内 ...

  7. BATJ面试必会|Jvm 虚拟机篇

    转载自  BATJ面试必会|Jvm 虚拟机篇 目录 一.运行时数据区域 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 二.垃圾收集 判断一个对象是否可被回收 引用类型 ...

  8. 深入JVM虚拟机(四) Java GC收集器

    转载自  深入JVM虚拟机(四) Java GC收集器 1 GC收集器 1.1 Serial串行收集器 串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收:第二,它独占式的垃圾回收. 在串行 ...

  9. jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机

    jvm虚拟机内存结构 Java虚拟机(JVM)架构和Java字节码101的初学者速成班 Java应用程序无处不在,它们在我们的手机,平板电脑和计算机上. 在许多编程语言中,这意味着多次编译代码以使其在 ...

最新文章

  1. 前端面试题笔记 2021.8.26
  2. 华为徐文伟:后香农时代,面向数学的十大挑战问题
  3. git push error. ! [rejected] master - master (non-fast-forward)
  4. 写给开发向产品转型的同学的3句话
  5. 进一步解 apt-get 的几个命令
  6. NoSQL Databases - CouchDB
  7. 浏览器窗口控制---使用localStorage
  8. 编写代码的工作在哪找_编写事件代码如何帮助我获得了出色的工作
  9. 2020全球工业互联网大会在沈阳召开,聚焦新业态、新模式,“新基建”促进国内国际双循环等热点
  10. linux第一课历史与未来方向
  11. 会计基础(1)利得和损失
  12. GNSS精密星历读取(matlab)
  13. 27家金融类央企(中投+3政策性银行+5国有银行+中信+光大+4保险集团)(4大资产管理+建银+再保险+保险保障+中诚信托+中央国债+银行金融+科技证券+证券基金)
  14. Xilinx 7系列FPGA DDR3硬件设计规则
  15. Blizzard经典之打造最快的Hash表
  16. 使用markdown编辑器
  17. vscode 安装cnpm出现cnpm : 无法加载文件 C:\Users\代码\AppData\Roaming\npm\cnpm.ps1
  18. 干货 Flops Mutli-adds MACs
  19. 单应性矩阵 matlab,四点求解单应性矩阵
  20. 2022熔化焊接与热切割考试模拟100题及在线模拟考试

热门文章

  1. javaScript搜索框
  2. 详解Python中的文本处理
  3. python中文文本情感分析
  4. 解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid continuation byte
  5. js通用判断指定日期是周几,是否是周六、周日
  6. 树莓派4安装Debian10
  7. 公司用的非标普通自动化用单片机还是plc_自动化专业现在吃香吗?
  8. H3Cmsr830 l2tp二层隧道协议配置详解(host-R版)
  9. 数据挖掘与数据分析的主要区别是什么?
  10. 自定义 rest_framework 响应返回格式