static表示“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象时,不生成static变量的副本,而是类的所有实例共享同一个static变量。
static可以修饰成员变量,成员方法,代码块。被static所修饰,随着类的加载而加载.非静态方法可以访问呢静态方法,而静态方法不可以访问非静态方法。因为静态方法比非静态方法先出现。静态代码块只会加载一次。
下面我们来看看程序。
package org.demo;
public class StaticDemo {
//static 修饰成员变量
static int a=9;
//staitc 修饰成员方法
public static void show(){
System.out.println("static修饰成员方法");
}
//static修饰代码块
static{
System.out.println("static修饰代码块");
}
public void add(){
System.out.println("非静态方法");
}
public static void main(String[] args) {
System.out.println(a);
show();
}
}
调用静态方法时,可以不用new实例,直接写类名.方法名。