JVM笔记
文章平均质量分 69
吨吨是只猫
这个作者很懒,什么都没留下…
展开
-
JVM--方法区学习笔记
方法区方法区在逻辑上是堆的一部分,但在具体实现上不强制方法区的位置,不同的虚拟机厂 商可以有不同的实现如 JDK1.8 之前使用永久代实现,1.8 后使用元空间实现方法区在 JVM 启动时创建它是所有线程所共享的方法区用于存储类的结构:运行时常量池(含字符串常量)、静态变量、类的信息、常量。类信息: 魔数,版本号,常量池,类(字段和方法),父类和接口数组,字段,方法等 信息方法区是 JVM 中的一个规范、永久带和元空间是方法区的两个不同实现JVM 内存模型不同版本间的..原创 2022-03-25 16:59:07 · 1052 阅读 · 0 评论 -
一篇了解JVM——堆Heap学习笔记
一、核心概述通过new关键字创建的对象都会使用堆内存 它是线程共享的,堆中对象都需要考虑线程安全问题 堆,是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域 《Java虚拟机规范》中对java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。 从实际使用的角度看,“几乎”所有的对象的实例都在这里分配内存 (‘几乎’是因为可能存储在栈上) 数组或对象永远不会存储在栈上,因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置 在方法结束...原创 2022-03-25 16:01:27 · 695 阅读 · 0 评论 -
虚拟机栈中常见混淆问题解析
1、垃圾回收是否涉及栈内存不涉及,垃圾回收只会回收堆内存中的内存占用,栈内存不需要栈帧运行完会自动出栈2、栈内存分配越大越好吗不是,栈内存设置的越大,线程数就越小 (物理内存是一定的)3、方法内的局部变量是否线程安全如果方法局部变量没有逃离方法的作用访问,他是线程安全的如果是局部变量引用了 对象,并逃离方法的作用方法,需要考虑线程安全...原创 2022-03-23 16:59:43 · 601 阅读 · 0 评论 -
虚拟机栈笔记
一、虚拟机栈概述1、背景由于跨平台的设计,java指令都是根据栈来设计的。不同平台cpu架构不同,所以不能设计基于寄存器的。优点是跨平台,指令集小,编译容易实现 缺点是性能下降,实现同样的功能需要更多的指令2、内存中的堆与栈栈运行时的单位 解决程序运行的问题,即程序如何执行,或者说如何处理数据。 存放基本数据类型的局部变量,以及引用数据类型的对象的引用堆是存储单位 解决数据存储的问题,即数据怎么放,放在哪 对象主要放在堆空间的,是运行时数据区...原创 2022-03-23 14:47:35 · 1305 阅读 · 0 评论 -
2、什么是程序计数器Program Counter Register
一、概念JVM中的程序计数寄存器(Program Counter Register),Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对屋里PC寄存器的一种抽象模拟二、作用PC寄存器是用来存储指向下一条指令的地址,也即将将要执行的指令代码。由执行引擎读取下一条指令。三、特点 它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域 在jvm规范中,每个线程都有它自..原创 2022-03-22 20:14:52 · 730 阅读 · 0 评论 -
1、什么是JVM?
定义:Java Virtual Machine - java 程序运行的环境(java二进制字节码 的运行环境)好处:一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界 越界检查 多态比较:jvm jre jdk原创 2022-03-22 17:51:07 · 493 阅读 · 0 评论