类加载机制,类加载顺序

Java ClassLoader 类加载 机制 顺序 Java ClassLoader 类加载机制与顺序 阅读详情

类加载顺序

①类加载从上往下执行,依次执行静态的初始化语句和初始化块,而且类加载优先于对象创建。(静态初始化语句和初始化块只加载一次)

②创建本类的对象时,从上往下执行一次非静态的初始化语句和初始化块,然后执行构造函数。

③创建另一个类对象时;先加载另一个类的静态语句和静态初始化块(同样也是第一次才会加载他的静态语句和初始化块,仅执行一次)。然后在加载其它类的非静态的初始化语句和初始化块,然后执行构造器函数。

④静态此语句初始化时可以创建类对象

⑤静态方法可以只加载不调用

class HelloA {
    public HelloA() {
        System.out.println("HelloA");
    }

    {System.out.println("I'm A class");}

    static {System.out.println("static A");}
}

public class HelloB  extends HelloA{
    public HelloB() {
        System.out.println("HelloB");
    }

    {System.out.println("I'm B class");}

    static {System.out.println("static B");}

    public static void main(String[] args) {
        new HelloB();
    }
}

其结果如下:

 

HFSS新手避坑指南:从零搭建T形波导功分器(含参数扫描与优化实战) 本文为HFSS新手提供T形波导功分器设计的详细指南,涵盖基础设置、建模技巧、参数扫描与优化实战。重点解析内场分析中的常见陷阱,如单位设置、波端口定义和布尔运算错误,并分享优化设计的关键步骤,帮助工程师快速掌握HFSS在微波器件设计中的应用。 阅读详情

相关推荐

【读代码】TradingAgents:基于多智能体LLM的金融交易框架深度解析

TradingAgents是由Tauric Research团队开源的创新型金融交易框架,其核心思想是通过多智能体协作系统模拟专业交易机构的决策流程。项目采用模块化设计,整合了LLM、实时数据分析、风险控制等组件,实现了从市场分析到交易执行的完整闭环。

kakaZhui的博客 2004

类加载顺序和类初始化顺序

i)、java编译器加载类的二进制字节流文件(.class文件),如果该类有基类,向上一直加载到根基类(不管基类是否使用都会加载)。顺序是:父类静态优先--子类静态---父类的所有非静态(块和构造器)----子类的所有非静态(块和构造器)1.父类的静态代码块和父类的静态变量初始化(至于他俩的先后顺序完全是由他们在代码中的顺序所决定的)。类的加载和链接只执行一次,故static成员也只加载一次,作为类所拥有、类的所有实例共享。类加载器采用双亲委托(自底向上查询)来避免重复加载类,而加载顺序却是自顶向下的。

weixin_47796247的博客 810

树莓派4在Bookworm Raspbian系统下无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)

本文记录了这段比较坎坷的探索之路,由于你的问题不一定是我最终解决方案的,可能是前面探索路上试过的,所以建议按顺序看排除前置问题。 双十一又买了个树莓派 4B,插上之前树莓派 4B 的 TF 卡直接就能使用(毕竟是一样规格的)。但是由于用来连接硬盘的 USB 线是坏的,我以为是系统问题就进行了重装(所以坏掉的线还是直接扔了好)。 重新安装系统就装了最新的 2023-10-10 版本的 64 位的 Raspberry Pi OS,但是出现了一个问题: 启动后出现彩色画面,然后一直黑屏。

ZhongUncle的博客 3735

关于类的静态加载顺序

关于类中静态变量和静态方法以及构造方法之类的加载顺序问题现在成了面试中的基本问题,今天闲来无事,就写一篇博客来记述一下。 1、如果只是某个类自身的内部的情况 package com.cn.bb; public class TestParentStatic { static{ System.out.println("父类静态代码块first"); } pri

慕言的博客 1140

World Action Model:经典论文

郑困时,图prorpt为机量人压务时,退过驱制解弱词表(constrsinsd decoding), 强附模型只从.256个者动作token中保H, B象总注活地。始VLA之一,RT-2使用了大量的五联网VQ据与少里的机械网的AcSonDat行CoFine-Tunng, 独组sl, 共i744个episode,Mous使用三个专累模,分是vidogonmedel,actonesget,understandng。包的核定之的的观到沟血黄动作,预之后现(vorlemodel),tseing,2。

u013250861的博客 410

博途 V15.1安装步骤

温馨提醒:安装此软件电脑配置至少应满足以下要求 处理器 CoreTM i5-3320M 3.3 GHz 或相当 内存 至少8G 硬盘 300 GB SSD 显示器 15.6' 宽屏显示 (1920 x 1080) 1.双击打开【Siemens v15.1】文件夹。 2.鼠标右击【STEP 7 BasicProfess...

谢谢关注“小鱼教你模数电”,各平台同号 9万+

类的加载顺序

记住 3 条原则: 1、父类优先于子类 2、属性优先于代码块优先于构造方法 3、静态优先于非静态 因此,类加载顺序为: 父类静态变量-> 父类静态语句块-> 子类静态变量-> 子类静态语句块-> 父类普通成员变量-> 父类动态语句块-> 父类构造器-> 子类普通成员变量-> 子类动态语句块-> 子类构造器

qq_56501283的博客 599

AI赋能软件测试:从冒烟测试到全流程智能化的效率革命

软件测试是确保软件质量的关键环节,其核心原理是通过预设用例验证系统功能是否符合预期。传统测试方法依赖人工编写和维护脚本,面临维护成本高、适应性差等挑战。随着人工智能技术的发展,特别是自然语言处理和计算机视觉的成熟,AI为测试领域带来了新的技术价值。通过让AI理解应用界面和业务逻辑,可以实现测试用例的智能生成、自主执行和结果分析,显著提升测试效率和覆盖率。在实际应用场景中,AI驱动的冒烟测试能够动态适应UI变化,自动分析失败日志,将测试人员从重复劳动中解放出来,专注于更复杂的质量策略设计。本文基于AI在冒烟测

weixin_28841265的博客 308

JAVA中静态块、静态变量加载顺序详解

public class test { //1.第一步,准备加载类 public static void main(String[] args) { new test(); //4.第四步,new一个类,但在new之前要处理匿名代码块 } static int num = 4; //2.第二步,静态变量和静态代码块.

cherry_vicent的专栏 323

MTK Android 12 Clone Project 克隆项目

本文介绍了如何使用MTK Android 12 Clone Project 克隆一个新的项目。通过使用绝对路径执行Perl脚本,并根据需要选择升级或降级位数,可以成功地生成一个新的项目并进行编译。希望本文对xdm有所帮助。

我其实什么都不会 942

python爬取银行年报2

python爬取公司年报(巨潮资讯网)

bboysteed的博客 4731

类加载时静态成员执行顺序&new 对象时对象成员的执行顺序

执行如下代码: package com.java.oop; class ClassCC{ static ClassCC instance=new ClassCC(); static { System.out.println("static{}"); } public ClassCC() { System.out.println("ClassCC()"); } } public...

solo的博客 759

无人飞行器和车辆的协同配送物资问题——附带MATLAB代码

通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们首先需要建立一个城市地图,包括物资点、无人飞行器的起始点和车辆的起始点。

CyberJolt的博客 950

Java类加载机制、初始化顺序

目录 一、类加载过程 1.1、加载 1.2、链接 1.3、初始化 二、类初始化时机 2.1、只有在对类主动使用的时候才会导致类的初始化,类的主动使用包括以下六种: 2.2、子类和父类初始化顺序(针对属性、代码块、构造方法) 三、类的生命周期 四、类加载机制 4.1、类加载器 4.2、类加载机制的分类 4.3、关于双亲委派机制 一、类加载过程 类加载过程分为加载、链...

LeeeeC的博客 1195

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java类的加载机制(类加载和初始化顺序)

Java类加载机制中最重要的就是程序初始化过程,其中包含了静态资源,非静态资源,父类子类,构造方法之间的执行顺序。这类知识经常会出现在面试题中,如果没有搞清楚其原理,在复杂的开源设计中可能无法梳理其业务流程,是java程序员进阶的阻碍。 首先通过一个例子来分析java代码的执行顺序: public class CodeBlockForJava extends BaseCodeBlock { { System.out.println("这里是子类的普通代码块");

augsm的专栏 724

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【JVM虚拟机】Java双亲委派机制_同个类加载器的加载顺序_由顶向下进行加载的顺序

本文基于《瑞_JVM虚拟机_类加载器》对双亲委派机制的研究下,对应用程序类加载器(同一个类加载器)去加载一个全限定名相同的类但是类的内容不同的两个类,补充阐述和验证其由顶向下进行加载的顺序

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1187

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JVM类加载机制—加载的顺序问题

文章目录1、代码2、运行结果:3、分析: 1、代码 package com.aop8.classload; public class Demo01 { static { System.out.println("静态代码块Demo01"); } public static void main(String[] args) { System.out.println(&a

猎人在吃肉 950

类加载机制、类加载顺序

1 类加载顺序 Java 的类加载过程可以分为 5 个阶段:载入、验证、准备、解析和初始化。这 5 个阶段一般是顺序发生的,但在动态绑定的情况下,解析阶段发生在初始化阶段之后。 1)Loading(载入) JVM 在该阶段的主要目的是将字节码从不同的数据源(可能是 class 文件、也可能是 jar 包,甚至网络)转化为二进制字节流加载到内存中,并生成一个代表该类的java.lang.Class对象。 2)Verification(验证) JVM 会在该阶段对二进制字节流进行校验,只有符合...

藏起来的心跳 2635

类加载机制及类加载顺序

类加载机制概述:      虚拟机把描述类的数据从Classe文件加载到内存,并对数据进行检验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类加载的时机: 类加载的生命周期:加载、连接(验证、准备、解析)、初始化、使用和卸载 加载时机:Java虚拟机规范中并没有进行强制约束,由虚拟机自由把握。 连接时机:加载之...

假人一个的博客 533

Java杂谈3——类加载机制与初始化顺序

Java语言的哲学:一切都是对象。对于Java虚拟机而言,一个普通的Java类同样是一个对象,那如果是对象,必然有它的初始化过程。一个类在JVM中被实例化成一个对象,需要经历三个过程:加载、链接和初始化。 JAVA类的加载   加载:从字节码二进制文件——.class文件将类加载到内存,从而达到类的从硬盘上到内存上的一个迁移,所有的程序必须加载到内存才能工作。一个Java类在被加载到内

一个执着的程序员 924

Java 理解类的加载机制 类加载顺序 类初始化过程 实例初始化过程

一、代码如下 1、创建一个Father类,包含实例变量、静态变量、静态代码块、构造方法、构造代码块、实例方法、静态方法 **@Description: 理解类的加载机制 * @version v1.0 * @author w * @date 2021年8月14日上午8:58:24 */ public class Father { // 实例变量 private int i = test(); // 静态变量 private static int x = metho...

HaHa_Sir的博客 2665

类加载机制与初始化顺序

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34352449的博客 100

Java类加载机制(初始化顺序)

之前写过一篇关于Java中普通代码块和static代码块的区别,大致讲解了普通代码块和Static代码的区别,但是并没有讲它们的加载执行顺序,本章就细细的将一下类的加载机制(初始化顺序)。 类生命周期 类的字节码从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resoluti

feigeswjtu的专栏 2506

java类验证和装载顺序_java学习:类加载机制的详细解析

深入理解类加载机制说明:开始正文之前,我想先说一下写这些文章的目的和好处,主要是可以使自己对学习的东西做一个总结,有时候花费很长的时间学了一些东西,理顺了一些思路,可是过几天再回想这些东西的时候还会变得模糊,所有又要花费时间找相关资料,翻看资料。而现在自己做这样一个总结,不但可以对新学习的知识做一个巩固加深,还有就是即使将来回头翻看的时候也有一个集中的资料和大致的思路,可以快速恢复记忆;以前总是手...

weixin_39879522的博客 166
上一篇: 单元自测Java 单元测试规范
下一篇: Collection 中的简单命令
Bug_marker
博客等级 码龄5年 15粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值