java子父类初始化顺序 (1)父类静态代码块(2)父类静态变量初始化(3)子类静态代码块(4)子类静态变量初始化(5)main(6)有对象开辟空间都为0(7)父类显示初始化(8)父类构造(9)子类显示初始化(10)子类构造

标题 静态代码块与静态成员变量还要看代码的先后顺序

看程序,说出结果

 

 结果为:

 x=0

看程序,说出结果

结果如下:

 

补充 :

静态代码块:static{ } 在JVM加载时即执行,先于主方法执行,用于类的属性初始化

注意:静态代码块不能存在于任何方法体中

构造代码块:{} 放于类中,在构造方法调用时先于构造中其他代码执行

局部代码块:{} 放于某方法中,用于缩短变量生命周期 以释放空间

复制代码
package com.swift.gouzaodaimakuai;

public class Gouzaodaimakuai {
    
    public static void main(String[] args) {
        Gouzao gouzao = new Gouzao(3);  //构造代码块在构造函数被调用时执行, 先于构造中其他代码,作用是给对象统一初始化数据;
        System.out.println(gouzao);
    }
}
class Gouzao{
    int id;
    String name;
    {
        this.id= 5;
        this.name = "测试";
        System.out.println("这是构造代码块");
    }
    Gouzao(int id){
        this.id = id;
    }
    public String toString(){
        
        return "name: "+this.name +"  ,   "+"id: "+ this.id ;
    }
}
复制代码

 

 

posted @   Advancing-Swift  阅读(850)  评论(3编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示