【答疑解惑】Java类的加载顺序

语音版:

Java类的初始化顺序这个问题经常出现在面试题中,这个面试题设计的知识有类、对象、static关键字、初始化函数、类的加载顺序,咱们一个一个来说。

类:

类描述了具有相同特性(数据元素)和行为(功能)的对象集合,也是一个数据类型。比如说动物,它有重量、大小的特征(数据元素),也有移动、吃的行为(功能)。

对象:

对象是具有状态、行为和标识的是上面类的一个实例。每一个对象都有内部数据(它描述该对象的状态)和方法(它产生行为),并且每一个对象都可以与其他对象区分开来,就是一个对象在内存中都有一个唯一的地址。在Java中对象都必须通过new来产生。

static:

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。它是属于类不属于对象。

初始化函数:

也就是构造器,构造器名称必须与类名完全相同,没有返回值。没有参数的构造器叫做默认构造器,你在不重载情况下都是调用的默认构造器。

类的加载顺序:

  1. static块和对象:无论写在类的前面还是后面都会先执行,多个静态块或者对象执行顺序与写的顺序一致,写在前面的先执行;
  2. 非静态块和对象:按照在类中写的先后顺序执行;
  3. 初始化函数;

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java学习

面试题12(如何正确使用this)

哪些语句能放在如下代码中所示位置,而不会导致编译错误? public class ThisUse{ int plane; static int ...

2503
来自专栏java学习

面试题12(如何正确使用this)

哪些语句能放在如下代码中所示位置,而不会导致编译错误? public class ThisUse{ int plane; static int ...

2788
来自专栏java一日一条

Java下static关键字用法详解

  本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家。

813
来自专栏GreenLeaves

C# int? 关键字

1、int?  关键字说明 (1)、int? 表示一个int类型,且该int类型可空,如果不加?的话,那么int类型的默认值为0,不能赋null值,代码如下: ...

18310
来自专栏angularejs学习篇

ref和out的区别在c#中 总结

270
来自专栏GreenLeaves

JS实现OO机制

一、简单原型机制介绍 继承是OO语言的标配,基本所有的语言都有继承的功能,使用继承方便对象的一些属性和方法的共享,Javascript也从其他OO语言上借鉴了这...

1907
来自专栏HappenLee的技术杂谈

C++雾中风景6:拷贝构造函数与赋值函数

这里我们显式声明了拷贝构造函数与赋值构造函数,接下来我们用一小段代码测试一下上面定义的类。(其他函数的定义并不完整,读者可以之行补全)

612
来自专栏牛肉圆粉不加葱

(3) - Scala case class那些你不知道的知识

除了在模式匹配中使用之外,unapply 方法可以让你结构 case class 来提取它的字段,如:

661
来自专栏程序生活

Python中namedtuple使用

1504
来自专栏每日一篇技术文章

Swift3.0 - 初始化和释放

1.系统要求存储属性必须初始化 2.可选值可以不用初始化,如果不初始化值,系统默认用nil初始化它 3.如果非可选类型存储属性不设置默认值,则必须在初始化方...

561

扫码关注云+社区