JVM 类的加载(一)- 类的加载流程

类的加载分三个过程,加载、连接、初始化,同时在连接也分为三步骤:验证、准备、解析。 如下图所示

输入图片说明

加载

指的就是加载本地的class文件

连接

**验证:**验证.class文件是否合法

**准备:**为static变量赋初始化默认值

**解析:**用一段代码来解释

Class A{
    public void callB(){
        b.bMethod();
    };
}

Class B{
    public void bMethod(){
        ......
    };
}

在解析类的时候,b.bMethod()就是符号引用,最近会被替换成指成bMethod的指针Pointer就是直接引用

初始化

为变量赋正确的初始值,这一步与连接中的准备看似相同,实则不同

例如public static int a = 10;

a这个变量先在准备阶段赋默认值为0,然后在初始化阶段赋初始值为10。

别的类型同样这种方式加载。

转载于:https://my.oschina.net/u/1273644/blog/768476

RTC温度补偿:如何让时间分秒不差? RTC(实时时钟)温度补偿技术通过"检测温度→计算误差→动态调整频率"的闭环机制,解决振荡器频率随温度变化导致的时间误差问题。核心步骤包括:1)高精度温度检测;2)基于温度-频率误差模型计算偏差;3)通过硬件(可编程电容/DAC)或软件方式调整振荡频率。该技术需突破温度检测精度、误差模型拟合、频率调整分辨率等关键点,根据不同应用场景(消费电子±5ppm至军工±0.1ppm)选择匹配方案。典型实现如STM32的分段线性补偿算法,可将工业级RTC精度提升至±2ppm以内。 阅读详情

相关推荐

(目录)微气候模型ENVI-met模拟的基本使用教程

ENVI-met模拟操作系列(一) 介绍:

ysqzhatian的博客 2万+

[jvm]类的加载流程一

文章目录概述定义优点java类在虚拟机中的生命周期加载加载定义加载类使用的对象类的来源如何判断两个类是否是同一个类?加载的成果类的加载机制 概述 定义 是采用编译型(ps 对应于 解释型),基于栈(ps 对应于 基于寄存器)实现的虚拟机 优点 适配性好,可在多种硬件上使用 java类在虚拟机中的生命周期 java程序运行时,jvm 使用一个类,主要有五步 加载 连接 初始化 使用 卸载 加载 ...

xianrenli38的博客 204

UDP_千兆光通信(四)Tri Mode Ethernet MAC ip核

其中 Transmit Engine 从 AXI-Stream TX 接口接收数据,并添加前导码 Preamble、帧起始界定符 SFD、帧校验序列 FSC 等,并在必要时(长度小于最小 MAC 帧长度)填充数据,因此在使用 TEMAC 时,MAC 帧的这几个部分就不需要我们自己添加了(不过其他的 MAC 帧部分,可选的帧过滤器 Frame Filter 用于过滤与一组可配置过滤器匹配的帧,一般用于过滤掉目的 MAC 地址与本设备不一致的帧,TEMAC 默认开启帧过滤器。默认值为使用64位宽的计数器。

lzr232的博客 1774

深入 JVM 字节码,一步一图解析类的加载、链接、初始化、创建对象、程序执行的流程...

很多工程师在学习 Java 虚拟机的时候,觉得很抽象,和实际的开发工作结合不起来,而且学完就忘。主要原因是:在脑海中没有建立一张程序执行流程图,不了解这些虚拟机为什么这么设计?规则的实现原理是什么?Java 程序执行时栈、堆、方法区里都是什么样的状态? 在本 Chat 中,会用“Java 程序 + 画图 + 字节码 + 字节码的 Java 伪代码”的形式学习如下内容: 简单图解堆、栈、栈帧、方法...

GitChat 4026

基于N32G003的PMBus从机协议栈设计与STM32F103模拟I2C主机通信实战

本文详细介绍了基于N32G003微控制器设计PMBus从机协议栈,并与STM32F103模拟I2C主机进行通信的实战方案。重点阐述了中断驱动架构、命令解析、CRC8优化及超时恢复机制,实现了在70kHz速率下稳定可靠的工业电源管理通信,适用于服务器电源、通信基站等成本敏感应用场景。

numpy6sculptor的博客 919

RIGOL DS1102E示波器新手必看:从开机到捕获第一个波形的5分钟指南

本文为RIGOL DS1102E示波器新手提供了一份快速上手指南。内容涵盖从开机、探头校准到捕获第一个波形的完整流程,重点解析了触发设置、自动测量等核心操作,并指出了探头衰减比设置等常见误区,帮助用户快速掌握这款经典数字示波器的基本使用方法。

dream的博客 739

jvm类加载的重点

jvm

z275598733的博客 308

DeepSeek的训练与优化流程

DeepSeek的训练体系不仅追求极致的计算效率,更注重将物理规律、人类知识、安全伦理深度融入训练过程,其"效率-安全-可解释性"三角平衡的设计理念,为行业提供了重要参考范式。

m0_56896669的博客 1434

JVM类加载机制详解(一)JVM类加载过程

首先Throws(抛出)几个自己学习过程中一直疑惑的问题: 1、什么是类加载?类加载的时机? 2、什么是类初始化?什么时候进行类初始化? 3、什么时候会为变量分配内存? 4、什么时候会为变量赋默认初值?什么时候会为变量赋人为设定的初值? 5、类加载器是什么? 6、如何编写一个自定义的类加载器? 首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*

Leeon的博客 6万+

管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重

履带式管道机器人适用于各种管道环境,包括直管道、弯曲管道、水平管道、垂直管道等,其灵活性和适应性使得它可以应对不同形状和尺寸的管道,完成全面的检测和维护工作。管道机器人研究具有重要的现实意义和深远的社会影响,通过提高工作效率、降低人员风险、提升服务质量、节约成本资源和促进科技创新等方面的作用,为现代工程技术领域的发展和进步做出了积极的贡献。管道机器人是一种能够在管道内部执行各种任务的智能机器人,而管道机器人的机械臂对于管道机器人在管道内执行任务的灵活性、稳定性和效率至关重要。

kejigongjiang的博客 943

稳定性性能系列之五——Native Crash深度分析:工具实战

深入理解Native Crash的机制与分析方法,掌握addr2line、ndk-stack、gdb等核心工具的实战使用,学会从Tombstone文件中快速定位问题根因

Cheson的专栏 1543

JVM中类的加载流程

类的加载机制分为如下三个阶段:加载,连接,初始化。其中连接又分为三个小阶段:验证,准备,解析。

weixin_43476946的博客 1865

Haystack框架实战:从零构建企业级智能问答系统

自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正在深刻改变信息检索与交互方式。其核心原理在于将文本转化为机器可处理的向量表示,并通过语义相似度计算实现精准匹配。这一技术价值在于能够从海量非结构化数据中快速提取精准信息,大幅提升知识获取效率。在工程实践中,检索增强生成(RAG)架构结合了密集向量检索与大语言模型生成能力,成为构建智能问答、知识库助手等应用的主流方案。该架构通过将用户查询与文档库进行语义匹配,并为大语言模型提供精准上下文,有效提升了回答的准确性与可追溯性。本文以Haystack这一生

weixin_42521032的博客 577

JVM类的加载和类的加载器

在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方为什么要自定义类加载器?隔离加载类修改类加载的方式扩展加载源防止源码泄漏1.开发人员可以通过继承抽象类java.lang.classLoader类的方式,实现自己的类加载器,以满足一些特殊的需求。

欢迎每一位朋友不吝赐教,无论是宝贵的建议还是中肯的批评,都将是我前进路上不可或缺的灯塔 1292

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【JVM】类的加载过程详解

类的加载过程包括加载、链接、初始化、使用和卸载五个阶段。加载阶段将类的字节码文件读入内存并构建类模板对象;链接阶段包括验证、准备和解析三个子阶段,确保类的正确性和为静态变量分配内存;初始化阶段执行静态代码块和静态变量赋值;使用阶段通过实例化、调用方法等方式使用类;卸载阶段在类不再被引用且满足条件时,从内存中移除类的元数据和相关对象。整个过程由JVM规范严格定义,确保类的正确加载和使用。

白晨的博客 1359

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JVM学习(一)JVM架构模型和类的加载

Java代码执行流程: Java源码通过编译器编译成字节码文件,字节码文件去Java虚拟机执行,执行过程,首先是类加载器,然后字节码校验器,然后执行引擎(包括翻译字节码解析执行,和JIT即时编译器编译执行),然后再去操作操作系统。 JVM架构模型: hotspot是基于栈的指令集架构,指令集更小,指令多,以零地址指令为主,不需要地址指令。执行性能比寄存器稍微差一些,不需要硬件支持,可移植性好,更好实现跨平台。 还有一种基于寄存器的指令集架构,指令集大,指令少,完全依赖硬件,可移植性差,但性能优秀,执行高效

橙子橙子大橙子的博客 2678

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

026-JVM-jvm对类的延时加载

上一篇:025-JVM-虚拟机执行代码的模式解释执行+及时编译JIT https://yuhongliang.blog.youkuaiyun.com/article/details/111598534 jvm加载类均是采用延时加载的方式LazyLoading。当不使用一个类的时候肯定是不会去加载的。 在jvm规范中,规定了必须加载类的5中情形,这里给出,可以结合自己的开发和学习情况很容易想到。无须背过! 1.必须加载类的5中情形 new getstatic putstatic invokestatic 指令,访问fi

前路无畏的博客 1万+

(JVM)在JVM中,类是如何被加载的呢?本篇文章就带你认识类加载的一套流程!

有没有想过类在内存中是如何被加载的?JVM对类做了些什么呢?本篇文章讲告诉你关于类的一切答案!!

拔高、提升、创新! 1429

【JVM基础】 JVM 如何加载一个类以及类加载机制

如果你要 “new ReplicaManager()” 初始化这个类的实例,那么就会加载这个类,然后初始化这个类,但是初始化这个类之前,发现 AbstractDataManager 还没有加载和初始化,就需要先加载这个父类,并且初始化这个父类。然后从 main 方法的入口代码开始。假设你的应用程序需要去加载一个类,他首先会委派给自己的父类加载器去加载,经过层层床底,最终传递到顶层的类加载器去加载。但是如果父类加载器在自己负责范围加载的范围内没有找到这个类,就会将加载的权利给自己的子类加载器去进行加载。

【程序员不弃】的博客 1964

JVM详解:类的加载过程

JVM中类的加载主要分为三个部分,分别为加载(loading),链接(linking),初始化(initing)。其中加载负责的主要是讲类文件加载到内存中变为类对象,不过此时只有基本结构,没有实际数据。

dxh9231028的博客 1606

jvm类的加载

这个类加载器是使用C/C++完成的,它用来加载java的核心库,用于提供jvm自身需要的类。如果一个类加载器收到了类加载请求,它并不会自己去加载,而是将这个请求委托给父类的加载器去执行,如果父类还存在父类加载器,则进一步向上委托,递归直到引导类加载器。在java的开发中,类加载器几乎都是由以上三种类加载器配合执行的,除此之外我们还可以自定义类加载器,来制定类的加载方式。如果父类加载器能完成类的加载任务就成功返回,倘若父类加载器无法完成加载任务,子类加载器才会尝试自己加载。

weixin_73975059的博客 872

JVM类的加载

类的初始化段(也称为静态初始化块)是用于在类加载时执行初始化逻辑的代码块,定义方式是在代码块前加static关键字。它属于类级别的初始化,只在类被加载并初始化时执行一次,用于初始化静态变量或执行类级别的预处理逻辑。// 静态变量// 静态初始化块(类的初始化段)static {System.out.println("类初始化段执行");count = 10;// 初始化静态变量// 普通成员变量// 普通初始化块(实例初始化段,不属于类初始化)

Zssss12的博客 1019

JVM字节码与类的加载——类的加载过程详解

加载(Loading)阶段、链接(Linking)阶段、初始化(Initialization)阶段、类的使用(Using)、类的卸载(Unloading)

码说芯语的博客 1112

jvm 类的加载流程详解

文章目录1 概述2 loading 加载2.1 加载概述2.2 加载流程2.2.1 二进制流的获取方式2.2.2 类模型及class类实例的位置3 linking 连接阶段3.1 验证3.2 准备阶段3.3 解析阶段4 初始化阶段4.1 流程5 类的主动使用与被动使用5.1 主动使用5.2 被动使用6 类的使用7类的卸载7.1 类,类加载器,类实例之间关系7.2 类的生命周期 1 概述 java中数据类型分数为基本数据类型和引用数据类型,基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。 2

ytsydmx的博客 372

01-JVM类的加载到运行全流程

01-JVM类的加载到运行全流程自定义JAVA类JVM类的加载到运行流程图JVM类的加载到运行流程说明 你好,这篇文章通过上帝的视角带你去看JVM类的加载到运行的整个流程。 自定义JAVA类 /** * @Author :ying.sir * @Date :Created in 2021/5/31 15:32 * @Description :自定义类 */ public class ObjectTest { public static final int initValue = 10;

zy97vip的博客 172

JVM类加载机制-类是如何被加载的?

JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被JVM直接使用的Java类型,这就是JVM的类加载机制类的生命周期JVM规范中初始化的条件被动引用不会触发初始化类加载的过程加载:非数组类:数组类:验证文件格式验证元数据验证字节码验证符号引用验证准备解析初始化 类的生命周期 加载、验证、准备、初始化和卸载5个阶段的顺序是确认的,类加载过程必须按照这种顺序按部就班的开始,在动态绑定中解析可以在初始化后完成 JVM规范中初始化的条件 使用new关键字实例化对象

qq_24760259的博客 869
上一篇: Github 下载代码时如何强制覆盖本地文件
下一篇: JVM 类的加载(二)- 类的主动加载
chenmin4331
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值