在Java中,静态(static)关键字是用于修饰类的成员(字段和方法)的。它主要通过底层加载机制来实现。
底层加载机制: 在Java程序启动时,JVM会首先加载包含main方法的类。当一个类被加载进内存后,JVM会为该类创建一个Class对象,并将该Class对象存储在方法区中。静态字段和静态方法是与类关联的,它们在类加载时就会被创建并分配内存,并不依赖于类的实例。当类被加载进内存后,它的静态字段和静态方法就可以直接在内存中访问和调用,而无需创建类的实例。
主要功能和运用场景:
- 共享数据:静态字段可以在类的所有实例之间共享数据。可以用来存储与类有关的信息,如全局配置参数、计数器等。
- 工具方法:静态方法可以直接通过类名调用,不需要创建类的实例。可以用来封装一些通用的功能方法,如数学计算、类型转换等。
- 定义常量:静态字段可以被声明为final,用于定义常量,它们的值在类加载时就会确定,并且无法修改。
- 静态代码块:静态代码块是在类加载时执行的一段代码,可以用来进行一些初始化操作,如加载资源文件、创建数据库连接等。
总结: 静态(static)关键字通过底层加载机制实现了类的静态字段和静态方法的直接访问,而无需创建类的实例。它的主要功能包括共享数据、定义常量、封装工具方法和执行初始化操作等。静态成员适用于与类相关的共享数据和功能方法,它们可以在类加载时就被创建,并且可以通过类名直接访问和调用。
注意事项:在含有静态关键字 static 的方法中 只能访问静态成员。
在非静态的方法中可以访问静态变量或者静态方法,也可以访问非静态的成员。
在静态方法中是没有this关键字的。