java类的加载过程

Win11下WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置 本文提供了一份详细的Win11下WSL2安装Ubuntu22.04的实战避坑指南。内容涵盖从WSL2核心安装、自定义安装路径,到更换国内镜像源以解决更新缓慢问题,并一站式配置完整的C++开发环境(包括GCC、CMake、vcpkg等),最后分享提升开发体验的进阶技巧,助你在Windows上打造高效的Linux开发工作站。 阅读详情



---------------类的加载时机----------------

java程序使用类的时候会引起类的加载。

java程序对类的使用分两种方式。

1.主动方式

1)new对象的时候。

2)访问类(接口)的静态变量或给它赋值的时候。

3)调用类的静态方法。

4)反射 Class.forName("xxx.xxx.xxx")。

5)初始化一个类的子类。

6)启动类(main方法所在的类)。

2.被动方式

除了6种主动加载方式以外都是被动方式,如:虚拟机预加载。


只有首次主动方式使用类时,才会对类进行初始化。

只有当程序访问的静态变量或静态方法定义在当前类或当前接口时,才可以认为是主动使用。

调用classloader加载一个类,不是对类的主动使用,不会导致类的初始化。



------------------加载过程-------------

一,加载:

将类的.class二进制文件读入到方法区内。 然后在堆区创建一个java.lang.Class对象(Class对象构造器是私有的,只有虚拟机才能实例化它),封装方法区内对应的数据结构。

加载.class的方式

1.本地.class文件。

2.网络下载的.class文件。 通过java.net.URLClassloader类来使用

3.jar,zip包中的.class文件。

4.专有数据库中提取.class文件。


二,连接

a.验证:确保类被加载的正确性。

b.准备:为类的静态变量在方法区里分配内存,赋上默认值。

c.解析:把符号引用转换为直接引用。

三,初始化:为类的变量赋予类中的初始化值。


参考:

深入理解java虚拟机。



类的加载时机:
把 SAP ABAP ALE 与 IDoc 玩明白:从架构、配置到排错的一套闭环方法 本文介绍了SAP集成中ALE与IDoc的核心概念与实战应用。ALE作为SAP分布式应用框架,通过异步消息机制实现系统间数据交换,其三层架构隔离业务与传输细节。IDoc作为标准化消息容器,包含控制、数据和状态记录。文章详细解析了配置要点(端口、伙伴参数)、处理流程(Process Code)、排错工具(BD87、WE09)及同系统测试方法,并提供了发送程序代码骨架。通过架构认知→配置→开发→运维的完整路径,帮助读者掌握ALE/IDoc的实际操作技能。 阅读详情

相关推荐

射频收发机(RF Transceiver)

2,既然原来外差的思路是把声音频率的信号,通过混频搬移到高频电磁波频率,那对高频率信号放大的时候,是不是也可以先在比较低的射频频率进行放大,然后再通过频率搬移的方式,将放大后的信号搬移到高频率呢?频率搬移过程中,中间预先设定的固定射频频率被称为“中频”(中间频率,IF,Intermediate Frequency),由于这个频率超出了声音可听的范围,是“超声波”(supersonic),所以被命名为“超外差”(Super-Heterodyne)。混频后的信号在0频率附近,可能会发生DC偏移。

2301_77317229的博客 1122

Java 什么时候进行类加载

类加载的原则:延迟加载,能不加载就不加载。 触发类加载的几种情况: (1)、调用静态成员时,会加载静态成员真正所在的类及其父类。 通过子类调用父类的静态成员时,只会加载父类而不会加载子类 (2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。 (3)、加载子类会先加载父类。(覆盖父类方法时所抛出的异常不能超过父类定义的范围) 如果静态属性有 final 修饰时,则不会加载,当成常量使用 如果编译时不能确定其值的话,则运行时加载 ...

0 1893

二次开发vba_CATIA VBA(VBS)二次开发:使用Search批量选择元素

在CATIA二次开发中很多在程序中进行自动交互的方法或函数都需要使用选择集作为参数,将几何元素按照要求批量添加到选择集中也是实现程序自动运行的有效方法。在前面的文章《CATIA使用VBA(VBS)二次开发时用户的交互选择》和《CATIA使用VBA(VBS)二次开发时工程图和草图位置的交互选择函数Indicate2D》中介绍了在CATIA VBA(VBS)二次开发中用户和选择集之间的交互操...

weixin_32497403的博客 1321

Java类什么时候加载

对于Java类到底是什么时候加载一直没有认真考虑过,今天来总结下: 共两种情况 1.在实例化对象的时候(new一个对象的时候). 2.在调用静态方法的时候(类名.class除外) ...

laoerliang的博客 575

CTF全能工具箱ProV2:集成AI与94GB离线资源库,打造无网环境下的智能解题流水线

CTF全能工具箱ProV2是一款专为线下CTF比赛设计的All-in-One离线解决方案。它集成了94GB的庞大离线资源库,涵盖Web、逆向、Pwn等全方向工具链与知识库,并创新性地内置了本地AI大模型,可在断网环境下提供智能解题辅助,实现从信息收集到漏洞利用的智能流水线作业,极大提升比赛效率。

weixin_29240343的博客 422

HFSS之天线设计实例

目录 矩形微带天线 微带天线尺寸计算 微带线的3个关键指标如以下 HFSS设计流程 新建工程并设置求解类型 天线建模 添加求解设置和扫频设置 天线建模步骤 谐振点查看 优化设计 查看天线分析结果 3D增益 Smith圆图 S参数 驻波比 ​ 平面增益 方向性系数\增益\轴比 矩形微带天线 微带天线的概念首先是由Deschamps于1953年提出来的,经过20年左右的发展,Munson和Howell于20世纪70年代初期制造出来了实际的微带天线 一个简单的...

ASH_GUARDIAN的博客 1万+

Java类加载过程详解

首先我们应明确在Java中类的生命周期是什么,引用一张图像进行说明使用(Using)卸载(Unloading)

chris3will的博客 5247

2. Netty使用JSerialComm进行串口读取(二)

现在开始处理这些问题 第一个问题:串口读取超时异常一路传播到最后也没有处理。 ​ 第二个问题:即使处理了该异常,程序仍然退出,这不能满足一些实际使用要求需求。该问题与设置很长的读取超时时间没关系,无论多长到时间后总会退出。

s3c2410的博客 2461

Java类的加载过程

应用程序根据自身需要自定义的ClassLoader,如Tomcat、Jboss都会根据j2ee规范实现ClassLoader。

w1lgy的博客 9566

zynq+ad9361 petalinux使用官方IIO示波器调试记录

1ad9361 iio示波器

Yetob的博客 7991

Chrome下载B站视频字幕的插件

本文主要介绍了Chrome下载B站视频字幕的插件,希望能对使用Chrome的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

Java类加载过程

Java虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这个过程被称作虚拟机的类加载机制。在 Java 语言里面,类型的加载、连接和初始化的过程都是程序运行期间完成的,这种策略让 Java 语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为 Java 应用提供了极高的扩展性和灵活性。Java 天生可以可以动态扩展的语言特性就是依赖于动态加载和动态连接这个特点实现的。

weixin_46058921的博客 2365

华为OD机试真题 新系统【查找温度记录统计信息】

华为OD机试 新系统真题【查找温度记录统计信息】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找温度记录统计信息】多语言题解。

qq_45776114的博客 486

请你说说Java类的加载过程

1. 什么是类的加载过程         一个Java文件从编码完成到最终运行,一般会经历两个阶段:编译期、运行期。编译,即通过javac命令,将Java文件转化为二进制字节码文件,即.class文件;运行,则是将.class文件交给JVM执行。而本文所说的类加载过程就是将.class文件中类的元信息加载进内存,创建Class对象并进行解析、初始化类变量等的过程      &nb

qq_41563912的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java 类的加载过程

Java 类的加载过程 当程序主动使用某个类时,如果该类还没有加载到内存中,则通过以下三个步骤对类进行加载初始化: 类的加载:将类的class文件读入内存,并为之创建一个java.lang.Class对象到方法区中,此过程由类加载器完成 类的链接:将类的二进制数据合并到JRE中 类的初始化:JVM负责对类进行初始化 其中,类的链接可以分为以下几点: 验证:确保加载的类符合JVM规范 准备:正式为类变量(static)分配内存并设置类变量默认初始值的阶段,这些内存都将在方法区中进行分配 解析:虚拟机常量

涂涂写写的笔记 3924

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

原来Java类的加载过程是这样的?

如果大家对java架构相关感兴趣,可以关注下面公众号,会持续更新java基础面试题, netty, spring boot,spring cloud等系列文章,一系列干货随时送达, 超神之路从此展开, BTAJ不再是梦想! 1.类的加载过程:加载-验证-准备-解析-初始化 2.加载阶段(加载阶段主要做三件事情): (1).通过类的全限名来获取此类的二进制流。 (2).将这个字节流所代表的的今天存储结构转化为方法区中可运行的数据结构。 (3).在内存中生成一个代表这个类的java.lang.Class对

Venus's Blog 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java:类的加载过程,看完秒懂!

类的加载 (Class Loading) 是指 JVM 将编译后的.class文件中的二进制数据读取到内存中,并转换成 JVM 可以使用的对象的过程。

qq_56158663的博客 1282

[JVM] Java类的加载过程

此外,JVM还提供了一系列的类加载器,用于从不同的来源加载类的二进制数据,例如本地文件系统、网络、ZIP文件等。可以有多种方式触发类的初始化,例如创建类的实例、访问类的静态变量和调用类的静态方法等。总结起来,类的加载过程包括加载、验证、准备、解析、初始化等阶段,通过这些步骤,Java虚拟机将类的二进制数据加载到内存中,并初始化类的静态变量和代码,使得该类可以被正常使用。在Java中,类的加载是指在程序运行时将类的二进制数据加载到内存中,并转化为可以被JVM执行的形式的过程。这些变量包括静态变量和静态常量。

程序员三木的博客 1053

Java中类的加载过程

本文为Java后端面试自学内容,记于此以便学习和回忆,如有侵权或错误,欢迎讨论指教;如果转载请注明出处! Java源文件–>编译器–>字节码文件(.class/ jvm执行指令) 字节码文件–>Jvm------>机器码 加载过程就是将字节码文件加载到Jvm内存中。JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化。 加载 是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这.

深宵的晚风的博客 252

java类的加载的过程

在Java中,类的加载过程是通过类加载器(ClassLoader)来完成的,这个过程主要包括加载、链接和初始化三个阶段。

qq_39024424的博客 774

java中类的加载过程

类加载过程 java中类的加载包含了加载、验证、准备、解析和初始化这 5 个阶段。 1. 加载 注意:加载是类加载的一个阶段。 加载过程完成以下三件事: 通过类的完全限定名称获取定义该类的二进制字节流。 将该字节流表示的静态存储结构转换为方法区的运行时存储结构 在内存中生成一个代表该类的 Class 对象,作为方法区中该类各种数据的访问入口。 其中二进制字节流可以从以下方式中获取: 从 ZIP 包读取,成为 JAR、EAR、WAR 格式的基础。 从网络中获取,最典型的应用是 Applet。

qq_43548062的博客 262
上一篇: java虚拟机与程序的生命周期总结
下一篇: java类加载器
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值