网站受攻击,制作网页小图片,ui设计app界面图片,青海制作网站多少钱【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 #x1f496;The Begin#x1f496;点点关注#xff0c;收藏不迷路#x1f496; 在Java编程语言中#xff0c;static是一个关键字#xff0c;它可… 【面试干货】Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 The Begin点点关注收藏不迷路
在Java编程语言中static是一个关键字它可以用于多种上下文包括类、方法、变量和代码块。static的主要作用在于它修饰的内容是与类相关联的而不是与类的某个特定实例对象相关联的。
1、Static修饰内部类
使用static修饰的内部类称为静态内部类。 静态内部类不需要外部类的实例即可创建因此它不能访问外部类的非静态成员变量和方法。
public class OuterClass { private static String outerStaticField Outer static field; static class StaticNestedClass { // 静态内部类中可以访问外部类的静态成员 public void printOuterStaticField() { System.out.println(outerStaticField); } }
}2、Static修饰方法
静态方法属于类本身而不是类的实例。 因此它们不能访问非静态的成员因为它们需要一个类的实例来访问而且它们可以通过类名直接调用。
public class MyClass { public static void staticMethod() { System.out.println(This is a static method); }// 主方法可以直接调用静态方法 public static void main(String[] args) { MyClass.staticMethod(); // 无需创建MyClass的实例 }
}3、Static修饰变量
静态变量也称为类变量属于类而不是类的实例。 这意味着它们被所有类的实例共享并且只存在一份拷贝。静态变量在类被加载到JVM时分配内存并且只分配一次。
public class MyClass { public static int staticVar 42;// 可以通过类名直接访问静态变量 public static void main(String[] args) { System.out.println(MyClass.staticVar); // 输出42 }
}4、Static修饰代码块
静态代码块在类被加载到JVM时执行并且只执行一次。 它们通常用于初始化静态变量或执行只需要执行一次的代码。
public class MyClass { static { System.out.println(Static block executed); } // 主方法会触发类的加载因此静态代码块会被执行 public static void main(String[] args) { // 当MyClass被加载时静态代码块已经被执行 }
}5、总结
1、静态方法不能直接访问非静态成员变量和方法因为它们属于类的实例而静态方法属于类本身。
2、在静态方法中this和super关键字都是无效的因为this引用当前对象而静态方法不依赖于任何对象。
3、静态变量在内存中只有一份拷贝并且它们的生命周期与类相同。
4、静态代码块按照它们在类中的出现顺序依次执行并且只执行一次。 The End点点关注收藏不迷路