static修饰局部变量时,会改变局部变量的存储位置,从而使得局部变量的生命周期变长。
static修饰了局部变量x,令局部变量x变成静态的,使得每次fun()函数结束时局部变量x都不销毁,再次进入fun()函数时则保留原有数值运行,因此x++数值越来越大。
局部变量前加static,修饰局部变量为静态局部变量,静态局部变量存储在静态存储区,当静态局部变量离开作用域后,并没有被销毁。当该函数再次被调用的时候,该变量的值为上次函数调用结束时的值。
【以下回答由 GPT 生成】
静态关键字(static)有以下几种用途:
例子:
public class MyClass {
static int count; // 静态变量,保存计数值
public MyClass() {
count++; // 在每次创建对象时递增计数值
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.count); // 输出:2,因为两个对象都递增了计数器
}
}
例子:
public class MathUtils {
public static int square(int a) {
return a * a;
}
public static void main(String[] args) {
int result = MathUtils.square(5); // 直接通过类名调用静态方法
System.out.println(result); // 输出:25
}
}
例子:
public class MyClass {
static {
System.out.println("Static block is executed."); // 静态代码块
}
public static void main(String[] args) {
MyClass obj = new MyClass();
// 输出:Static block is executed.
}
}
总结:静态关键字(static)用于在类级别上创建和管理共享的数据或方法。它在整个程序中具有全局范围,并提供了更高的灵活性和可重用性。