static代码块只在类加载时执行,类是用类加载器来读取的,类加载器是带有一个缓存区的,它会把读取到的类缓存起来,所以在一次虚拟机运行期间,一个类只会被加载一次,这样的话,静态代码块只会运行一次
可变参数- 当方法的参数类型已经确定 但不确定使用个数的时候可以使用可变参数。
- 每个方法只能有一个这样的参数个数可变的形参,且这个形参必须是形参列表的最后一个,所以除了定义的可变参数的数据类型以外的形参都要写在可变参数之前。
- 在不确定参数的个数时,可以使用可变参数。
每个方法最多只有一个可变参数。
可变参数必须是方法的最后一个参数。
静态语句块,优先对象存在,也就是优先于构造方法存在,通常用来做只创建一次对象使用。因此在加载时,优先执行静态块语句。
程序执行顺序程序执行顺序为:父类static代码块或static变量–>子类static代码块或static变量–>父类普通代码块–>父类构造方法–>子类普通代码块–>子类构造方法
静态方法static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。也就是说说被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。
父类静态代码块后执行父类普通代码块和父类构造方法- 类中存在静态变量时的执行顺序优先级为:父类静态代码块和父类静态变量>子类静态代码块和子类静态变量>main>父类普通代码块>父类构造方法>子类普通代码块>子类构造方法
- 静态代码块和静态变量只会被执行一次
- 类只要被用到了(初始化)就一定会加载静态部分
- 非静态部分只有被用到了(执行了)才会被加载



