JVM学习

定义:

JAVA Virtual Machine程序的运行环境(java二进制字节码的运行环境)。

好处:

  1. 一次编写,到处运行
  2. 自动内存管理,垃圾回收功能
  3. 数组下标越界,越界检查,抛异常
  4. 多态

比较:

jvm,jdk,jre

常见的jvm:

jvm是一种规范

内存结构:

  1. 程序计数器(寄存器)
  2. 虚拟机栈
  3. 本地方法栈
  4. 方法区

程序计数器(寄存器):

JAVA源代码→jvm指令,二进制字节码→解释器→机器码→CPU

作用:

在一系列指令中,记住下一个jvm指令的执行地址。

寄存器是整个CPU中读写最快的部件。

特点:

1.线程私有;

2.不会存在内存溢出。

虚拟机栈:

定义:

栈-线程运行需要的内存空间。

栈帧-每个方法运行时需要的内存。

  1. 垃圾回收不涉及栈内存。栈内存由线程自动管理(方法调用入栈、执行完出栈),垃圾回收仅针对堆内存中不再被引用的对象。
  2. 栈内存不是分配越大越好。栈过大会减少进程可创建的线程数,且超出物理内存会触发页交换,反而降低性能。
  3. 方法内局部变量是线程安全的。局部变量存储在栈帧中,每个线程有独立栈,不存在多线程共享的情况。

hotspot

栈内存溢出:

线程运行诊断:

本地方法栈

堆:

方法区:

定义

组成

方法区内存溢出

运行时常量池

相关推荐
Turbo正则38 分钟前
群论学习入门 | 群论与李群的基本概念
人工智能·学习·算法·抽象代数
毛丫讲绘本44 分钟前
0-3岁选绘本需要做到越早启蒙越要简单
人工智能·学习·微信·微信公众平台·微信开放平台
小c君tt1 小时前
linux学习笔记1
linux·笔记·学习
吃好睡好便好2 小时前
泰戈尔的诗歌6
学习·生活
双吉堡2 小时前
北京通州有哪些热门且专业的学画画画室?
学习
Go-higher3 小时前
DriverTest 驾考知识卡片学习助手 —— 一款基于 Jetpack Compose 的现代 Android 学习APP
android·学习
星幻元宇VR3 小时前
公共安全主题展厅设备【防洪防汛安全科普系统】
科技·学习·安全
AI科技星3 小时前
32维超复数流形中意识信息场与物质耦合的拓扑动力学
人工智能·学习·算法·数据挖掘·回归·乖乖数学·全域数学
鱼很腾apoc4 小时前
【Linux】第7期 进程间通信 (IPC) 详解:管道 (匿名 / 命名) + System V
linux·服务器·c语言·学习·进程间通信·ipc
科技大视界4 小时前
大学生专业课笔记本用哪款?来酷Air14酷睿版14英寸轻薄笔记本电脑适合学习任务多的人
学习