Java static关键字

400 阅读2分钟

static

static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量

静态属性加载在静态区,JDK8以前静态区在方法区中,JDK8后在堆区中

静态变量

被static修饰的成员变量,叫做静态变量

  • 特点
    • 被该类所有对象共享
    • 不属于对象,属于类
    • 随着类的加载而加载,优先于对象存在
  • 调用方式
    • 类名调用(推荐)
    • 对象名调用

静态方法

被static修饰的成员方法,叫做静态方法

  • 特点

    • 多用在测试类和工具类中
    • Javabean类中很少会用
  • 调用方式

    • 类名调用
    • 对象名调用

工具类

帮助我们做一些事情,但是不描述任何事物的类

  • Javabean类:用来描述一类事物的类,比如Student,Teacher,Dog,Cat等
  • 测试类:用来测试其他类是否书写正确,带有main方法的类,是程序的主入口
  • 工具类:不是用来描述一类事物的,而是帮我们做一些事情的类
    • 类名见名知意
    • 私有化构造方法
    • 方法定义为静态

static注意事项

  • 静态方法只能访问静态变量和静态方法
  • 非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法
  • 静态方法中没有this关键字

重新认识main方法

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}
  • public:被JVM调用,访问权限足够大
  • static:被JVM调用,不用创建对象,直接类名访问
    • 因为main方法是静态的,所以测试类中其他方法也需要是静态的
  • void:被JVM调用,不需要给JVM返回值
  • main:一个通用的名称,虽然不是关键字,但是被JVM识别
  • String[] args:以前用于接收键盘录入数据的,现在没用