## static静态成员
对于一个类中,有一些数据是共用同一份的,这时使用static关键字进行修饰,就可以起到节省内存的作用。static关键字一旦使用,那么这个成员就不属于new出的对象,而是属于原本所在的类中。
注意:
1.程序执行时,会先加载static修饰的变量和方法,所以静态不能调用非静态。而非静态可以调用静态。
2.静态不能使用this,因为静态是类属性,而this是在创建对象时,对象会把地址值赋给this。
3.静态方法推荐直接用“类名称.静态方法名”的方式书写,如下例,method.methodStatic()实际上在编译时,会变为MyClass.methodStatic(),所以为了加以区分,静态方法用“类名称.静态方法名”的方式书写。
//静态方法推荐直接用“类名称.静态方法名”的方式书写
MyClass.methodStatic();
MyClass method = new MyClass();
method.method();
method.methodStatic();//不推荐
static可以修饰:1.成员变量,2.成员方法
静态代码块存在唯一性,即被多次调用时,也只在第一次的时候执行。
public class Person {
public Person(){
System.out.println("构造方法执行啦");
}
static {
System.out.println("静态代码块执行啦");
}
}
//
public static void main(String[] args) {
Person person = new Person();
Person person2 = new Person();
//结果为
//"静态代码块执行啦"
//"构造方法执行啦"
//"构造方法执行啦"
}
来源:CSDN
作者:zezea
链接:https://blog.csdn.net/zezea/article/details/103703640