Static java关键字静态

本文通过实例讲解了Java中static修饰的常量和方法的特性。静态常量在类加载时即被初始化,全局唯一且不可变,如银行卡号。static方法也随着类的加载而加载,不依赖于对象实例。示例代码展示了多个类如何共享同一静态常量,并通过main方法执行验证了类加载顺序和静态块的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,static 修饰的常量为静态常量,该常量属于该类【注意不是对象,因为没有创建该类的对象也能使用它】,该常量只会在类第一次加载的时候生成,被jvm分配内存空间。举个生活中的例子,我有一张银行卡,我去超市,商场,食堂都是需要这一张银行卡消费,那么这张银行卡就可以是一个静态常量【然后因为这个银行卡我不想信息能被更改,使用final修饰,那么就是一个不变的常量】
上代码 :

对象我自己

public interface People {
    public static final String CardNo="1234567"; //使用static能保证被其他人即使不生成对象也难访问
                                                   //使用final能保证银行卡信息的全员共享是一样的,不被修改

}

超市

public class SuperMarket implements People{
    {
        System.out.println("超市使用的银行卡:"+People.CardNo);
    }
}

商场

public class Market implements People {
    {
        System.out.println("商场使用的银行卡:"+People.CardNo);
    }
}

食堂

public class Canteen implements People {
    {
        System.out.println("食堂使用的银行卡:"+People.CardNo);
    }
}

消费

public class Constant {
    public static void main(String[] args) {
        SuperMarket superMarket = new SuperMarket();
        Market market = new Market();
        Canteen canteen = new Canteen();
    }
}

生成结果:
在这里插入图片描述
2,static修饰方法
static修饰的方法也是会在类第一次加载的时候加载,
test1类

public class Test1 {
    public Test1() {
        System.out.println("test1的构造方法");
    }

    {
        System.out.println("test1的初始化");
    }

    static {
        System.out.println("test1的静态常量的加载");
    }
}

test2类

public class Test2 extends Test1 {
    public Test2() {
        System.out.println("test2的构造方法");
    }
    {
        System.out.println("test2的初始化");
    }
    static {
        System.out.println("test2的静态常量的加载");
    }
}

test3类

public class Test3 extends Test2 {
    public Test3(){
        System.out.println("test3的构造方法");
    }
    {
        System.out.println("test3的初始化");
    }
    static {
        System.out.println("test3的静态常量的加载");
    }
}

测试类

public class StaticTest {
    public static void main(String[] args) {
        Test3 test3 = new Test3();
        System.out.println("----------------------");
        Test2 test2 = new Test2();
    }
}

测试结果在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值