类中的static关键字定义的变量存储在方法区,在类加载时进行初始化,访问时候不需要创建对象,直接使用类名.静态变量名进行访问。
什么时候成员变量声明为静态变量?
所有对象都有这个属性,并且所有属性的值都是一样的,建议定义为静态变量,节省内存开销。
静态代码块:使用static关键字来定义
**作用:**跟实际需求有关,例如项目要求类加载的时刻可以完成日志的记录。若此时希望执行一段特殊的程序,这段代码可以直接放在静态代码块中。
1.格式
static{}
2.在类加载时执行,并且只执行一次
3.静态代码块可以编写多个,遵循自上而下的规则执行,但是一般只写一个。
4.通常完成预备工作,先完成数据的准备工作,例如:初始化连接池,解析XML配置文件
class StaticTest
{
static{
System.out.println("static block 1");
}
}
静态方法:通常用作工具类
例如:数学工具类,不需要创建对象再去 使用“ 引用.方法” 去使用,直接**“类名.方法名”**使用