`
tom_seed
  • 浏览: 322102 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java初始化代码块与构造函数

 
阅读更多

静态初始化块、非静态初始化块、构造函数、Servlet 中的init()方法

静态初始化块优先执行,且只执行一次(该类被第一次加载时执行),主要初始化静态成员变量、静态常量以及执行静态方法

注意:被final修饰的变量默认为常量,常量必须要初始化值。但当该常量为静态常量,则可以通过静态块赋初始值

public static final String test;

static{

test = "test";

}

 

非静态初始化块其次执行,且每次对象初始化均执行一次,主要初始化非静态变量及执行静态、非静态方法

 

执行顺序为:静态初始化块-->【非静态初始化块-->构造函数】

 

特殊的方法:Servlet中的init()方法,调用的优先级在以上三种方法中最低,当自定义类继承了HttpServlet,不覆盖init()方法,默认会调用HttpServlet的init()方法。若覆盖了init()方法,则不会调用HttpServlet的init()方法而是直接执行当前类的init()初始化相应参数

 

存在继承时

创建子类对象

执行顺序为:父类静态初始化块-->子类静态初始化块-->【父类非静态初始化块-->父类构造函数-->子类非静态初始化块-->子类构造函数】

 

当同时创建N个子类对象时“【】”中的内容会循环N次

 

 

当子类覆盖父类的方法时,若创建子类对象,覆盖的方法以子类为主(这种情况常出现在父类实体方法a中有调用抽象方法b,该方法b在子类中被覆盖,当初始化子类并调用a方法,执行a方法时执行的b方法为子类的b方法)

 

 

public/private final Object object;

该常量对象必须被初始化,形式如下

1.public/private final Object object = null;

 

2.public/private final Object object;

 

  {//初始化块

object = null;

  }

 

3.public/private final Object object;

  public/private T(Object initObject){//构造方法对常量进行初始化

object = initObject;

  }

分享到:
评论

相关推荐

    Java的静态代码块、非静态代码块、构造函数

    Java编程语言中,静态代码块、非静态代码块和构造函数是面向对象设计的重要组成部分,它们在类的初始化和对象创建过程中起到关键作用。本文将深入探讨这些概念,以及它们在实际开发中的应用。 首先,我们来理解静态...

    Java静态初始化块和对象初始化块

    静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类级别的变量,或者执行只应执行一次的初始化操作。例如,如果一个类需要在程序运行前...

    构造函数与静态块的执行顺序

    在Java中,当一个类继承自另一个类时,实例化子类对象时构造函数与静态块的执行顺序遵循以下规则: 1. **静态块的执行**:首先,所有父类的静态块会被执行,然后再执行子类的静态块。这是因为静态块是在类加载时...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    ### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...

    java代码的初始化顺序demo

    总之,Java代码的初始化顺序是类加载的必然过程,涉及到静态和实例初始化块、构造函数、成员变量初始化以及继承关系的影响。这个demo是学习和理解这些概念的重要工具,通过实际操作可以加深对Java内存管理和对象生命...

    【IT十八掌徐培成】Java基础第04天-05.构造代码块-构造函数-javabean-pojo.zip

    在这个【IT十八掌徐培成】的课程中,我们重点关注了Java基础知识的第四天内容,主要讲解了构造代码块、构造函数以及JavaBean和POJO的概念。下面我们将深入探讨这些关键知识点。 首先,构造代码块是在类中定义的一段...

    java 初始化与方法

    Java初始化与方法是Java编程语言中的核心概念,它们在程序执行过程中起着至关重要的作用。本文将深入探讨Java中的初始化过程、方法的定义与调用,以及与之相关的源码和工具应用。 首先,让我们从类的初始化开始。在...

    java static块和构造函数的实例详解

    在 Java 中,static 块是指在类加载时执行的代码块。它们通常用于初始化静态变量、静态方法和静态块本身。Static 块的执行顺序是按照它们在类中的出现顺序执行的。需要注意的是,static 块在类加载时只执行一次,...

    java代码初始化流程研究

    构造函数的调用链遵循“父类优先”原则,即子类构造函数会先调用父类的无参构造函数,然后再执行自身的初始化代码。 在`JvmTest.java`和`JvmTest1.java`中,可能包含了不同层次的类以及它们各自的构造函数,理解...

    Java变量初始化

    2. 非静态初始化代码块中对实例变量指定初值; 3. 构造器中对实例变量指定初值。 虽然程序在三个地方都可对实例变量指定初始值,但(1)、(2)处的赋值操作最终会被提取到构造器中执行。且(1)、(2)的执行顺序...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    C++和Java初始化顺序的比较代码

    在编程世界中,C++和Java是两种广泛应用的高级编程语言,它们在许多方面有着不同的设计哲学和实现机制。其中一个显著的区别在于它们处理对象初始...同时,合理地利用构造函数和初始化块可以提高代码的清晰度和可读性。

    Java中初始化块详解及实例代码

    "Java初始化块详解及实例代码" Java中初始化块是Java语言中的一种特殊的代码块,它可以在类加载或对象创建时执行某些操作。本文将详细介绍Java中初始化块的概念、种类、特点和应用场景。 什么是初始化块 初始化块...

    Java构造代码块,静态代码块原理与用法实例分析

    构造代码块的作用是将类的所有对象初始化成一样的值,以防止构造函数中初始化的变量被修改。 例如: ``` class Person{ String gender; int age; { System.out.println("构造代码块运行阶段"); gender="男"; ...

    深入Java初始化.pdf

    `<clinit>`和`<init>`方法的存在揭示了Java初始化的底层机制,它们确保了类和对象的正确初始化,同时也提供了异常处理的能力,使得在初始化过程中出现的问题能够被准确捕获和定位。 总结: Java初始化涉及类的静态...

    java中类的初始化顺序

    类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础...

    java中静态代码块与构造方法的执行顺序判断

    在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...

    14_构造函数 视频

    6. **构造函数与final字段**:对于声明为`final`的成员变量,必须在构造函数中或者在声明时初始化,因为`final`变量一旦赋值后就不能再改变。 7. **构造函数与static字段**:静态字段属于类,不属于类的任何实例,...

    类继承的初始化顺序类,继承的初始化顺序

    除了构造函数外,初始化块也是一种重要的初始化手段。初始化块可以在类定义中定义,并且在构造函数调用之前执行。初始化块的执行顺序同样遵循它们在类体中出现的顺序。 #### 示例代码分析 为了更好地理解类继承...

Global site tag (gtag.js) - Google Analytics