Java温故而知新
Posted niyv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java温故而知新相关的知识,希望对你有一定的参考价值。
1.记录下static关键字在内存中的分配以及通过static了解JAVA类的加载顺序问题。
知识点:
首先,被static关键字修饰的成员方法或成员变量,是属于类而不属于对象(运行期间生成),那么被static关键字修饰的方法或者变量,会随着类的加载而加载,被保存在方法区的静态区中。
内存图分配如下:
图中可知,被static关键字修饰的变量和对象没有任何关系,在类加载过程中,被static关键字修饰的变量会在方法区中的静态区开辟一块内存等待赋值,并将地址返回给变量。调用时是通过类调用的。
*** static可以多次赋值,但最好不要那么做,负责会失去静态变量的意义。
static关键字的意义在于:
①.为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关,节省了内存空间,而且实现了一处变,处处变,简化的代码的修改。
②.实现了某个方法或属性与类而不是对象关联在一起,使静态变量或方法不依赖对象实现。
2.JAVA父子类的加载顺序问题:
https://www.cnblogs.com/jiataoq/p/10967534.html
其实总的来说,顺序的问题本质上还是要理解JAVA的类是如何加载的,上文说的很详细,不过有一点就是对于静态成员变量和静态代码块的加载顺序,应该是谁在前面谁先执行。验证如下图:
以上是关于Java温故而知新的主要内容,如果未能解决你的问题,请参考以下文章