public class Test {
public int a=2;
public static int b=3;
{
System.out.println("A");
}
static{
System.out.println("B");
}
public void test()
{
System.out.println("AA");
}
public static void one(String t){
System.out.println(t);}
public static void main(String[] args){
one("BB");
Tests1 = new Test();
s1.test();
System.out.println();
Test s2 = new Test();
s2.test();
}
}
static代码块也叫静态代码块,在类中独立于成员变量和成员函数的,一个类中可以有多个静态代码块。静态代码块之间没有先后顺序,只取决于编写时的顺序。JVM加载类时会同时执行这些静态代码块。
static属性
static修饰属性也叫类属性,该类的所有对象共享的一个属性,只开辟一块内存空间,在加载类的时候同时加载类属性到方法区开辟内存空间。
非static修饰的属性也叫成员属性,每创建一个对象就开辟一块独立的内存空间,在创建对象时开辟内存空间。
static方法
static方法也叫类方法,类方法中不能再用this和super表示对象,类方法是调用父类的还是子类重写的只和类名有关。
非static修饰的方法也叫成员方法,成员方法是调用父类的还是子类重写的只和对象本身有关。
static的属性和方法是不需要对象就能调用的。