通常创建类时,执行new 创建对象,数据储存空间才会被分配。如果要不创建对象,就可以调用某个方法或者某个变量,则需要用到 static
static : 可以修饰成员变量和成员方法,也可以形成静态代码块。
当声明一个事物是static 时,就意味着这个域或方法不会与包含它的类关联在一起。所以即使没有创建某个类的任何对像,也可以调用其static方法或访问其static域。
例
class User(){
public int a = 10;
public int b = 20;
public void userTest1(){
System.out.println("****"):
}
public static void userTest2(){
System.out.println("****"):
}
}
class StaticTest(){
User user = new User();
//若要访问a,userTest1
user.a;
user.userTest();
//而访问 b,userTest2()
User.b;
User.userTest2();
}
当类被Java虚拟机载入的时候,会对static变量进行初始化.
静态代码块
static{
int a = 4;
int b = 6;
}
当静态代码块,抛出异常时,JVM会抛出 java.lang.ExceptionInInitializerError