当前位置: 首页 > news >正文

了解网站开发 后台流程详情页尺寸

了解网站开发 后台流程,详情页尺寸,wordpress iis rewrite,微信app小程序目录 1. 静态初始化(类加载阶段) 示例代码 输出 2. 实例初始化(对象创建阶段) 详细顺序 示例代码 输出 3. 关键规则总结 4. 注意事项 5. 完整流程图 在Java中,类的实例化过程(对象创建&#xff0…

目录

1. 静态初始化(类加载阶段)

示例代码

输出

2. 实例初始化(对象创建阶段)

详细顺序

示例代码

输出

3. 关键规则总结

4. 注意事项

5. 完整流程图


在Java中,类的实例化过程(对象创建)遵循严格的执行顺序,包含静态初始化、实例变量初始化、构造代码块(实例代码块)以及构造方法的执行。以下是详细的分步说明:


1. 静态初始化(类加载阶段)

当一个类首次被加载到内存时,执行以下步骤(仅执行一次):

  1. 父类的静态变量初始化和静态代码块(如果存在继承关系)。
  2. 子类的静态变量初始化和静态代码块
    • 静态变量和静态代码块的执行顺序由它们在代码中的声明顺序决定。
示例代码
class Parent {static {System.out.println("父类静态代码块");}static String parentStaticVar = initParentStaticVar();static String initParentStaticVar() {System.out.println("父类静态变量初始化");return "parent";}
}class Child extends Parent {static String childStaticVar = initChildStaticVar();static {System.out.println("子类静态代码块");}static String initChildStaticVar() {System.out.println("子类静态变量初始化");return "child";}
}
输出
父类静态代码块
父类静态变量初始化
子类静态变量初始化
子类静态代码块

2. 实例初始化(对象创建阶段)

每次通过new关键字创建对象时,执行以下步骤:

  1. 父类的实例变量初始化和实例代码块(如果存在继承关系)。
  2. 父类的构造方法
  3. 子类的实例变量初始化和实例代码块
  4. 子类的构造方法
详细顺序
  1. 父类实例变量初始化和实例代码块
    • 按照代码中的声明顺序执行。
  2. 父类构造方法
    • 默认调用父类无参构造方法(如果没有显式调用其他构造方法)。
  3. 子类实例变量初始化和实例代码块
    • 按照代码中的声明顺序执行。
  4. 子类构造方法
示例代码
class Parent {String parentVar = initParentVar();{System.out.println("父类实例代码块");}Parent() {System.out.println("父类构造方法");}String initParentVar() {System.out.println("父类实例变量初始化");return "parent";}
}class Child extends Parent {String childVar = initChildVar();{System.out.println("子类实例代码块");}Child() {System.out.println("子类构造方法");}String initChildVar() {System.out.println("子类实例变量初始化");return "child";}
}public class Main {public static void main(String[] args) {new Child();}
}
输出
父类实例变量初始化
父类实例代码块
父类构造方法
子类实例变量初始化
子类实例代码块
子类构造方法

3. 关键规则总结

  1. 静态优先于实例
    • 静态变量和静态代码块在类加载时执行,且仅执行一次。
  2. 父类优先于子类
    • 无论是静态初始化还是实例初始化,父类先于子类执行。
  3. 声明顺序决定执行顺序
    • 静态变量/代码块、实例变量/代码块的执行顺序由它们在代码中的位置决定。
  4. 构造方法最后执行
    • 构造方法中的代码在实例变量和实例代码块之后执行。

4. 注意事项

  1. 避免在构造方法中调用可被覆盖的方法

    • 如果父类构造方法调用了子类重写的方法,此时子类实例变量可能尚未初始化,导致意外行为。
    class Parent {Parent() {print(); // 危险:子类重写的方法可能访问未初始化的变量}void print() {System.out.println("Parent");}
    }class Child extends Parent {int value = 10;@Overridevoid print() {System.out.println("Child.value = " + value); // 输出0(未初始化)}
    }
    
  2. 静态变量依赖

    • 静态变量的初始化顺序可能导致依赖问题(如循环依赖)。

5. 完整流程图

类加载阶段:父类静态变量/代码块 → 子类静态变量/代码块对象实例化阶段:父类实例变量/代码块 → 父类构造方法 → 子类实例变量/代码块 → 子类构造方法

        通过理解这些规则,可以避免因初始化顺序导致的逻辑错误,例如变量未初始化、空指针等问题。


        这篇博客到这里就接近尾声了,希望我的分享能给您带来一些启发和帮助,别忘了点赞、收藏。您的每一次互动、鼓励是我持续创作的动力!期待与您再次相遇,共同探索更广阔的世界!

http://www.dtcms.com/a/479449.html

相关文章:

  • 2025年10月13日
  • 使用Reindex迁移Elasticsearch集群数据详解(上)
  • 网站设计 优帮云北京做网站公司电话
  • 上海高端网站制作公司专业网站设计建设服务
  • 大模型-CLIP 双编码器架构如何优化图文关联
  • [Qlib] `Model` | `fit` `predict`
  • 线程池Executors
  • 莆田企业网站建设网站建设的会计核算
  • Redis集群架构详解:如何实现高可用和高性能
  • 凤岗网站建设电商系统架构图
  • 知乎 上海做网站的公司自己做一个网站需要多少钱
  • 广州网站开发怎么做如何利用网站来提升企业形象
  • ESD防护设计宝典(八):能量的阀门——电源分配网络(PDN)设计
  • 怎么建设网站规划网站开场动画怎么做
  • 帝国cms怎么做网站地图竞价推广代运营公司
  • C语言--VSCode开发环境配置
  • 企业网站建设智恒网络山东网站营销seo哪家好
  • 12380网站建设打算手机网站建设liedns
  • 为什么做营销型网站网站的经营推广
  • 公章在线制作网站沈阳建设工程质量安全
  • vtkImageThreshold 图像阈值处理指南:从基础到实战优化
  • 佳木斯网站建设公司企业产品展示网站源码
  • MySQL8数据库高级特性
  • 遵义网站建设gzyhg设计一个网站多少钱
  • 设置自己的网站php+mysql网站开发...
  • C++ Builder XE在RzListView1中使用 Selected 属性获取行号,双击显示选中某行的行号
  • 广告制作公司的营业成本沧州网站建设优化案例
  • C语言多次输入过程中getchar()“被跳过”问题
  • Ubuntu安装hadoop
  • 海外网站cdn加速下载江苏建设工程网