运行时数据区简图:

运行时数据区详细图:

类加载器子系统相关:

双亲委派机制

逻辑代码在:ClassLoader.loadClass(String name, boolean resolve)
SPI打破双亲委派。
注意:Class.forName(“com.mysql.cj.jdbc.Driver”);没有打破双亲委派,使用的是调用类的类加载器。
DriverManager.getConnection(“jdbc:mysqlxxxx”);使用的SPI破坏了双亲委派。
Class.forName() 会初始化类,xxx.class不会初始化

运行时数据区相关:

虚拟机栈:

  • 局部变量表:数组结构,存放基本数据类型、引用类型、RA类型(1 solt)。非静态方法、构造方法的0位置是this,4个字节占据一个solt(int 1个,long 2个,不满一个的按照一个处理,注意计算时数据的隐式转换)。
  • 操作数栈:使用数组实现栈结构
    相互关系:

  • 动态链接:指的就是下图中的“#5”这个符号,它就是“指向常量池的引用”

    理解
    动态绑定:编译期无法确定调用的是父类还是子类的方法(invokedynamic指令调用的方法)
    静态绑定:编译器可以确定调用的是哪个类的方法(super())
    早期绑定、晚期绑定。
    虚方法:
    非虚方法:编译器确定具体调用版本,运行期间不变(static、private、final方法、实例构造器、父类方法)
    java的多态特性依赖以上实现。
  • 方法返回地址:PC寄存器的值

各种变量存放位置

静态变量 jdk7之前位于方法区,jdk7以及之后和CLASS对象一起存放在堆中
实例变量 作为对象的一部分,保存在堆中。
临时变量 保存于栈中,栈随线程的创建而被分配。(局部变量表)

JVM学习笔记(宋红康老师课程)相关推荐

  1. JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT

    JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT 第一章:JVM虚拟机的介绍 1.1虚拟机的分类 虚拟机通常分为两类:系统虚拟机和程序虚机.其中,系统虚拟机是指完全对物理计算机的仿真,而程序虚 ...

  2. 尚硅谷 宋红康老师 Java视频全程课程目录

    尚硅谷 Java 语言全程课程目录, 尚硅谷 Java&大数据研究院 宋红康 B站视频链接 已看完,感谢宋红康老师! [视频很长,但看完你一定会收获很多] 30天课程目录 Java 编程基础部 ...

  3. java 技术训练营 宋红康老师、 佟刚老师 金牌讲师课件分享

    宋红康老师. 佟刚老师 金牌讲师课件分享 宋红康:先后担任过高级软件开发工程师,系统架构师,高级讲师.具备丰富的软件开发经验和教学经验.精通C/C++.JAVA.Objective-C 等开发语言, ...

  4. 【MySQL入门到高级之基础篇(参考尚硅谷宋红康老师2022版)】

    文章目录 第一章数据库概述 为什么要使用数据库 数据库与数据库管理系统 数据库的相关概念 数据库与数据库管理系统的关系 常见的数据库管理系统排名(DBMS) 常见的数据库介绍 MySQL介绍 概述 M ...

  5. 宋红康老师JVM课程学习笔记

    文章目录 1. JVM上篇 2. JVM中篇 3. JVM下篇 1. JVM上篇 JVM与Java体系结构 运行时数据区概述及线程.程序计数器(PC寄存器).本地方法栈.本地方法接口 类加载器与类的加 ...

  6. 个人学习宋红康老师java入门记录的笔记,严禁商用.

    1 Markdown语法学习 标题: #加上 空格 后面继续输入内容 回车即形成标题,二级,三级...标题依次多一个#即可 字体 Hello,world! Hello,world! 粗体 两边各加两个 ...

  7. Java基础(四)(根据尚硅谷宋红康老师Java基础第四部分)(重点)

    Java面向对象编程(中) 主要讲解宋老师里面课后题(无答案的),以便后期复习使用.(可以私信我要文档资料 简答题 Object类的使用说明: 为什么要重写toString()方法? 在Object类 ...

  8. 深入拆解一线大厂JVM讲师:宋红康

    目录 概述 你是否也遇到过这些问题? 开发人员如何看待上层框架? 架构师每天都在思考什么? 如何看待招聘信息,直通年薪50万? Java语言及Java生态圈 语言排行榜 Java:跨平台的语言 &qu ...

  9. 尚硅谷-宋红康-JVM上中下篇完整笔记-JVM上篇_内存与垃圾回收篇

    前言 一.jvm及java体系结构 1. Java及JVM简介 TIOBE语言热度排行榜 https://www.tiobe.com/tiobe-index/ 世界上没有最好的编程语言,只有最适用于具 ...

最新文章

  1. 转帖 .Net(C#)纯GDI+绘制实时动态曲线图之二(曲线控件全部源码)
  2. python中的静态方法和类方法
  3. 软件测试-HTTP Analyzer过期了怎么办?
  4. Windows 下 Nginx + PHP5 的安装与配置
  5. 如何开机进入grub界面_如何进入http://192.168.1.1的设置界面 ?
  6. java 获取bean的注解_如何获取spring 注解的bean
  7. python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式...
  8. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析(2)
  9. 计算机设备硬件设备,计算机硬件设备有哪些
  10. CSS基础知识——常用基础命令
  11. 前端工程师是什么?前端工程师工资怎么样?有没有前景
  12. pytorch和python有什么区别_pytorch简介
  13. 【全套完结】电磁场与电磁波实验-----全套Matlab仿真实验
  14. Win10 删除默认共享文件夹
  15. 什么是全球位置编号(GLN)?
  16. android 360锁屏清除,“打盹”省电 360清理大师锁屏清理早已实现
  17. IDEA 2018.3.3 有效期至 2100
  18. 《图书管理系统——“借书还书”模块》
  19. jpanel麻将自动打牌,碰牌,杠牌
  20. 嵌入式开发(7)系统定时器(SysTick)之延时函数运用

热门文章

  1. 使用 docker-compose 部署 Euraka
  2. 拼多多笔试 公司套餐
  3. 农村城镇面板数据集:地级市人均消费与支出2012-2019各省农村数据2013-2019
  4. 笔记本电脑 音频输出 杂音 问题的解决方案
  5. live555作为RTSP流媒体服务器RTSPServer时解决对接海康NVR时G711音频不能正常播放的问题
  6. win10中有道词典以及部分软件中文显示乱码问题解决方案
  7. 小数分频器vhdl实现_VHDL实现分频器 - zy010101的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. QQ、旺旺、MSN、SKYPE在线代码生成!
  9. RxJava之一——一次性学会使用RxJava
  10. 神来免费小说网站(开源)IDEA源码+小说压缩文件