jvm学习笔记

image-20210926183813019

image-20210926183720226

image-20210926185207754

image-20210926185747041

image-20210926200933542

image-20210926201244600

image-20210926202426292

image-20210926203723113

image-20210926204806862

image-20210926205456502

JVM的生命周期

image-20210926210351420

image-20210926210441595

类的加载过程

image-20210926235748395

image-20210926235519141

image-20210926235923114

image-20210930162559321

image-20210927000043305

image-20210927000111007

image-20210926235604852

image-20210926235207155

类加载器的分类

image-20210927005342597

image-20210927005533535

image-20210927010213600

image-20210927010230418

image-20210927010333445

image-20210927010425729

ClassLoader的常用方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ZDCtUv6-1633094137572)(…/…/…/Library/Application%20Support/typora-user-images/image-20210927010641624.png)])

image-20210927010745610

双亲委派机制

image-20210927012630472

沙箱安全机制:保护java核心源代码

image-20210927013123340

image-20210927013533292

image-20210927013628851

类加载子系统的其他补充

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4bDDqO35-1633094137574)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210927014018701.png)]

image-20210927014206547

image-20210927014537924

运行时数据区概述及线程

image-20210927014852313

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vmgPxQl0-1633094137575)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210927020106570.png)]

image-20210927015922650

image-20210927025037975

image-20210927025342209

image-20210927025532738

程序计数器(PC寄存器)

image-20210927025913830

image-20210927030146857

image-20210927030115272

image-20210927030252204

image-20210927030938938

image-20210927031100120

image-20210927031207358

虚拟机栈

image-20210927032247882

image-20210927033039212

image-20210927033115756

image-20210927033345778

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2gHIWAWu-1633094137580)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210927033510914.png)]

image-20210927034056833

image-20210927034908689

image-20210927035022869

image-20210927040041777

栈的内部结构

image-20210927040743231

局部变量表

image-20210927041352591

image-20210927041956449

image-20210927131224347

image-20210927131913240

image-20210927132608670

变量的分类:

  1. 按数据类型分:
    • 基本数据类型
    • 引用数据类型
  2. 按在类中声明的位置分
    • 成员变量 成员变量在使用前都会被默认初始化赋值
      • 类变量:linking的prepare阶段给类变量默认赋值,initial阶段给类变量显式赋值
      • 实例变量:在对象创建会在堆空间中分配实例变量空间,并进行默认赋值
    • 局部变量:在使用前必须进行显式赋值 否则编译不通过

image-20210927142539375

操作数栈

image-20210927150916500

image-20210927152506258

image-20210927152618319

动态链接

image-20210927162255052

image-20210927161821854

方法调用

image-20210927162454702

image-20210927162625004

image-20210927165602476

image-20210927165912180

静态方法、私有方法、final方法、实例构造器、父类方法都是非虚方法

image-20210927171156313

image-20210927171844823

image-20210927171722897

image-20210927172607559

image-20210927172735570

image-20210927173405098

方法返回地址

image-20210927173704790

image-20210927174341178

image-20210927175629032

image-20210927175734449

一些附加信息

image-20210927175906590

虚拟机栈的面试题

image-20210927180037900

本地方法接口和本地方法库

image-20210927182025946

image-20210927182204038

image-20210927182324173

image-20210927182410233

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eEiFxepJ-1633094137589)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210927182427107.png)]

image-20210927182554614

image-20210927183446327

本地方法栈

image-20210927183712773

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUIbVSCk-1633094137590)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210927184235305.png)]

image-20210927225646609

image-20210927230909586

堆的细分

image-20210927232853885

设置堆内存大小与OOM

image-20210928010618876

年轻代与老年代

image-20210928011541927

image-20210928011643561

image-20210928011925143

image-20210928012229256

对象分配的一般过程

image-20210928014515437

image-20210928015634588

image-20210928015735645

image-20210928015802211

image-20210928015856907

image-20210928015941177

对象分配的特殊情况

image-20210928020637795

image-20210928020957558

MinorGC、MajorGC、FullGC

image-20210928021346645

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-91Ne5f01-1633094137596)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210928022017739.png)]

image-20210928022217103

image-20210928022506934

堆空间的分代思想

image-20210928023155656

image-20210928023318534

内存分配策略(对象晋升(promotion)规则)

image-20210928024729901

TLAB

image-20210928025539708

image-20210928025715120

image-20210928025917986

image-20210928030045162

堆空间的常用参数设置

image-20210928032037946

image-20210928032008371

堆是分配对象存储的唯一选择吗

image-20210928032245610

image-20210928035435213

image-20210928040016052

image-20210928040045260

image-20210928040134102

image-20210928040234780

image-20210928041044093

image-20210928041058175

image-20210928041134675

image-20210928041618280

堆小结

image-20210928041720102

方法区(from jdk8:元空间)

image-20210928155548954

1.栈、堆、方法区(元空间)的关系

image-20210928153414345

image-20210928160411278

方法区的基本理解

image-20210928161617897

image-20210928173504644

image-20210928174019247

image-20210928174107649

方法区是jvm规范中的概念。永久代和元数据是在hotspot中方法区的落地实现

image-20210928174850989

image-20210928180306234

image-20210928180811771

如何解决这些OOM(后面会细讲)

image-20210928182735595

方法区的内部结构

image-20210928183421532

image-20210928183451475

image-20210928185129679

image-20210928185139153

image-20210928185234211

image-20210928191056343

常量池有什么用?

image-20210928191211669

image-20210928191852763

image-20210928191913049

image-20210928192221708

image-20210928195617680

image-20210928195019255

image-20210928195050193

image-20210928195105779

image-20210928195131706

image-20210928195147067

image-20210928195201506

image-20210928195217070

image-20210928195256166

image-20210928195346255

image-20210928195402625

image-20210928195419733

image-20210928195558817

image-20210928195635427

image-20210928195647002

image-20210928195727943

image-20210928195746265

方法区的演进

image-20210928214903905

image-20210928215456436

image-20210928215521975

image-20210928215556824

image-20210928220119316

image-20210928221334572

方法区的垃圾回收

image-20210928233905101

image-20210928234229116

s

image-20210929002152387

image-20210929002312395

image-20210929002342004

对象的实例化、内存布局、访问定位

image-20210929005206223

对象的实例化

image-20210929005238216

image-20210929005718601

image-20210929012050735

对象的内存布局

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W6qF5vbw-1633094137614)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929013418680.png)]

对象的访问定位

image-20210929013459961

image-20210929014114897

直接内存

image-20210929015100348

image-20210929015441847

image-20210929015511104

image-20210929015925388

image-20210929020232246

执行引擎

执行引擎概述

image-20210929021332620

image-20210929022553064

image-20210929022632242

java代码编译和执行的过程

image-20210929024130758

image-20210929024233641

image-20210929024200799

image-20210929024111636

image-20210929024514072

image-20210929024631649

解释器

image-20210929145124957

image-20210929161459073

JIT即时编译器

image-20210929162505129

image-20210929162136547

image-20210929162207139

image-20210929162712485

image-20210929172533042

image-20210929172625113

image-20210929173129194

image-20210929173241913

image-20210929173255726

image-20210929173521647

image-20210929173650454

image-20210929173837623

image-20210929173916306

image-20210929174045384

String

image-20210929180415490

image-20210929181321947

image-20210929181527172

image-20210929181921230

image-20210929183400484

image-20210929183418982

字符串的拼接操作

image-20210929183556701

image-20210929185519563

image-20210929185732544

image-20210929185743808

image-20210929185901824

image-20210929185943774

image-20210929190217918

image-20210929190448974

image-20210929190503990

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMbeiHFI-1633094137624)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929190552547.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BqASxcyB-1633094137624)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929190723343.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5PNtWiee-1633094137624)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929190902640.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aOGtkFEy-1633094137625)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929190914876.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3C7gLj5O-1633094137625)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929190940395.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9yIIL3MY-1633094137625)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929191153592.png)]

intern()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfnzRNet-1633094137625)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929193414640.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKmnw2GH-1633094137625)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929193916446.png)]

题目:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkgKeBWq-1633094137626)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929194500394.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bQ5r9ijA-1633094137626)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929194526466.png)]

难题:

image-20210929194624613

image-20210929221748373

image-20210929221522840

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DlQRMq1u-1633094137627)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929221953608.png)]

image-20210929222409848

image-20210929222436459

image-20210929222451433

image-20210929222645314

image-20210929222729862

String去重

image-20210929230513806

image-20210929230541198

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0wLIQdPv-1633094137629)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20210929230600879.png)]

垃圾收集概述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEdqN045-1633094137629)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20211001154211287.png)]

面试题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTTa7djW-1633094137629)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20211001154326261.png)]

image-20211001154412480

image-20211001154511417

image-20211001161449988

image-20211001163952048

image-20211001164013660

image-20211001164233980

image-20211001164358517

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scWvA8FF-1633094137631)(https://cdn.jsdelivr.net/gh/Guawazz/image-host/img/image-20211001164543920.png)]

image-20211001164643020

垃圾回收相关算法

垃圾标记阶段的算法

image-20211001165321055

image-20211001165847621

image-20211001165944997

image-20211001170226315

可达性分析算法(根搜索算法、追踪性垃圾收集)

image-20211001170518579

image-20211001170551372

image-20211001170816850

image-20211001171134613

image-20211001171507892

finalize()

image-20211001172722630

image-20211001172826575

image-20211001172637056

image-20211001173307725

垃圾清除阶段的算法
标记清除

image-20211001184611917

image-20211001184649318

image-20211001185233689

复制算法(s0、s1就是用的这种方法)

image-20211001185359929

image-20211001185452130

image-20211001190124656

image-20211001190205034

标记压缩算法

image-20211001190247135

image-20211001200519176

image-20211001200634820

image-20211001200736962

image-20211001200959580

image-20211001201228881

分代收集算法

image-20211001202202213

image-20211001202245829

增量收集算法

image-20211001202536704

image-20211001202606269

分区算法

image-20211001202820088

image-20211001204357688

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值