类初始化和实例初始化过程
类初始化过程
①,一个类要创建实例需要先加载并初始化该类
--》main方法所在的类需要先加载和初始化
②,一个子类要初始化需要先初始化父类
③,一个类初始化就是执行<clinit>() 方法
--》<clinit>() 由静态类变量赋值代码和静态代码块组成
--》静态类变量赋值代码和静态代码块从上往下执行
--》<clinit>() 方法只执行一次
实例初始化过程
①,实例初始化就是执行<init>()方法
--》<init>()方法可能重载有多个,有几个构造器就有几个<init>()方法
--》<init>()方法是由非静态实例变量显式赋值代码和非静态代码块,对应构造器代码组成
--》非静态实例变量显式赋值代码和非静态代码块从上往下执行,而对应构造器方法最后执行
--》每次创建实例对象,调用对应构造器,执行的就是对应的<init>()方法
--》<init>方法的首行是super(),即对应父类空参的<init>方法
非静态方法前面其实有一个默认的对象this
this 在构造器(或<init>)它表示的是正在创建的对象,当子类在实例化时
父类的实例方法前面的this就是子类对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)