static关键字

本文详细介绍了Java中的static和final关键字。static用于声明静态变量、静态方法和静态代码块,它们在类加载时初始化并共享给所有实例。final则用于修饰变量、方法和类,确保其不可变或不可重写。static主要应用于共享成员变量和方法,如常量和主方法。final常用于定义不可修改的值或防止类被继承。文章还提供了static和final的使用场景及示例。
摘要由CSDN通过智能技术生成

static静态变量

被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。静态变量由于不属于任何实例对象,是属于类的,所以在内存中只会有一份,在类的加载过程中,JVM为静态变量分配一次内存空间。

static静态方法
被static修饰的方法也叫做静态方法,因为对于静态方法来说是不属于任何实例对象的,那么就是说在静态方法内部是不能使用this的,因为既然不属于任何对象,那么就更谈不上this了。 最常见的就是main方法,因为在程序开始执行时必须调用main() ,所以它被声明为static。

static静态代码块
用static修饰的代码块表示静态代码块,当JVM加载类时,就会执行该代码块,每个代码块按序执行且只会被执行一次。

final
1、fianl参数
final修饰属性:当一个属性被final所修饰时,表示该属性不能被改写。
2、fianl方法
final修饰方法:当一个方法被final所修饰的时,表示该方法是一个终态方法,即不能被重写(Override)
3、fianl类
final修饰类:当一个类被final所修饰时,表示该类是一个终态类,即不能被继承。
4、补充
当final修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化(比如说不能从10变为20);如果final修饰一个引用类型时,表示该引用类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。
总结:
static final用来修饰成员变量和成员方法,
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问。

package caozuo;

class Test {

    static{
        System.out.println("test static 1");
    }

    static{
        System.out.println("test static 2");
    }

    public static void main(String[] args) {
        //static的主要意义是在于创建独立于具体对象的域变量或者方法
        //以致于即使没有创建对象,也能使用属性和调用方法!
        //在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
        //static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。
        // static块可以置于类中的任何地方,类中可以有多个static块

    }

}

static应用场景
因为static是被类的实例对象所共享,因此如果某个成员变量是被所有对象所共享的,那么这个成员变量就应该定义为静态变量。

因此比较常见的static应用场景有:
1、修饰成员变量
2、修饰成员方法
3、静态代码块
4、修饰类【只能修饰内部类也就是静态内部类】
5、静态导包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值