开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第14天,点击查看活动详情
JAVA中的Static
前言
今天我们一起来学习一下Java中的Static关键字,static可以修饰方法、变量、代码块、内部类,也就是我们俗称的静态方法、静态变量、静态代码块、静态内部类,今天我们就逐个一起来学习学习。
静态方法
静态方法是在方法前面增加static进行修饰,使用static修饰后,这个方法就属于类,不属于对象,我们在使用该静态方法时,直接使用类名进行调用即可,不需要重新创建这个类的对象,并且静态方法中可以访问我们接下来要讲的静态变量。
public class Test {
static String name = "";
static void setName() {
name = "Test";
}
public static void main(String[] args) {
Test.setName();
}
}
静态变量
使用static修饰的即为静态变量,静态变量只在类加载的时候分配一次内存空间,所有类的实例对象都会共享该变量,所有对象对该变量的操作都是在操作同一块内存区域。静态变量是使用类名进行访问。
public class Test {
static String name = "";
public static void main(String[] args) {
}
}
静态代码块
静态代码块是使用statci加两个大括号包裹的代码块,静态代码块是在main()方法之前执行,一般是用来初始化一些静态变量,例如初始化一些共享的静态List集合、Map集合等, 在实际开发中,静态代码块用的最多的是加载一些配置文件中的信息。
public class Test {
public static String name = "";
static {
name = "Test"
}
public static void main(String[] args) {
}
}
静态内部类
常见的内部类有四种,成员内部类、局部内部类、匿名内部类和静态内部类。静态内部类不能访问外部类的所有成员变量,静态内部类可以访问外部类的所有静态变量,私有的静态变量也可以访问,外部类不能声明为static。静态内部类一般在建造者模式中比较常用。
public class Test
private Test(){}
private static class SingleTest {
public static final Test test = new Test();
}
public static Test getInstance(){
return SingleTest.test;
}
}