static关键字用于声明属于类本身而非实例的成员,无需实例化即可通过类名访问。主要包括静态变量、静态方法、静态代码块和静态内部类,可实现内存共享、工具函数、全局配置及计数器等场景,具有类级别归属特性。
static关键字绝对算得上高频使用的存在,但很多初学者容易在“静态”和“非静态”之间绕晕。简单来说,它的作用就是声明“属于类本身、而非某个具体实例”的成员。这意味着,不需要通过new创建对象,直接用类名就能访问这些成员——省内存、方便共享,非常适合做工具函数、全局配置或计数器这类场景。
至于具体有哪些用法,咱们拆开来看,其实就四个主要方向:静态变量、静态方法、静态代码块和静态内部类。下面逐一说明。

静态变量在类加载时就已经初始化,所有实例共用同一份内存空间。这就像整个班级共用的一块黑板——任何同学写上去的内容,其他人都能看到,也能修改。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
类名.变量名 直接访问,不需要先 new 一个对象。this 引用静态变量(因为 this 指向的是当前实例,而静态变量不属于实例)。public static int count = 0; —— 多个 Student 对象共用同一个 count,可以统计总人数。静态方法只能访问静态变量和其他静态方法,既不能用 this 也不能用 super,更无法直接调用非静态成员。它就像一个“纯工具”,不依赖任何对象状态。
Integer.valueOf())、数学计算(Math.abs())、配置初始化等。public static void doSomething(MyObj obj) { obj.instanceMethod(); }。static——道理很简单,构造器本来就是用来创建实例的,静态了反而矛盾。用 static { ... } 包裹的代码块,在类首次被加载到JVM时执行一次,且只执行一次。它比任何对象创建和 main 方法都要早。
静态内部类不持有对外部类实例的隐式引用,所以可以直接通过 外部类名.内部类名 来实例化,不需要先有外部类对象。
java.util.Collections.EmptyList 就是静态内部类的典型应用。总的来说,static 的核心思想就是“类级别的归属”。理解了这一点,什么时候用、该怎么用,自然就清楚了。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述