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

JAVA语言:什么是懒加载机制?

JVM没有规定什么时候加载,一般是什么时候使用这个class才会什么时候加载,但是JVM规定了什么时候必须初始化(初始化是第三步、装载、连接、初始化),只要加载之后,那么肯定是要进行初始化的,所以我们就可以通过查看这个类有没有进行初始化,从而判断这个类有没有被加载。

初始化时发生了什么?

当初始化的时候,它会自动调用静态代码块完成初始化工作。并且会自动给静态成员变量赋初始值。

LazyLoading 五种情况

以下五种情况:

new getstatic putstatic invokestatic指令,访问final变量除外

java.lang.reflect对类进行反射调用时

初始化子类的时候,父类首先初始化

虚拟机启动时,被执行的主类必须初始化

动态语言支持java.lang.invoke.MethodHandle解析的结果为REF_getstatic REF_putstatic REF_invokestatic的方法句柄时,该类必须初始化

懒加载的验证代码

 

结果:

 

我们可以

http://www.lryc.cn/news/125151.html

相关文章:

  • jupyter默认工作目录的更改
  • Flutter系列文章-Flutter UI进阶
  • Elasticsearch在部署时,对Linux的设置有哪些优化方法?
  • 【网络基础】应用层协议
  • 面试八股文Mysql:(1)事务实现的原理
  • Linux学习之sed多行模式
  • 【刷题笔记8.15】【链表相关】LeetCode:合并两个有序链表、反转链表
  • 神经网络基础-神经网络补充概念-11-向量化逻辑回归
  • openGauss学习笔记-40 openGauss 高级数据管理-锁
  • 勘探开发人工智能技术:机器学习(6)
  • 代理类型中的 HTTP、HTTPS 和 SOCKS 有什么区别?
  • 【STM32RT-Thread零基础入门】 3. PIN设备(GPIO)的使用
  • fiddler抓包工具的用法以及抓取手机报文定位bug
  • spring中时间格式化的两种方式
  • 【设计模式】原型模式
  • Matlab的Filter Designer工具设计二阶低通滤波器
  • 软件测试基础篇——LAMP环境搭建
  • 使用dom4j将xml转为String并去掉所有格式
  • wsl2安装docker引擎(Install Docker Engine on Debian)
  • 百日筑基篇——python爬虫学习(一)
  • 【Spring专题】Spring之底层架构核心概念解析
  • electron 使用node C++插件 node-gyp
  • 学习Vue:使用条件渲染指令(v-if,v-else,v-show)
  • 【图像去噪的滤波器】非局部均值滤波器的实现,用于鲁棒的图像去噪研究(Matlab代码实现)
  • Redis辅助功能
  • 快手商品详情数据API 抓取快手商品价格、销量、库存、sku信息
  • linux系统部署jenkins详细教程
  • Arduino驱动BME680环境传感器(环境传感器篇)
  • 领航未来!探索开源无人机与5G组网的前沿技术
  • 分布式事务CAP与BASE简介