静态变量和静态方法:
static关键字的最基本用法:
①:被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来
②:被static修饰的方法属于类方法,可以通过类目.方法名之间引用,而不需要new出一个类来
被static修饰的变量,被static修饰的方法同意属于类的静态资源,是类实例之间的共享。换言之-->一处变,处处变
JDK把不同的静态资源放在了不同的类中,而不是把所有的静态资源放在一个类里面,很多人可能想当然的认为当然要这样做,但是是否想过为什么这么做呢?
有3个好处:
①:不同类有自己的静态资源,这可以实现静态资源分类。
②:避免重名
③:避免静态资源类无线膨胀
代码详解:
为什么呢? 因为:静态资源属于类,但是独立于类的存在。从JVM的角度来说,静态资源就是类初始化的时候加载的,而非静态资源是类NEW出来后才加载的,上面报错的原因就是:类加载的时候,主方法没有找到i 因为i不是staic
静态代码块是严格按照父类静态代码块->子类静态代码块 的顺序加载的 且只加载一次