类的初始化顺序

机器学习模型系列:随机森林的原理和示例介绍 让我们总结一下与其他监督式机器学习模型相比,随机森林的优缺点。优点在许多真实数据集上已知能提供高度准确的模型。通过结合多个决策树的预测,可以捕捉数据集中的复杂交互和模式。通过自动选择相关特征,可以有效处理高维数据集。与单个决策树相比,不容易过拟合。自助采样和每个节点的随机特征选择有助于减少过拟合并改善泛化能力。可以处理包括数值和分类特征在内的异构数据类型。可以处理缺失值而不需要填充。提供特征重要性的度量。集成中的树可以并行训练,因为每个决策树可以独立构建。模型的泛化误差具有理论上的界限。 阅读详情

今天,在手机上做面试题,是有关类的初始化。

这里直接上代码:

public class test8  extends A{
	test8(){
		super("B");
		System.out.print("B");
	}
	public static void main(String[] args) {
		new test8();
	}
}
class C{
	C(){
		System.out.print("C");
	}
}
class A{
	C c = new C();
	A(){
		this("A");	
	}
	A(String s){
		System.out.print(s);
	}
}
打印结果为:CBB


上面是一个简单的例子,首先初始化类test8,这里会调用该类的无参构造方法,在无参构造方法

调用了超类中带参数的构造方法(继承了类A),而在类A中,又创建了C类的对象c,根据打印的

结果说明:c对象的创建在类A的构造函数调用之前,也就是说在调用super('B')时,会先初始化

成员变量。(这么说不知道对不对)


下面再给出一个详细的例子来说明:

public class test1 {
	public static void main(String[] args) {
		C c = new C();
	}
}

class A{
	int a = 0;
	Method m = new Method(a);
	static int a1 = 10;
	static{
		System.out.println("A:执行静态代码块A"+a1);
	}
	
	{
		System.out.println("非静态代码块A");
	}

	public A(){
		System.out.println("a:"+ a);
	}
}

class B extends A{
	int b = 1;
	Method m = new Method(b);
	static int b1 = 20;
	static{
		System.out.println("B:执行静态代码块B"+b1);
	}
	
	{
		System.out.println("非静态代码块B");
	}
	
	public B(){
		System.out.println("b:"+ b);
	}
}

class C extends B{
	int c = 2;
	Method m = new Method(c);
	static int c1 = 30;
	static{
		System.out.println("C:执行静态代码块C"+c1);
	}
	
	{
		System.out.println("非静态代码块C");
	}
	
	public C(){
		System.out.println("c:"+ c);
	}
}

class Method{
	public Method(int i){
		System.out.println("打印数据:" + i);
	}
}
打印结果为:


这里分析一下:在主函数创建类C的对象并初始化的过程:

1、C类继承B类、B类继承A类,A是B的父类,B是C的父类;

2、调用A类的静态代码块和静态变量,打印“A:执行静态代码块A10”

3、调用B类的静态代码块和静态变量,打印"B:执行静态代码块B20"

4、调用C类的静态代码块和静态变量,打印"C:执行静态代码块C30"

5、调用A类的普通成员变量和代码块,再调用A类的构造方法

6、调用B类的普通成员变量和代码块,再调用B类的构造方法

7、调用C类的普通成员变量和代码块,再调用C类的构造方法,打印完毕


这里我们可以看出类的初始化过程,首先按照顺序初始化父类中的静态变量和静态代码块,然后

初始化子类中的静态变量和静态代码块,再就是初始化父类中的普通成员变量和代码块,再调用

父类的构造方法,最后初始子类中的普通成员变量和代码块,再调用子类的构造方法。


YOLOv11涨点改进| TPAMI 2026 |独家创新首发、Conv改进篇| 引入LPM 局部先验特征增强模块,更加聚焦于目标区域并抑制背景干扰,助力目标检测、图像分割、图像恢复、图像增强有效涨点 🔥本文提出了一种改进YOLOv11网络的LPM(局部先验特征增强)模块,通过构建重要性图引导特征提取过程,使模型更聚焦目标区域并抑制背景干扰。LPM模块通过注意力机制强化关键区域信息,优化特征分布,提升小目标和复杂场景下的检测性能。实验表明,该模块在保持轻量结构的同时,显著提高了检测精度和鲁棒性。文章详细介绍了LPM的结构原理、核心代码实现方法,并提供了4种改进配置方案(yolov11n_LPM.yaml等),指导用户如何集成该模块到YOLOv11网络中。这些改进方案通过多阶段特征融合逐步强化细节表达. 阅读详情

相关推荐

紫光同创FPGA中ADF网表文件的黑匣子封装与PDS环境实战指南

本文详细介绍了在紫光同创FPGA开发环境中使用ADF网表文件进行黑匣子封装的实战指南。通过PDS环境配置、加密ADF生成、黑匣子集成及验证调试等步骤,帮助开发者实现核心IP保护,同时保持设计性能。特别适用于需要模块级代码保护的企业级FPGA开发场景。

weixin_33725239的博客 340

初始化顺序

1.先初始化多层父类和自身的static属性,顺序是最上层父类先初始化,最后到最下层子类。 2.然后初始化最上层父类的属性,然后初始化最上层子类的构造器,(上层父类构造器的初始化要看子类的构造器中有没有显示调用父类构造器,如果有使用子类构造器调用的参数值) 3.然后初始化子类的属性及构造器。 ...

chenshiting63331的博客 495

Python制作【大麦网】自动抢票程序

Python 的迅速崛起对整个行业来说都是极其有利的,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。如果你对Python感兴趣,想要学习pyhton,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓点击这里。

mate1357的博客 2万+

一网打尽:类的初始化过程

我想关于类的初始化,一定有很多人有困惑的地方,想谈一次对类的初始化流程的理解。 文章目录1. 类的初始化时机1.1:通过子类引用父类的静态变量,不会导致子类初始化1.2:通过数组定义来引用类不会触发此类的初始化1.3:常量在编译阶段会存入调用类的常量池中,本质上没有直接引用到定义常量的类,因此不会触发定义常量的类的初始化2. 初始化代码块介绍2.1 构造代码块2.1.1 构造代码块优先于构造函数执...

你今天真好看呀 728

七步设计高频变压器

七步设计高频变压器

m0_71394959的博客 5400

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 333

笔试题记录1

下列代码输出结果为: import java.util.*; class C {     C() {         System.out.print("C");     } }   class A {     C c = new C();       A() {         this("A");         System.out.print("A

无间空道的博客 568

在 SAP ABAP 里可靠地对接 FTP 服务器:从连接、命令到传输与排错的完整实战

本文详细介绍了在SAP ABAP中实现FTP文件交换的完整技术方案。文章首先解析了FTP协议的双连接特性(控制连接与数据连接),强调保持控制连接的重要性。随后详细说明了ABAP中FTP操作的四步标准流程:建立连接(包含HTTP_SCRAMBLE加密)、执行命令、断开连接和关闭RFC通道。文章提供了实战案例代码,演示如何将FTP文件复制到应用服务器再读取进内表处理,特别指出后台作业与前台操作的关键差异。最后总结了常见错误排查要点,包括连接模型、路径设置和资源释放等问题。全文通过SAP标准函数模块的调用顺序、典

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 303

JAVA类初始化顺序总结

类的初始化 {#articleHeader1} 初始化顺序 首先来看下,当一个类从main入口方法,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序: public class ClassLoadTest { private static User user = new User(); static { System.err.println("static code block...

luoyoub的博客 1万+

到底什么是Harness工程?一篇文章从入门到企业落地全解析

随着OpenClaw爆火,Harness Engineering(驾驭工程)成为AI编程时代的热门概念,很多小白对其感到陌生。本文用通俗类比和真实案例,避开复杂术语,从基础定义入手,讲清Harness Engineering的核心逻辑——人类工程师设计“约束系统”(马具),让AI模型(烈马)安全高效地完成代码工作,同时拆解其核心组件、企业落地场景和实战成果,帮小白快速入门,读懂这项能解放人力、提升效率的新技术,轻松掌握它的核心价值和落地思路。

program哲学 3256

论文必备 - YOLOv11热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式

本文带来的是YOLOv11热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。

Limiiiing的博客 5503

Java中类初始化的顺序

在Java中,一个类包含静态变量、静态初始化块、变量、初始化块、构造器,它们初始化的顺序依次是(静态变量、静态初始化块) --> (变量、初始化块) --> 构造器。 public class Test { //静态变量 public static String strStatic = "静态变量"; //变量 public String strPublic = "变量...

Xununan的博客 405

MicroCap声学仿真介绍(四)-扬声器仿真

将“障板”模块放置到工作区,“Param:AREAm2=”是指的是障板孔的面积,一般可以输入喇叭的面积Sb;“Param:DISTm=”指的是测试麦克风与障板的距离,这里我们可以填入1米,小喇叭可以填入0.1m;此时工作区的电阻是竖直的,为了方便,我们需要将其变成水平的。其中,频率范围为20~20KHz,仿真点数为500个点,先仿真频响曲线和相位曲线,点击左上角的run,界面如下。鼠标单击工作区,弹出如下界面:在弹出的界面中输入“.define Re 3.82 “,点击”确定“按钮。

山无忧的博客 2993

类初始化顺序

前言 Class类中有静态属性、代码块、非静态属性…等诸多元素时,如果不清楚各个元素的初始顺序,那么很有可能会写出一些匪夷所思的代码。正因为其如此重要,所以博主写了个例子,很容易就能知道他们的初始顺序 初始化顺序 话不多说,直接上代码: class Display { public static int parentStaticField() { System.out.pr...

Sicimike的博客 2180

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java类初始化顺序

一个Java类中会定义各种变量、方法和代码块。其中方法和代码块从存在的意义上来讲,都是为了操作这些变量的。所以就笔者个人理解,类的主体该是变量,方法和代码块是为变量而存在的。 变量值的改变有两种情形,一是在进行初始化的时候,而是在方法中对其进行操作的时候。变量值改变的先后顺序将直接影响到程序运行的正确与否,所以理正确理解变量值在Java中如何改变对于一个优秀码农来说,显得尤为重要。就以上两种

Mr_Leixiansheng的博客 549

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java类的初始化顺序

对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。 初始化顺序图示: 测试代码如下: package com.trs.oop; /** * 类的初始化顺序 * 静态变量->静态初始化块->变量->初始化块->构造器 * @author xiayunan...

乐点的博客 196

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

类的初始化顺序详解

前言 先声明一个常识,类域和局部变量初始化的差异如下, 局部变量不初始化会报错: 类中属性(也称域)不赋初值,默认为0,如果是引用默认为空。 正题 一、类中属性按照定义的顺序初始化 我们声明一个Child类,拥有两个构造方法: 我们在Main类中创建Child的两个对象: 输出结果: 结论:就算类中属性散乱定义在不同地方,初始化也会严格按照先后顺序执行...

启示录 3195

类中各成员初始化顺序以及变量初始化顺序

类成员初始化执行顺序 代码示例: class Father { static{ System. out.println("父类静态代码块初始化" );//1 } { System. out.println("父类代码块初始化" );//4 } private static String s=print(); pu...

LazyBones的博客 666

Java类初始化顺序

文章目录一、Java类初始化顺序说明二、初始化顺序三、总结普通类:继承的子类:抽象的实现子类: 接口 - 抽线类 - 实现类接口注意: 一、Java类初始化顺序说明 一个类中包含如下几类东西,他们前后是有顺序关系的 1.静态属性:static 开头定义的属性 2.静态方法块: static{}圈起来的方法块 3.普通属性:未带static定义的属性 4.普通方法块:{}圈起来的方法块 5.构造函数...

Tang 330

java类的初始化顺序

java类的初始化顺序 有关java类的初始化顺序: 最重要的有两点 : 1. 父类初始化顺序优先于子类 2. . 静态的初始化优先于非静态 但是记忆中具体的顺序总是和实际的初始化顺序有些许的出入,为了加深记忆和理解, 自己专门写了一个类来测试类的初始化顺序 测试代码如下: /** * @author xmr * @date 2019/2/28 10:48 * @description *...

.... 307

java 类初始化的顺序_Java类的初始化顺序

对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:public classInitialOrderTest {//静态变量public static String staticField = "静态变量";//变量public String field = "变量"...

weixin_42166918的博客 590

java类初始化顺序_Java 类的初始化顺序

静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行执行顺序优先级:静态块,main(),构造块,构造方法1. 构造函数public 关于构造函数,以下几点要注意: 1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的。 2.构造函数的作用是用于给对象进行初始化。 3.一个对象建立,构造函数只运行一次,...

weixin_39547596的博客 125
上一篇: Spring事务管理例子
下一篇: 关于IE上embed自动播放
ClumsyCoder
博客等级 码龄10年 2粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值