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

【jvm】直接引用

目录

          • 1. 说明
          • 2. 形式
          • 3. 特点
          • 4. 生成过程
          • 5. 作用

1. 说明
  • 1.在Java虚拟机(JVM)中,直接引用(Direct Reference)是相对于符号引用(Symbolic Reference)而言的,它是指向内存中实际存在的对象的引用
  • 2.是指向内存中实际存在的对象的引用,它与虚拟机的内存布局紧密相关,是JVM进行对象访问和操作的基础。
2. 形式
  • 1.指针:直接指向目标的指针,例如指向“类型”(Class对象)、类变量、类方法的直接引用可能是指向方法区的指针
  • 2.相对偏移量:例如指向实例变量、实例方法的直接引用通常是相对于实例对象的起始地址的偏移量。
3. 特点
  • 1.内存相关性:直接引用与虚拟机的内存布局紧密相关,不同的虚拟机实现可能会有不同的内存布局,因此同一个符号引用在不同的虚拟机实例上翻译出来的直接引用可能不同。
  • 2.加载性:如果有了直接引用,那么引用的目标必定已经被加载到内存中。这是因为在解析阶段,JVM会将常量池内的符号引用替换为直接引用,而这个过程通常伴随着类加载和初始化。
4. 生成过程
  • 1.在JVM的类加载过程中,当类被加载到内存中并初始化后,类中的符号引用会被解析为直接引用。
  • 2.加载:将类的二进制数据读入到JVM中,并创建对应的java.lang.Class对象。
  • 3.链接:包括验证、准备和解析三个阶段。其中,解析阶段就是将常量池中的符号引用替换为直接引用的过程。
  • 4.初始化:为类的静态变量分配内存并设置初始值执行静态代码块等。
5. 作用
  • 1.直接引用使得JVM能够高效地访问和操作内存中的对象。
  • 2.通过直接引用,JVM可以直接访问对象的属性和方法,执行对象的操作等。
  • 3.直接引用是JVM进行垃圾回收的重要依据之一。
  • 4.JVM的垃圾回收器通过遍历对象之间的引用关系,来判断哪些对象是可达的(即被引用的),哪些是不可达的(即未被引用的),从而对不可达的对象进行回收。
http://www.lryc.cn/news/426440.html

相关文章:

  • PythonStudio 控件使用常用方式(二十七)TActionList
  • PDF 转Word 开源库
  • Docker - 深入理解Dockerfile中的 RUN, CMD 和 ENTRYPOINT
  • Python 函数式编程 内置高阶函数及周边【进阶篇 3】推荐
  • 【Rust光年纪】探秘Rust GUI库:从安装配置到API概览
  • Element plus部分组件样式覆盖记录
  • 重塑业务生态,Vatee万腾平台:引领行业变革的新引擎
  • 标准术语和定义中的【架构】应该如何描述
  • 华为鸿蒙Core Vision Kit 骨骼检测技术
  • Table API SQL系统(内置)函数System (Built-in) Function详解
  • 一键运行RocketMQ5.3和Dashboard
  • HAL STM32 SG90舵机驱动控制
  • 【Kubernetes】k8s集群图形化管理工具之rancher
  • AI编程系列一1小时完成链家房价爬虫程序
  • 【JavaEE初阶】文件内容的读写—数据流
  • Spring Boot项目中使用Sharding-JDBC实现读写分离
  • 【网络安全】SSO登录过程实现账户接管
  • Admin.NET源码学习(3:LazyCaptcha使用浅析)
  • 在原生未启用kdump的BCLinux 8系列服务器上启用kdump及报错处理
  • Android架构组件中的MVVM
  • 走向绿色:能源新选择,未来更美好
  • 鸿蒙装饰器的介绍
  • 零基础5分钟上手亚马逊云科技核心云架构知识 - 权限管理最佳实践
  • [数据库][知识]SQL Server、MySQL 和 Oracle 的默认端口和数据库链接
  • 【Unity教程】使用 Animation Rigging实现IK制作程序化的动画
  • OBS混音器(Mixers)的重要性和配置指南
  • Ubuntu安装Anaconda3
  • 数据类型解码:INT、VARCHAR、DATETIME的深度解析与实践
  • 基于单片机的智能晾衣系统设计
  • Python实战项目:天气数据爬取+数据可视化(完整代码)