static修饰符- Core Java 学习笔记

来源:互联网 发布:荷兰豆 中国豆 知乎 编辑:程序博客网 时间:2024/05/17 04:33
 

static修饰符

1.               可以修饰属性、方法、初始代码块,成为类变量、静态方法、静态初始化代码块。

注:初始代码块是在类中而不再任何方法之内的代码块。

2.               类变量、静态方法、静态初始化代码块与具体的某个对象无关,只与类相关,是全类公有的。在类加载时初始化。

3.               类加载:虚拟机通过CLASSPATH从磁盘上找到字节码文件,并将字节码文件中的内容通过I/O流读到虚拟机并保存的过程。在虚拟机的生命周期中一个类只被加载一次。

注:Java命令的作用是启动JVM

4.               Static定义的时一块为整个类共有的一块存储区域,其发生变化时访问到的数据都是经过变化的。

5.               为什么主方法必须是静态的?

主方法是整个应用程序的入口,JVM只能通过类名去调用主方法。

6.               类变量和静态方法可以在没有对象的情况下用:类名.方法名(或属性名)来访问。

7.               静态方法不可被覆盖(允许在子类中定义同名的静态方法,但是没有多态);父类如果是静态方法,子类不能覆盖为非静态方法。父类如果是非静态方法,子类不能覆盖为静态方法。

争论:静态方法可以覆盖但是没有多态。

思考:没有多态的覆盖叫覆盖吗?

在静态方法中不允许调用本类中的非静态成员。

8.               静态初始化代码块只在类加载的时候运行一次,以再也不执行了。所以静态代码快一般被用来初始化静态成员。

9.               不加static为动态初始化代码块,在创建对象时被调用(在构造函数之前)。

10.            最后要注意的一点就是Static不能修饰局部变量。

原创粉丝点击