public class Children extends Parent
{
public static String cStaticField = "子类--静态变量";
public String cField = "子类--变量";
static
{
System.out.println(cStaticField);
System.out.println("子类--静态初始化块");
}
{
System.out.println(cField);
System.out.println("子类--初始化块");
}
private int instanceValue = 20;
public void test()
{
System.out.println("instance value is: " + instanceValue);
}
public Children()
{
System.out.println("子类--构造器");
test();
}
public static void main(String[] args)
{
//打印第一个“instance value is: 0”是因为多态性,jvm调用一个实例方法会基于实际对象
Parent p= new Children();
}
}
class Parent
{
public static String pStaticField = "父类--静态变量";
public String pField = "父类--变量";
public void test()
{
}
static
{
System.out.println(pStaticField);
System.out.println("父类--静态初始化块");
}
{
System.out.println(pField);
System.out.println("父类--初始化块");
}
public Parent()
{
System.out.println("父类--构造器");
test();
}
}
输出结果:
父类--静态变量
父类--静态初始化块
子类--静态变量
子类--静态初始化块
父类--变量
父类--初始化块
父类--构造器
instance value is: 0
子类--变量
子类--初始化块
子类--构造器
instance value is: 20
分享到:
相关推荐
本文详细介绍了类继承中的初始化顺序问题,包括初始化的基本概念、初始化过程中的关键步骤以及如何正确处理基类和子类之间的构造函数调用。理解这些概念对于编写高效、可维护的面向对象程序至关重要。希望通过对这些...
当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、super关键字以及方法的覆盖。 首先,了解类初始化的顺序至关重要。当创建一个子类实例时,初始化过程遵循以下步骤: 1. ...
当Java虚拟机(JVM)首次遇到某个类的实例或者静态变量,或者当类的静态方法被调用时,会触发类的加载和初始化。类的初始化主要涉及到以下几个步骤: 1. 类加载:JVM会通过类加载器将类的.class文件加载到内存中。 ...
在实际开发中,理解这个初始化顺序是非常重要的,尤其是在设计复杂的类结构或者涉及单例模式、线程安全初始化等场景时。如果在构造器或初始化块中依赖其他静态或非静态成员,必须确保这些成员在需要之前已经被正确...
### Java中类的初始化顺序详解 #### 一、概述 在Java编程语言中,类的初始化是一个非常重要的概念。类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文...
以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**: - **加载**:当Java虚拟机(JVM)首次遇到一个类的引用时,会通过类加载器进行加载。加载过程包括找到类的.class文件,读取其字节码,并转化为内存中...
在C#编程语言中,结构(struct)是一种值类型,与类(class)不同,它在内存中的存储方式和行为有所区别。...理解并正确使用结构的初始化是C#程序员必备的知识点,特别是在处理值类型和避免潜在的未初始化问题时。
同时,掌握类变量初始化顺序可以避免因误解而导致的错误,特别是在多线程环境中,对静态变量的并发访问和初始化顺序的控制需要特别注意。 总之,深入理解Java的ClassLoader机制和类变量初始化顺序是提升Java编程...
总之,Java代码的初始化顺序是类加载的必然过程,涉及到静态和实例初始化块、构造函数、成员变量初始化以及继承关系的影响。这个demo是学习和理解这些概念的重要工具,通过实际操作可以加深对Java内存管理和对象生命...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块** 静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类...
在上面的示例代码中,我们可以看到,类变量和实例变量的初始化顺序是按照定义的顺序进行的。同时,我们还可以看到,静态变量的初始化顺序是按照定义的顺序,并且只在第一次访问时初始化。 在 Java 中,static ...
Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...
成员变量的初始化顺序遵循以下规则: 1. **声明时初始化**:首先执行成员变量的声明时初始化,即在成员变量声明时直接赋值,如`int a = 1;`。 2. **初始化列表初始化**:接着执行构造函数的初始化列表,其中的初始...
- 在`init()`方法内部,首先调用了`initInternal()`方法来处理更具体的初始化任务。 **2. initInternal()方法** - `initInternal()`方法的主要作用是加载配置文件、创建资源对象和设置一些全局变量。 - 其中...
在Java编程语言中,理解成员变量的初始化顺序对于正确地设计和实现类结构至关重要。通过本实验,我们将深入了解成员变量的初始化顺序,以及如何通过实际代码示例来验证这些概念。 #### 实验步骤解析 ##### 步骤一...
9. **应用实例**:应力初始化常应用于预应力结构分析、疲劳裂纹扩展、地质力学问题、爆炸冲击分析等。在这些领域,初始应力的精确模拟对于预测行为和设计决策至关重要。 总之,LS-DYNA3D中的应力初始化是一个涉及多...
在Java中,类的初始化顺序是面试中的经典问题之一,它涉及到继承、静态成员以及实例成员等多个方面。正确理解类的初始化顺序对于编写正确、高效的代码至关重要。 首先,需要了解Java类初始化的基本规则,即在类的...
静态变量`a`和`b`的初始化顺序是按照它们在源代码中的出现顺序进行的,这里`a`先被初始化,然后是`b`。 另外,Java程序对类的使用有主动使用和被动使用两种情况。主动使用包括以下六种场景: 1. **创建类的实例**...