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

类加载的奥秘

一、类的加载过程将类的字节码文件加载到Java虚拟机中进行执行。
1.通过一个类的全限定名来获取定义此类的二进制流字节码文件(如zip 包、网络、运算生成、JSP 生成、数据库读取等)。
2.将这个字节流所代表的静态存储结构(如常量池、字段、方法等)转化为方法区的运行时数据结构。
3.在内存中生成一个代表这个类的 java.lang.Class 对象,作为这个类的各种数据(如字段、方法等)的访问入口。


二、数组类加载的特殊性:数组类本身不通过类加载器创建,它是由 Java 虚拟机直接创建的。但数组类与类加载器仍然有很密切的关系,因为数组类的元素类型最终是要靠类加载器去创建加载的。
数组创建过程如下:
1.如果数组的组件类型(即数组的元素类型)是引用类型,那就递归采用类加载器进行加载。
2.如果数组的组件类型(即数组的元素类型)不是引用类型,Java 虚拟机会把数组标记为引导类加载器加载。
3.数组类的可见性与它的组件类型(即数组的元素类型)的可见性一致,如果组件类型不是引用类型,那数组类的可见性将默认为 public。


三、内存中的 java.lang.Class 对象存在于方法区中,作为应用程序中访问方法区中这些类型数据的外部接口。
加载阶段与链接(验证、准备、解析)阶段的部分内容是交叉进行的,但是开始时间保持先后顺序。
 


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

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

相关文章:

  • Spring知识点总结
  • STM32Cube系列教程11:STM32 AES加解密模块性能测试
  • Vue2基础:.sync修饰符的使用,认识,作用,本质案例演示,实现父子之间的通信。
  • 【数据结构与算法】使用单链表实现队列:原理、步骤与应用
  • DHCP服务
  • C++笔试-剑指offer
  • Mac安装jadx并配置环境
  • 前端学习----css基础语法
  • 超详解——python条件和循环——小白篇
  • DNS协议 | NAT技术 | 代理服务器
  • 深入ES6:解锁 JavaScript 类与继承的高级玩法
  • 领域驱动设计:异常处理
  • 网络网络层之(6)ICMPv6协议
  • 《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。
  • JavaScript 如何访问本地文件夹
  • ArrayList顺序表简单实现
  • 144、二叉树的前序递归遍历
  • youtube 1080 分辨率 下载方式
  • 计算机网络ppt和课后题总结(下)
  • 测试基础12:测试用例设计方法-边界值分析
  • AI大模型在健康睡眠监测中的深度融合与实践案例
  • 【西瓜书】9.聚类
  • 使用jemalloc实现信号驱动的程序堆栈信息打印
  • 树的4种遍历
  • 深入探讨5种单例模式
  • SPOOL
  • 挑战绝对不可能:再证有长度不同的射线
  • 【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
  • MapStruct的用法总结及示例
  • redis 05 复制 ,哨兵