E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Jvm学习
JVM学习
笔记3运行时数据区(虚拟机栈)
虚拟机栈栈管运行,堆管存储即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪儿。背景:由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。Java虛拟机栈是什么?Java虚拟机栈(JavaVirtual
村里一枝花丶
·
2023-06-10 10:19
JVM学习
笔记二
1.JVM内存参数要求熟悉常见的JVM参数,尤其和大小相关的堆内存,按大小设置解释:-Xms最小堆内存(包括新生代和老年代)-Xmx最大堆内存(包括新生代和老年代)通常建议将-Xms与-Xmx设置为大小相等,即不需要保留内存,不需要从小到大增长,这样性能较好-XX:NewSize与-XX:MaxNewSize设置新生代的最小与最大值,但一般不建议设置,由JVM自己控制-Xmn设置新生代大小,相当于
Surpass余sheng军
·
2023-06-09 19:58
jvm
学习
笔记
JVM学习
(十三):面试中绕不开的String
目录一、String的基本特性1.1String类的声明1.2String的存储方式在jdk9中的变更1.3Stirng的不可变性二、String的内存分配2.1字符串常量池是什么2.2底层原理与默认值2.3字符串常量池所在位置三、字符串的拼接操作3.1拼接操作结果存放位置3.2字节码角度剖析拼接操作四、intern的理解4.1intern是什么4.2不同jdk版本的intern的逻辑五、G1收集
玉面大蛟龙
·
2023-06-07 00:51
java
java
jvm
后端
JVM学习
笔记(完结)
类加载与字节码技术1、类文件结构通过javac类名.java编译java文件后,会生成一个.class的文件!以下是字节码文件:0000000cafebabe0000003400230a00060015090000020001600170800180a0019001a07001b070000040001c0100063c696e69743e0100032829000006056010004436f
杭州下小雨~
·
2023-06-06 22:55
JVM
jvm
学习
笔记
JVM学习
(六):类加载子系统
目录〇、前言一、类加载子系统1.1内存结构概述1.2类加载器及类加载过程概述1.2.1类加载器1.2.2类加载过程1.3类加载过程一:Loading1.3.1加载过程1.3.2加载类的方式1.4类加载过程二:Linking1.4.1验证(Verify)1.4.2准备(Prepare)1.4.3解析(Resolve)1.5类加载过程三:Initialization二、类加载器2.1类加载器分类2.2
玉面大蛟龙
·
2023-04-19 04:32
java
java
jvm
JVM基础学习一
2,有什么,
jvm学习
有以下几个方面:.java文件--->Java编译器---->.class文件(Java字节码文件,这是jvm规范)---->类加载过程(
Idiot_2018
·
2023-04-18 21:48
java
JVM学习
笔记之了解对象存活判断和4种引用【三】
垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”一、对象存活判断1.1引用计数算法(ReferenceCounting)工作原理给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器为0的对象是不可能再被使用的。分析Java虚拟机是否采用该算法代码/***JVMargs:-XX:+PrintGC
JiaJianHuang
·
2023-04-18 15:23
JVM学习
——JVM基础常识
文章目录为什么使用JVMJDK、JRE与JVM的关系OracleJDK和OpenJDK的关系JVM和Hotspot的关系JVM的两种运行模式及区别JVM架构图JVM执行流程图为什么使用JVM“一次编译、到处运行”,区别于C语言的在不同操作系统下需要编译成不同的机器码JDK、JRE与JVM的关系OracleJDK和OpenJDK的关系一句话概括,“Wehavealotincommon”JVM和Hot
code_way
·
2023-04-18 04:52
JVM学习
java
jvm
JVM学习
笔记6运行时数据区(方法区)
方法区栈、堆、方法区的交互关系方法区在哪里?《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一-部分,但.一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotspotJVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。所以,方法区看作是一块独立于Java堆的内存空间。方法区的基本理解● 方法区(MethodArea)与Java堆一样
村里一枝花丶
·
2023-04-17 21:54
【
JVM学习
】Class文件解析
简介最近为了加深对于JAVA的理解,在复习JVM,这里面的内容大部分都是比较确定的、文档性质的内容,目前并没有特别的总结。但是看到类文件结构,手痒,想写了个解析文件的解析器,那就简单记录下吧。JAVA类文件结构详细内容不记了,太多了,有兴趣的同学看虚拟机相关书籍了解,这里只简单介绍下。1类文件使用类似结构体的伪结构,基本数据类型有两种:无符号数和表。无符号数有1、2、4、8四种长度;表可以由无符号
delta_hell
·
2023-04-17 12:41
jvm
学习
java
深入理解
JVM学习
笔记-线程安全与锁优化
线程安全如果一个对象可以安全的被多个线程同时使用,那他就是线程安全的。当多线程访问一个对象时,如果不同考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者调用方进行任何其他操作,调用对象的行为都可以获取正确的结果,那对象就是线程安全的。线程安全是基于多个线程之间存在共享数据访问这个前提,因为如果一段代码根本不会与其他线程共享数据,那么从线程安全来看,程序是串行还是多线程执行都是
htkeepmoving
·
2023-04-16 07:41
《
JVM学习
笔记》第一章 JVM与Java体系结构
JVM与Java体系结构字节码java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的JVM上运行。Java虚拟机与Java语言并没有必然的联系,它只与特定的二进制文件格式—class文件格式所关联,class文件中包含了Java虚拟机指令集(或者称为
Java-You
·
2023-04-14 12:29
JVM笔记
jvm
java
学习
【JVM 学习笔记 05】:JVM性能调优工具的使用和优化案例
【
JVM学习
笔记05】:JVM性能调优工具的使用1、使用jstat(命令行工具)查看线上系统的JVM运行状况1.1常用命令1.2使用技巧1.2.1随着系统运行,每秒钟会在年轻代的Eden区分配多少对象。
Camille丶
·
2023-04-12 14:47
学习笔记
#
学习笔记之JVM
jvm
JVM学习
GC垃圾回收机制 (堆内存结构、GC分类、四大垃圾回收算法)
作者简介:努力的clz,一个努力编程的菜鸟文章专栏:《
JVM学习
笔记》,本专栏会专门记录博主在学习JVM中学习的知识点,以及遇到的问题。
努力的clz
·
2023-04-12 13:33
#
JVM
学习笔记
java
jvm
图搜索算法
迭代加深
JVM学习
系列学习五
我们接着上一篇文章讲解:4.2:查看内存中对象数量及大小查看所有对象,包括活跃及非活跃的。使用命令:Jmap-histo|more查看活跃对象:Jmap-histo:live|more对象说明:B:byteC:charD:doubleF:floatI:intJ:longz:Boolean[]:数组如[I]:表示的是int数组[L+类名:其他对象4.3:将内存使用情况dump到文件中在有些时候,我们
凯哥Java
·
2023-04-11 23:30
JVM学习
总结(三):深入探究JVM中的对象及引用
前言正文一、对象的创建过程1、类加载类加载就是把class加载到JVM的运行时数据区的过程(类加载后续会详细讲)。2、检查加载首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用(符号引用:符号引用以一组符号来描述所引用的目标),并且检查类是否已经被加载、解析和初始化过。3、分配内存接下来虚拟机将为新生对象分配内存。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。3.
JAVA6b
·
2023-04-10 08:33
#
JVM
jvm
java
jvm学习
笔记之问题
问题场景:如果有10个web应用程序都是用spring进行管理,可以把spring放在comon或者shared目录下让这些程序共享。Spring类要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户的程序显然是放在/WebApp/WEB-INF目录中的,那么被CommonClassloader或SharedClassloader加载的spring如何访问不在其加载范围内的用户程序?答案:
__夏天__
·
2023-04-10 06:31
JVM学习
笔记01
目录一、JVM内存与垃圾回收篇概述课件:二、如何看待Java上层技术与JVM1、前言三、为什么要学习JVM四、面向人群和课程特点五、官方规范下载与参考书目六、跨平台的语言Java和跨语言的平台JVM一、JVM内存与垃圾回收篇概述JVM系列之1:内存与垃圾回收篇JVM系列之2:字节码与类的加载篇JVM系列之3:性能监控与调优篇JVM系列之4:大厂面试题课件:01_JVM与Java体系结构02_类加载
突然好想你之路在脚下
·
2023-04-09 13:50
Java面试题
jvm
java
【
JVM学习
笔记03】类文件结构
【该章节主要总结了比较重要的部分,没有进行全面总结,后续将结合实际情况再继续补充完善】四、类文件结构我们平时说的Java字节码,指的是用Java语言编译成的字节码。准确的说任何能在JVM平台上执行的字节码格式都是一样的。所以应该统称为:JVM字节码。不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的JVM上运行。Java虚拟机与Java语言并没有必然的联系,它只与特定的二进制文件格
我姓弓长那个张
·
2023-04-08 13:04
JVM学习笔记
java
后端
jvm
Jvm学习
笔记(一)内存模型
JVM内存模型java不需要用户手动去管理内存的释放,这大大解放了程序员的心智负担,jvm运行的核心绕不开他的内存模型,本章着重于jvm的内存模型分析。程序计数器程序计数器是一块较小的内存区域,主要作用是确定下一条需要执行的字节指令(java执行的是字节指令),它是程序控制流的指示器。java的线程是基于操作系统的时分多路,所以对于一个处理器,在确定的时刻,只有一个线程处于执行状态,为了切换线程以
小小怪下士 XIA
·
2023-04-07 20:28
jvm
学习
java
Jvm学习
笔记(二)GC
GC垃圾收集(GC)起源于Lisp,远比Java的历史更久,它主要思考了三件事情:哪些内存需要回收?什么时候回收?如何回收?本章就根据这三个点进行分析。哪些内存需要回收?在java堆中存放着无数的对象,有些对象任然在使用,有些对象已经死去(不被任何途径所使用),我们需要回收的便是这些死去的变量。引用计数有一种判断对象是否存活的办法便是引用计数法,它在对象内存中开辟出一块区域,当此对象有其他对象引用
小小怪下士 XIA
·
2023-04-07 20:28
jvm
学习
java
JVM学习
笔记
JVM学习
笔记1.什么是JVM2.JDKJREJVM等的区别3.学习路线4.//TODO1.什么是JVMJVM代表Java虚拟机,它是一种在计算机上运行Java字节码的虚拟机。
boy快快长大
·
2023-04-07 19:12
Java虚拟机(JVM)
jvm
学习
java
JVM学习
----堆内存(新生代与老年代)
文章目录JVM运行时内存(堆内存)新生代老年代FullGC触发机制内存分配策略TLAB相关JVM参数空间担保栈上分配与逃逸分析逃逸分析JVM运行时内存(堆内存)新生代新生代:是用来存放新生的对象。分为Eden区、SurvivorFrom、SurvivorTo三个区。MinorGC(复制算法)进行垃圾回收。JVM每次只会使用Eden和其中的一块Survivor区域来为对象服务,新生代实际可用的内存空
小火车Thomasc
·
2023-04-06 17:08
JVM学习笔记
java
开发语言
后端
jvm
JVM学习
:JVM对象分代晋升机制
参考《深入理解java虚拟机》一书,以下均为在HotSpot虚拟机,Serial与SerialOld垃圾收集器中的情况。1.对象优先分配在Eden区、长期存活的对象将进入老年代在创建对象时,正常情况下对象会分配在堆中的Eden区(新生代)。在持续分配新对象至Eden区直至Eden区内存不足以分配新的对象时,即会触发MinorGC回收Eden区,正常情况下Eden区的对象大多朝生夕死(生命周期很短)
哇库哇库wakuwaku
·
2023-04-06 17:21
jvm
java
开发语言
JVM学习
上篇内存与垃圾回收之三运行时数据区与程序计数器
JVM学习
上篇内存与垃圾回收之三运行时数据区与程序计数器运行时数据区与程序计数器概述线程JVM系统线程程序计数器(PC寄存器)参考链接运行时数据区与程序计数器概述内存内存是非常重要的系统资源,是硬盘和CPU
Charles Yan
·
2023-04-06 13:32
JVM
Java
jvm
JVM学习
笔记
class文件结构class十六进制码的顺序就是按下面的顺序排列的,解析的时候也是按照这个顺序解析魔数次要版本主要版本常量池常量数量constant_pool_count常量池access_flags类的修饰符,2个字节this_class指向常量池中表示本类的class_info类型的常量项的索引super_class指向常量池中的表示父类class_info类型的常量项的索引interface
shuzhou12
·
2023-04-05 12:41
java基础
jvm
20道阿里面试必问JVM面试专题(文末附送答案及
JVM学习
文档)
前言很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高。通常情况下校招生面试的成功率低于1%,而社招的面试成功率也低于5%,所以对于候选人一定要知道设立面试的初衷以及每个环节的意义,有的放矢……而JVM是Java程序运行基础,面试时一定会遇到JVM相关的题。所以我们准备了部分的面试真题,作为参考,看看你距离阿里还差多远。1.内存模型以及分区,需要详细到每个区放
Java领域指导者
·
2023-04-02 16:23
Java
微服务
JVM
JVM
微服务
Java架构
大数据
面试
JVM学习
.05 JVM常见的排障和调优
1、前言前面介绍了JVM相关的内存和线程相关的技术。对于JVM也算有了一个比较系统、完整的理论基础。理论总是作为指导实践的工具,但是从理论到实践,总会遇到一些虚拟机相关问题,故障。所以还需要学习一些常用的JVM排障工具,和一些常见的调优手段。2、故障排查常用工具2.1、命令行工具2.1.1、jpsJVMProcessStatusTool(jps)虚拟机进程状态工具。顾名思义主要用来查看虚拟机进程,
有一只柴犬
·
2023-04-02 14:07
JVM
java
jvm
JVM学习
之路一(浅析Java虚拟机结构与机制)
一、JVM简述JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。本文是本人自己学习JVM的笔记,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。在研究JVM的过程中会发现,其实JVM本身就是一个计算机体系结构,很多原理和我们平时的硬件、微机原理、操作系统都有十
zh_winer
·
2023-04-02 09:47
JVM
JVM学习
笔记 05 - 垃圾回收器
CMS(旧)CMS的全称是MostlyConcurrentMarkandSweepGarbageCollector(主要并发标记清除垃圾收集器),它在年轻代使用复制算法,而对老年代使用标记-清除算法。你可以看到,在老年代阶段,比起Mark-Sweep,它多了一个并发字样。CMS的设计目标,是避免在老年代GC时出现长时间的卡顿(但它并不是一个老年代回收器)。如果你不希望有长时间的停顿,同时你的CPU
飞鸟还巢
·
2023-04-02 08:45
Java技术栈
jvm
学习
java
JVM学习
笔记 03 - 字节码
字节码一句话概括JVM与操作系统之间的关系:JVM上承开发语言,下接操作系统,它的中间接口就是字节码。JVM:等同于操作系统;Java字节码:等同于汇编语言。Java字节码一般都比较容易读懂,这从侧面上证明Java语言的抽象程度比较高。你可以把JVM认为是一个翻译器,会持续不断的翻译执行Java字节码,然后调用真正的操作系统函数,这些操作系统函数是与平台息息相关的。使用JDK的工具javac进行编
飞鸟还巢
·
2023-04-02 08:15
学习
JVM学习
笔记 04 - 内存管理和垃圾回收
内存典型OOM场景如何管理内存区域划分元空间GCRoots引用=======================垃圾回收思想基本方法标记清除复制整理分代年轻代老年代卡片标记STW初始标记,这部分的停顿时间较短;MinorGC(可选),在预处理阶段对年轻代的回收,停顿由年轻代决定;重新标记,由于preclaen阶段的介入,这部分停顿也较短;Serial-Old收集老年代的停顿,主要发生在预留空间不足的情
飞鸟还巢
·
2023-04-02 08:15
Java技术栈
jvm
学习
java
JVM学习
总结笔记2
内存模型,类加载机制,GC是重点方面.性能调优部分更偏向应用,重点突出实践能力.编译器优化和执行模式部分偏向于理论基础,重点掌握知识点.需了解内存模型各部分作用,保存哪些数据.类加载双亲委派加载机制,常用加载器分别加载哪种类型的类.GC分代回收的思想和依据以及不同垃圾回收算法的回收思路和适合场景.性能调优常有JVM优化参数作用,参数调优的依据,常用的JVM分析工具能分析哪些问题以及使用方法.执行模
cy629584407
·
2023-04-02 08:14
JVM
小白学java
学习
JVM学习
笔记 05 - JMM简述
JVM试图定义一种统一的内存模型,能将各种底层硬件,以及操作系统的内存访问差异进行封装,使Java程序在不同硬件及操作系统上都能达到相同的并发效果。JMM的结构JMM分为主存储器(MainMemory)和工作存储器(WorkingMemory)两种。主存储器是实例位置所在的区域,所有的实例都存在于主存储器内。比如,实例所拥有的字段即位于主存储器内,主存储器是所有的线程所共享的。工作存储器是线程所拥
飞鸟还巢
·
2023-04-02 08:25
Java技术栈
jvm
学习
java
JVM学习
笔记系列--垃圾回收算法
对象存活判断算法垃圾收集器在进行对象回收之前,必须判断哪些对象是可回收的,这就引出了对象存活判定算法。引用计数法主流的虚拟机都没有选用引用计数器算法来管理内存,最主要的原因就是它很难解决对象之间相互循环引用的问题。可达性分析算法算法的基本思路是通过一系列的称为“GCRoots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(ReferenceChain),当一个对象到GCRo
拔剑抉云
·
2023-03-29 11:01
JVM
学习笔记
jvm
JVM学习
笔记(四)---垃圾回收算法
垃圾收集算法:标记-清除算法:最基础的收集算法是标记-清除算法,如同它的名字一样,分为标记和清除两个阶段。第一步标记出所要回收的对象,在标记完成后统一回收所有被标记的对象。如何标记已经在上面说过了,之所以说它是最基本的垃圾收集算法,原因在于其他的算法也是基于这种思路并对其不足做以改进得到的。主要问题有两个,第一个是效率问题,标记和清除的效率都不高。第二个是空间分配问题,标记清除后会产生大量的不连续
雨落轻舟
·
2023-03-29 11:28
JVM学习笔记
JVM
JVM学习
笔记十四--垃圾回收器
文章目录一、GC分类与性能指标二、不同的垃圾回收器概述三、Serial回收器:串行回收四、ParNew回收器:并行回收五、Paralle回收器:吞吐量优先六、CMS回收器:低延迟七、G1回收器:区域化分代式八、垃圾回收器总结九、GC日志分析十、垃圾回收器的新发展一、GC分类与性能指标二、不同的垃圾回收器概述三、Serial回收器:串行回收四、ParNew回收器:并行回收五、Paralle回收器:吞
Continue。
·
2023-03-29 11:21
JVM
jvm
java
垃圾回收
java虚拟机
面试
JVM学习
笔记七--堆
文章目录一、堆的核心概述二、设置堆内存大小与OOM三、年轻代与老年代四、图解对象分配过程五、MinorGC、MajorGC、FullGC六、堆空间分代思想七、内存分配策略八、为对象分配内存:TLAB九、小结堆空间的参数设置十、堆是分配对象的唯一选择吗?一、堆的核心概述二、设置堆内存大小与OOM开发中建议将初始堆内存和最大的堆内存设置为相同的值查看设置的参数:方式一:jps/jstat-gc进程id
Continue。
·
2023-03-29 11:19
JVM
jvm
java
堆栈
面试
JVM学习
笔记十三--垃圾回收相关概念
文章目录一、System.gc()的理解二、内存溢出与内存泄漏三、StopTheWorld四、垃圾回收的并行与并发五、安全点与安全区域六、再谈引用(强引用、软引用、弱引用、虚引用、终结器引用)一、System.gc()的理解二、内存溢出与内存泄漏三、StopTheWorld四、垃圾回收的并行与并发五、安全点与安全区域六、再谈引用(强引用、软引用、弱引用、虚引用、终结器引用)测试代码:publicc
Continue。
·
2023-03-29 11:19
JVM
java
jvm
内存泄漏
内存管理
面试
JVM学习
笔记--内存模型、垃圾回收、常见面试题、JVM调优
目录一、JVM内存模型JVM运行时数据区Java对象的创建过程Java对象的内存布局Java对象怎么定位Java对象怎么分配二、JVM垃圾回收如何定位垃圾?如何清理垃圾?JVM堆内存分带模型JVM常见的垃圾回收器三色标记算法三、面试问题CPU突然100%问题排查内存充裕,为什么会发生FullGC一个Object占多少个字节四、JVM调优JVM参数分类arthas如何解决OOM问题一、JVM内存模型
芹泽
·
2023-03-29 11:04
java基础
jvm
java
jvm
JVM学习
笔记(十 - 垃圾回收器)
垃圾回收器GC性能指标目前还没有哪个垃圾回收器可以完美适配任何的场景,因此针对不同的场景条件使用适合的垃圾回收器是十分重要的。评判一个垃圾回收器的性能是否优良主要有以下几个指标:吞吐量用户线程执行的时间占总运行时间的比例,越大越好。吞吐量=用户线程执行时间/(用户线程执行时间+垃圾回收时间)垃圾回收开销吞吐量的补数,也就是垃圾回收时间占总运行时间的比例,越小越好。暂停时间进行垃圾回收时,程序停止执
RudyYip
·
2023-03-29 11:14
JVM学习笔记
java
jvm
其他
JVM学习
笔记-垃圾回收器
这篇文章,我会介绍两个回收器ParNew和CMSParNew回收器ParNew这个回收期主要用于MinorGC回收它回收的速度很快,是一个多线程回收器,比Serial回收器(单线程)效率要快得多。使用-XX:+UseParNewGC可以开启ParNew垃圾处理器使用-XX:ParallelGCThreads可以调节垃圾回收器的线程数量CMS回收器CMS主要用于老年代回收器,它主要的回收算法是标记清
_CoderZxk
·
2023-03-29 11:44
JVM
算法
jvm
java
多线程
jdk
JVM学习
笔记05-对象的实例化内存布局与访问定位
目录1、对象的实例化2、对象的内存布局3、对象访问定位PDF版笔记:JVM的学习笔记PDF版-互联网文档类资源-CSDN下载1、对象的实例化创建对象的方式:new(单例模式、工厂模式也是其变形方式)反射:Class的newInstace():在JDK9中不建议使用,只能调用空参public的构造器反射:Constructor的newInstace(Xxx):可以调用任意参数的构造器(没有权限要求)
逆bug而行的小尘
·
2023-03-29 11:40
java
开发语言
后端
jvm
JVM学习
笔记06-执行引擎
目录1、概述2、Java代码编译和执行的过程3、解释器(Interoreter)4、JIT编译器PDF版笔记:JVM的学习笔记PDF版-互联网文档类资源-CSDN下载1、概述特点:执行引擎时JVM的核心部件之一“虚拟机”是相对“物理机”的概念,他们都有代码执行的能力。但是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎是由软件自行实现的,因此可以不受物理条件制
逆bug而行的小尘
·
2023-03-29 11:40
学习
java
开发语言
jvm
JVM学习
笔记01-JVM与其结构结构
导语:小尘需要准备实习生面试了,先准备JVM的复习。把自己的笔记发上来供大家使用。如有问题,请多指教。该笔记主要参考尚硅谷宋红康老师的JVM课程,有需要的可以区B站观看视频。这里附上其B站的视频链接:尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili目录1、JVM的架构模型2、JVM的生命周期2.1、JVM的启动2.2、JVM的执行2.3、JVM的退出3、JVM的发展历程
逆bug而行的小尘
·
2023-03-29 11:10
学习
java
面试
jvm
JVM学习
笔记03-运行时数据区(上)
目录1、概述2、线程3、PC寄存器(程序计数器)4、虚拟机栈4.1、概述4.2、栈的存储单位4.2.1、局部变量表(localvariables)4.2.2、操作数栈(表达式栈、OperandStack)4.2.3、动态链接(指向运行时常量池的方法引用)4.2.4、方法返回地址(方法正常退出或者异常退出的定义)4.2.5、附加信息5、本地方法栈5.1、概述5.2、本地方法库5.3、本地方法栈6、面
逆bug而行的小尘
·
2023-03-29 11:10
学习
java
经验分享
jvm
JVM学习
笔记04-运行时数据区(下)
目录1、堆空间1.1、概述1.2、堆内存再细分1.3、堆的大小设置1.4、新生区和老年区1.5、对象分配过程1.6、各种GC1.7、TLAB(快速分配策略)1.8、代码优化1.9、StringTable1.10、常用调优工具1.11、面试问题2、元空间(方法区)2.1、堆、栈、元空间的交互关系2.2、方法区的理解2.3、方法区空间大小设置2.4、方法区内部结构2.5、方法区的演化细节PDF版笔记:
逆bug而行的小尘
·
2023-03-29 11:10
学习
java
开发语言
jvm
JVM学习
笔记-垃圾回收之安全点与安全区域
安全点程序只有在特定位置才能进行GC,这些位置被称为安全点。安全点的选定基本上是以程序“是否具有让程序长时间执行的特征”为标准进行选定的(方法调用、循环跳转、异常跳转等)安全点太少可能导致GC等待时间太长,太频繁会影响系统性能。如何判断发生GC时所有线程是否都在安全点上-主动式中断:设置一个中断标志,当线程走到此位置时,判断标志是否为真,如果为真则将自己挂起等待GC-抢先式中断:当GC发生时中断全
专注与游离
·
2023-03-29 10:55
JVM
java
jvm
垃圾回收
JVM学习
笔记2--垃圾回收
1.如何判断对象可以回收1.1引用计数法给对象添加引用计数器,只要某个对象被某个变量所引用,就给他的引用计数+1.当引用计数为0时,就认为没有变量引用它了,即可以垃圾回收。缺点:如果两个对象相互引用,引用计数均为1,则永远无法被回收。1.2可达分析首先要确定根对象,即能确定不能被当成垃圾回收的对象。对堆中的元素进行扫描,看其是否是根对象直接或间接引用的,如果是则不能被回收。算法思想:通过一系列成为
Weikii0220
·
2023-03-29 10:27
JVM学习
java
JVM学习
笔记3--垃圾回收
一、对象从生存到死亡的步骤1、是否有GCRoots相连接的引用链2、是否有执行finalize()方法两者有一个就不会被回收二、垃圾回收算法1、标记-清除算法2、复制算法Fden:Survivor:Survivor=8:1:1将8Fden和1Survivor存活的对象存进1Survivor中3、标记-整理算法存活的对象向一端移动,清除端边界以外的内存4、分代收集算法新生代:复制算法老年代:标记-清
_RyomaXu
·
2023-03-29 10:50
JVM
jvm
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他