java static的作用:
1、修饰成员变量
给变量加上static关键字后,此变量变为全局变量,JVM在加载时会直接将此变量加载到方法区里而不是堆里,无论哪一个方法修改了此变量,此变量就会改变,可以让对象共享属性
并且,当再次new该类的对象时,static修饰的类成员不会被再次初始化,在程序运行过程中,static只会在第一次new时被初始化,当然final另当别论
2、修饰成员方法
static修饰成员方法最大的作用,就是可以使用"类名.方法名"的方式操作方法,避免了先要new出对象的繁琐和资源消耗
3、静态代码块:
当new一个类对象时,static修饰的成员变量首先被初始化,随后是普通成员,最后调用Person类的构造方法完成初始化。也就是说,在创建对象时,static修饰的成员会首先被初始化
并且,当再次new该类的对象时,static修饰的类成员不会被再次初始化,在程序运行过程中,static只会在第一次new时被初始化
4、静态导包:
静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。
5、代码块:
代码块分为两种种:普通代码块,静态代码块。他们和构造函数的运行顺序如下所示:
静态块总是最先执行的,第二执行的是普通代码块,第三执行的是构造方法。并且构造块和构造方法在每次new的时候都会创建新的,static方法只会在第一次new时运行