这篇文章主要讲解了“Java怎么初始化类与对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么初始化类与对象”吧! 首先,我们先看看下面的代码,这就是很经典的考察方式。
不管你是否能很快速的写出正确的答案,我们先把这个程序放一边,了解一下Java虚拟机初始化的原理。JVM通过加装、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。类型的生命周期如下图所示:
装载和连接必须在初始化之前就要完成。类初始化阶段,主要是为类变量赋予正确的初始值。这里的“正确”初始值指的是程序员希望这个类变量所具备的起始值。一个正确的初始值是通过类变量初始化语句或者静态初始化语句给出的。初始化一个类包含两个步骤:1) 如果类存在直接超类的话,且直接超类还没有被初始化,就先初始化直接超类。2) 如果类存在一个类初始化方法,就执行此方法。那什么时候类会进行初始化呢?Java 虚拟机规范为类的初始化时机做了严格定义:在***主动使用时初始化。那哪些情形才符合***主动使用的标准呢?Java虚拟机规范对此作出了说明,他们分别是:1) 创建类的新实例;2) 调用类的静态方法;3) 操作类或接口的静态字段(final字段除外);4) 调用Java的特定的反射方法;5) 初始化一个类的子类;6) 指定一个类作为Java虚拟机启动时的初始化类。除了以上六种情形以外,所有其它的方式都是被动使用的,不会导致类的初始化。一旦一个类被装载、连接和初始化,它就随时可以使用了。现在我们来关注对象的实例化,对象实例化和初始化是就是对象生命的起始阶段的活动。Java编译器为它编译的每个类都至少生成一个实例初始化方法,即
如果构造方法是明确地从调用同一个类中的另一个构造方法开始,那它对应的
相关推荐: Python Unittest ddt数据驱动如何实现
本篇内容主要讲解“PythonUnittestddt数据驱动如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PythonUnittestddt数据驱动如何实现”吧!@ddt.ddt(类装饰器,申明当前类使用d…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。