JVM虚拟机——初识
引言
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虚拟机——初识相关推荐
- java虚拟机工作原理图_超“强”的图文详解-JVM虚拟机底层原理与调优实战
今天我和大家分享一篇文章,文章上半部分为JVM底层原理 下半部分为调优实战 文章有点长,需要点耐心哦! 如果觉得看文章太难理解,就点击下面我投稿B站的jvm视频讲解. 还配有视频讲解:解密BATJ一线 ...
- java visualvm远程监控_深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...
- 深入理解JVM虚拟机(二):垃圾回收机制
谈起GC,应该是让Java程序员最激动的一项技术,我相信每个Java程序员都有探究GC本质的冲动!JVM垃圾回收机制对于了解对象的创建和对象的回收极为重要,是每个Java程序员必须掌握的技能. 本博客 ...
- msm(CentOS 6)及jvm虚拟机性能监控(04)_recv
为什么80%的码农都做不了架构师?>>> JVM JVM内存管理--运行时数据区 JVM大体由五个部分组成,分别为JVM Stack.Native Stack.Program ...
- jvm虚拟机_一文入门jvm虚拟机
点击上方「10分钟编程」关注我呦 让我们每天「博学」一点点 一文带你理解JVM 1.jdk.jre.jvm的区别与联系 jdk的全称是Java Development kit(java开发工具包),我 ...
- jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气
对于Java程序员来说,在众多Java知识点当中JVM是很重要的一块,每个Java程序都离不开Java虚拟机,Java程序的运行依靠具体的Java虚拟机实例. 在Java虚拟机规范中,分别用子系统.内 ...
- BATJ面试必会|Jvm 虚拟机篇
转载自 BATJ面试必会|Jvm 虚拟机篇 目录 一.运行时数据区域 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 运行时常量池 直接内存 二.垃圾收集 判断一个对象是否可被回收 引用类型 ...
- 深入JVM虚拟机(四) Java GC收集器
转载自 深入JVM虚拟机(四) Java GC收集器 1 GC收集器 1.1 Serial串行收集器 串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收:第二,它独占式的垃圾回收. 在串行 ...
- jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机
jvm虚拟机内存结构 Java虚拟机(JVM)架构和Java字节码101的初学者速成班 Java应用程序无处不在,它们在我们的手机,平板电脑和计算机上. 在许多编程语言中,这意味着多次编译代码以使其在 ...
最新文章
- 前端面试题笔记 2021.8.26
- 华为徐文伟:后香农时代,面向数学的十大挑战问题
- git push error. ! [rejected] master - master (non-fast-forward)
- 写给开发向产品转型的同学的3句话
- 进一步解 apt-get 的几个命令
- NoSQL Databases - CouchDB
- 浏览器窗口控制---使用localStorage
- 编写代码的工作在哪找_编写事件代码如何帮助我获得了出色的工作
- 2020全球工业互联网大会在沈阳召开,聚焦新业态、新模式,“新基建”促进国内国际双循环等热点
- linux第一课历史与未来方向
- 会计基础(1)利得和损失
- GNSS精密星历读取(matlab)
- 27家金融类央企(中投+3政策性银行+5国有银行+中信+光大+4保险集团)(4大资产管理+建银+再保险+保险保障+中诚信托+中央国债+银行金融+科技证券+证券基金)
- Xilinx 7系列FPGA DDR3硬件设计规则
- Blizzard经典之打造最快的Hash表
- 使用markdown编辑器
- vscode 安装cnpm出现cnpm : 无法加载文件 C:\Users\代码\AppData\Roaming\npm\cnpm.ps1
- 干货 Flops Mutli-adds MACs
- 单应性矩阵 matlab,四点求解单应性矩阵
- 2022熔化焊接与热切割考试模拟100题及在线模拟考试
热门文章
- javaScript搜索框
- 详解Python中的文本处理
- python中文文本情感分析
- 解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid continuation byte
- js通用判断指定日期是周几,是否是周六、周日
- 树莓派4安装Debian10
- 公司用的非标普通自动化用单片机还是plc_自动化专业现在吃香吗?
- H3Cmsr830 l2tp二层隧道协议配置详解(host-R版)
- 数据挖掘与数据分析的主要区别是什么?
- 自定义 rest_framework 响应返回格式