static关键字
静态的结构(属性、方法、代码块、内部类)的生命周期要长于非静态的结构。
静态的可以用来修饰属性(类变量)、方法、代码块(或初始化块)、内部类。
class Sportsman{
//实例变量(随着对象的创建而被加载。)
String name;
int age;
//类变量(随着类的加载而加载)
static String nation;
}
static修饰属性(类变量):
1、由类创建的所有的对象都共用这一属性。
2、当其中一个对象对此属性进行修改。会导致其他对象的此属性的相应修改。
3、类变量随着类的加载而加载
4、静态的变量可以直接通过“类.类变量”或者“类对象.类变量”的形式进行调用。而实例变量,只能采用“类对象.实例变量”的形式进行调用。
4、类变量的加载早于对象。
5、类变量存在于静态域中。且在内存中独一份。可以用于计数
static修饰方法(类方法):
1、随着类的加载而加载。
2、可以通过“类.方法”或“类对象.方法”的方式调用。而无static修饰的方法,只能通过“类对象.方法”的方式调用。
3、类方法的内部只能调用静态的属性或静态的方法。反之,非静态的方法可以调用静态的属性或方法。
4、静态的方法里面不允许含有this, super。