static总结:
1.属性(实例、类变量)
属性加static 后,就不再是实例属性,而是类变量(全类公有),直接用类名访问。
类加载:当JVM第一次使用一个static总结:
1.属性(实例、类变量)
属性加static 后,就不再是实例属性,而是类变量(全类公有),直接用类名访问。
类加载:当JVM第一次使用一个类时,需要通过ClassPath找到这个类对应的.class文件,把这个文件包含的类的信息读入JVM并保存起来。一般的说,一个类只会加载一次!
类变量是在类加载的时候分配空间,并且初始化。
类加载的时机:
(1)创建类的对象
(2)访问类的静态成员
(3)加载子类必须先加载父类
(4) 如果仅仅是声明类的引用,不会类加载(MyClass c = null)
2.方法
(1)静态方法:允许直接用类名访问
(2)静态方法有个限制,在静态方法中,只能访问类的静态成员!
(3)静态方法可以被子类的静态方法覆盖,而且没有多态!
对引用调用其静态方法,仅相当于对引用的引用类型调用静态方法,没有多态。
3.初始代码块
动态初始化代码块,不常见,例如:MyClass在创建的时候,先调用多态初始化代码块,再初始化。 |
|