码迷,mamicode.com
首页 > 编程语言 > 详细

Java温故而知新(六)

时间:2020-01-15 19:43:09      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:对象关联   图片   技术   style   col   成员   加载   静态   顺序   

1.记录下static关键字在内存中的分配以及通过static了解JAVA类的加载顺序问题。

知识点:

首先,被static关键字修饰的成员方法或成员变量,是属于类而不属于对象(运行期间生成),那么被static关键字修饰的方法或者变量,会随着类的加载而加载,被保存在方法区的静态区中。

内存图分配如下:

技术图片

 

 

 图中可知,被static关键字修饰的变量和对象没有任何关系,在类加载过程中,被static关键字修饰的变量会在方法区中的静态区开辟一块内存等待赋值,并将地址返回给变量。调用时是通过类调用的。

*** static可以多次赋值,但最好不要那么做,负责会失去静态变量的意义。

static关键字的意义在于:

①.为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关,节省了内存空间,而且实现了一处变,处处变,简化的代码的修改。

②.实现了某个方法或属性与类而不是对象关联在一起,使静态变量或方法不依赖对象实现。

2.JAVA父子类的加载顺序问题:

https://www.cnblogs.com/jiataoq/p/10967534.html

其实总的来说,顺序的问题本质上还是要理解JAVA的类是如何加载的,上文说的很详细,不过有一点就是对于静态成员变量和静态代码块的加载顺序,应该是谁在前面谁先执行。验证如下图:

技术图片

Java温故而知新(六)

标签:对象关联   图片   技术   style   col   成员   加载   静态   顺序   

原文地址:https://www.cnblogs.com/NiYv/p/12198107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!