在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块。static的主要作用在于创建独立于具体对象的域变量或者方法。
格式:
修饰变量:static 数据类型 变量名
修饰方法:【访问权限修饰符】 static 方法返回值 方法名(参数列表)
特点:
1、static可以修饰变量和方法;
2、被static修饰的变量或者方法是独立于该类的任何对象,也就是说,这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享;
3、在类被加载的时候,就会去加载被static修饰的部分;
4、被static修饰的变量或者方法是优先于对象存在的,也就是说当一个类加载完毕之后,即便没有创建对象,也可以去访问。
静态变量和实例变量的区别:
实例变量:每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量。
静态变量:静态变量由于不属于任何实例对象,是属于类的,所以在内存中只会有一份,在类的加载过程中,JVM为静态变量分配一次内存空间。
应用场景:
如果某个成员变量是被所有对象所共享的,那么这个成员变量就应该定义为静态变量。
注意事项:
1、在静态方法中没有this关键字,因为静态是随着类的加载而加载,而this是随着对象的创建而存在的。静态比对象优先存在。
2、静态可以访问静态的,但是静态不能访问非静态的。
3、非静态的可以去访问静态的。
推荐教程:Java教程