一、概述
public static
是 Java 中的两个访问修饰符。public
指明该变量、方法或类可以被其他任何类访问,static
则指明它们属于类,而不是对象,可以在不创建对象实例的情况下使用。
在访问修饰符中,public
和 static
也可以组合使用,为公共的静态变量或静态方法,可以直接使用类名访问。这使得使用静态成员变量和方法变得方便和高效。
二、public static
关键字的作用
public static
修饰类:一个public
的类可被任何其他类访问,而一个static
的类只有一份,无需创建对象
public static class MyClass {
...
}
public static
修饰属性(变量):公共静态属性可以被访问,也可以写入,而不必通过类的实例
public static int varible = 0;
public static
修饰方法:公共静态方法可以直接简单地通过类名调用,不需要实例化类对象
public static void myMethod() {
...
}
三、public static
和单例模式
单例模式是一种创建型设计模式,确保一个类仅有一个实例,并提供访问该实例的全局点。
public static
可以与单例模式结合使用,这样就可以在程序的任意地方访问单例对象。
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
...
}
四、public static
和 Java 多线程
多线程应用程序可能会涉及到并发处理,这时候 public static
就可以提供公共的共享内存。
在多线程应用程序中,每个线程使用该变量时,它们都在共享同一个命名空间。Java 虚拟机基于 public static
关键字提供了一种都可以使用的单例实现方法。
public class MyThread implements Runnable {
public static int num;
public void run() {
num++;
}
}
五、public static
和 final
关键字
public static
关键字可以与 final
关键字组成公共的常量。
常量是不能改变的值,如果值在程序中重复使用,则应该在程序的起始位置定义它,并对其进行命名。
public static final int MAX_SIZE = 100;
六、public static
和接口
public static
可以与接口一起使用,接口中的变量默认是 public static final
类型。
public interface MyInterface {
public static final int num = 0;
...
}
七、总结
public static
是 Java 中两个常用的访问修饰符。其用法也非常广泛,可以用于类、属性、方法、常量、接口等等。经过合理使用,public static
关键字可以使代码更加简洁、高效、易读。