static静态代码块

class StaticCode
{
    static String country;
    static
    {
        country="China"; 
        System.out.println("StaticCode is loading !!");
    }
   
}
public class TestStaticCode
{
    static
    {
        System.out.println("TestStaticCode is loading!!");
    }
   
    public static void main(String[] args)
    {
        System.out.println("begin main method !!");
        new StaticCode();
        new StaticCode();
    }
}

 

 

 输出结果为

TestStaticCode is loading!!

begin main method!!

StaticCode is loading!!
==================================================================================

程序要进入main方法 首先要加载TestStaticCode这个类

从而要执行定义在这个类的静态代码段

输出 TestStaticCode is loading!!

当程序运行到 第一次出现StaticCode时 就会加载StaticCode这个类从而执行这个类的静态代码段

由于静态代码段只在类第一次加载时才执行 也就是第一个 new StaticCode(); 时才执行

后面不论你出现了多少个StaticCode都不会再次执行

而且静态代码段
不依赖于类的实例化 只要你的程序执行过程中第一次碰到了StaticCode就会马上执行静态代码

不信你把两个new语句去掉 换成

StaticCode s = null;

声明一个StaticCode 的空引用 程序也会执行静态代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值