当前位置: 首页 > news >正文

JVM学习(宋红康)之运行时数据区之虚拟机栈中栈帧的动态链接及方法调用

动态链接:

动态链接描述:

图解:

常量池的作用就是为了提供一些符号和常量,便于指令的识别。

方法的调用:

在JVM中,将符号引用转换为方法的直接引用与方法的绑定机制有关

  • 静态链接:当一个字节码文件装入JVM内部时,如果被调用的目标方法在编译期能够确定,。且运行期保持不变。这种由符号引用转换为直接引用过程为静态链接
  • 动态链接:被调用的方法在编译期无法确定,程序运行期间才可以确定,这个转换过程称为动态链接。

方法的绑定机制:

绑定:一个字段、方法、类在符号引用替换为直接引用的过程,只发生一次。

  • 早期绑定:对应静态链接
  • 晚期绑定:对应动态链接

多态的特性是因为有早期绑定和晚期绑定机制才能实现的。

子类对象多态性的使用前提:①类的继承关系 ②方法的重写

虚方法和非虚方法

  • 虚方法:(其余方法均为虚方法)
  • 非虚方法:在编译期就确定了具体的调用版本,运行期间不可以改变(静态方法、私有方法、final方法、实例构造器、父类方法

普通调用指令 动态调用指令

静态类型语言和动态类型语言:区别就在于静态类型语言是判断变量自身类型信息

动态类型语言是判断变量值类型信息,变量没有类型信息。

Lambda表达式的引入使得Java具备了动态语言的特点。

方法重写的本质:

为了提高性能,创建了虚方法表:虚方法表是在类加载的链接阶段被创建并开始初始化的。

虚方法举例:

相关文章:

  • 基于FPGA的LCD1602驱动(含代码)
  • 高并发场景下,6种方案,保证缓存和数据库的最终一致性!
  • Elasticsearch HTTP查询
  • ArkID开源IDaaS系统插件OAuth2轻松实现单点登录安心做应用服务集成
  • 判断一个数是否是质数
  • 诊断Android系统原生代码Native崩溃问题
  • React中实现一键复制——五种办法
  • byName自动装配和byType自动装配
  • 【黑马Java笔记汇总】JavaSE+JavaWeb+SSM+Springboot笔记汇总
  • DRF 用户认证
  • 系统架构演变历史及集群、分布式、微服务、SOA的概念区别
  • 四、RocketMq本地集群搭建
  • 金仓数据库 KingbaseES 插件参考手册 xml2
  • FITC-PEG-SH/Fluorescent-PEG-SH 多种分子量可选/荧光素聚乙二醇巯基 FITC-PEG-SH
  • 常用hooks用法总结
  • 《剑指offer》分解让复杂问题更简单
  • 77. Combinations
  • Android框架之Volley
  • Django 博客开发教程 8 - 博客文章详情页
  • GraphQL学习过程应该是这样的
  • JavaScript 基本功--面试宝典
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • PAT A1050
  • Redux系列x:源码分析
  • sessionStorage和localStorage
  • underscore源码剖析之整体架构
  • WePY 在小程序性能调优上做出的探究
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 对JS继承的一点思考
  • 关于Flux,Vuex,Redux的思考
  • 回顾2016
  • 基于 Babel 的 npm 包最小化设置
  • 基于axios的vue插件,让http请求更简单
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 计算机常识 - 收藏集 - 掘金
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端相关框架总和
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 转载:[译] 内容加速黑科技趣谈
  • hi-nginx-1.3.4编译安装
  • 阿里云ACE认证之理解CDN技术
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​520就是要宠粉,你的心头书我买单
  • ![CDATA[ ]] 是什么东东
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #{}和${}的区别是什么 -- java面试
  • $ git push -u origin master 推送到远程库出错
  • (+4)2.2UML建模图
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (23)Linux的软硬连接
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (分享)自己整理的一些简单awk实用语句
  • .net framework profiles /.net framework 配置