Java中的static关键字

本文围绕Java中的static关键字展开。介绍了其用途,包括修饰方法可直接调用,修饰全局变量被对象共享且仅初始化一次,修饰代码块可优化性能;还说明了static的顺序,如变量按定义先后、代码块按出现先后初始化或执行,创建变量时先执行构造函数再执行static内容。

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

Java中的static关键字

刚开始接触Java语言时,就发现有的变量前面有static,有的前面则没有。不是很理解static的作用,上网查找后也只有
在这里插入图片描述
这样的形容,依然不清楚改在什么情况下使用static,只能模仿或者随缘,所幸没有什么严重后果。在经历了一系列实验、摸索后,再结合网上的资料,对static作出如下总结。

static的用途

1. 修饰方法

在没有static的情况下,如果想要调用一个类中的方法,我们需要先创建一个该类型的变量。再用变量.方法名的方式调用方法。

public class Example{
    private int x = 1;
    public int getX(){
        return x;
    }
}

public class Work{
    Example test = new Example();
    test.getX();
}

而若方法前有static,则不用创建变量,直接调用方法即可。

public class Example{
    private int x = 1;
    public static int getX(){
        return x;
    }
}

public class Work{
    getX();
}

2. 修饰变量

首先要注意的是,Java的语法规定,static只能修饰类中的全局变量,而不能修饰局部变量。

其次,static修饰的变量,被所有有权限的对象共享,在内存中只有一个,且只在类第一次被加载时初始化。而非static变量则在每次创建对象时就会被新建且初始化,内存中有多个副本,互不干扰。

所以在使用static变量时,要注意变量每次的修改,是否会对其他部分产生影响。

3. 修饰代码块

static修饰代码块与修饰变量类似,只是将变量变成了一段程序。

static类型的代码块只在类第一次被加载时执行。因此,常用static修饰代码块,将每次都会执行的部分抽出来,放在static 中。以达到节省空间、时间,优化程序性能的目的。

static的顺序

类中有多个static修饰的变量时,按照变量定义的先后顺序初始化。
类中有多个static修饰的代码块时,按照代码块出现的先后顺序执行。

如果创建了某个类型的变量,则先执行该类型constructor中的内容,再执行该类中的static内容。

public class Example{
    static{
      System.out.println("A");
    }
    
    public Example(){
        System.out.println("B");
    }
}

public class Work{
    Example test = new Example();
}

输出结果:
B
A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值