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温故而知新的主要内容,如果未能解决你的问题,请参考以下文章

温故而知新---Java

Java温故而知新

java基础-温故而知新

温故而知新(java实现)单例模式的七种写法

3.5万字 JavaSE温故而知新!(结合jvm 基础+高级+多线程+面试题)

再看Java之温故知新(体系篇)