static--修饰代码块

C和Java程序中,一对花括号将多行代码封装在一起的程序段称为代码块。按照位置和修饰符将Java程序代码块分为3种:①普通代码块,成员方法中的代码块称为普通代码块;②构造块,类中的代码块称为构造块;③静态构造块,static修饰的构造块称为静态构造块。
声明和构造代码块

语法格式

class 类名 {
    //定义数据成员
    {                    //构造块
        语句块;
    }
    static{
        语句体块
    }
    //类体其他语句
}

案列展示

package jsu.luca.com;

public class chapter2 {
    private String slogan  = "* 吃饭当节俭,粒粒皆辛苦! *";
                                                //私有数据成员
    private static String info = " *    一个静态成员     *";
                                                // 私有静态成员数据
    static int staticNum = 1;//静态构造块运行次数
    static int commNum = 1;//构造块运行次数
    static {//静态构造块
        System.out.println(  "*    静态构造块运行次数:"+chapter2.staticNum +"    *");
        System.out.println(chapter2.info);//输出静态成员
        chapter2.staticNum ++;//静态构造块运行次数+1
        
    }
    {//构造块
        System.out.println(  "*    构造块运行次数:"+chapter2.commNum +"    *");
        System.out.println(chapter2.info);//输出静态成员
        System.out.println(this.slogan);//输出非静态成员
        System.out.println(   "*   构造块结束     *");
        chapter2.commNum ++;//构造块运行次数+1
    }
    private chapter2 (){//构造方法
        System.out.println(    "*      调用构造方法     *");
    }
}
public class Demo {
    public static void main (String [] args) {
        new chapter2 ();//创建匿名对象
        System.out.println("\n====注意!下面没有执行静态构造块!");
        new chapter2 ();//创建匿名对象

    }
}

JVM加载类时仅执行一次静态构造块,如果类体中包含多个静态构造块,JVM按照它们在类体的顺序依次执行,每个静态构造块仅被执行一次。每次实例化对象时,JVNM按照构造块出行的顺序依次加载,即每个构造块将被加载多次。

实例化对象是JVM加载静态构造块、构造块和构造方法流程如下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值