java中初始化类成员方法包括:

1.显示域初始化,比如public int a=1;public static int b=1;

2.初始化块,分为普通初始化块,静态初始化块;

3.构造函数。

初始化的时候,首先是静态类的初始化方式执行,然后才是普通初始方式执行,

并且初始化块总是先于构造函数执行,显式域初始化与初始化块的执行顺序按照代码中出现的顺序执行。

  • 显式静态域初始化先于静态初始化块
public class Hello{

    public static int staticA=1;
public static int staticB; static{
System.out.println("Static Inital Block Start");
staticB=2;
PrintAB();
System.out.println("Static Inital Block End\n");
} public static void PrintAB(){
System.out.println("staticA:"+staticA);
System.out.println("staticB:"+staticB);
} public Hello(){
Hello.PrintAB();
} public static void main(String[] args){
Hello h=new Hello();
}
}

输出:

Static Inital Block Start
staticA:1
staticB:2
Static Inital Block End
 
staticA:1
staticB:2
  • 显式静态域初始化后于静态初始化块
public class Hello{

    public static int staticB;

    static{
System.out.println("Static Inital Block Start");
staticB=2;
PrintAB();
System.out.println("Static Inital Block End\n");
}
public static int staticA=1;
public static void PrintAB(){
System.out.println("staticA:"+staticA);
System.out.println("staticB:"+staticB);
} public Hello(){
Hello.PrintAB();
} public static void main(String[] args){
Hello h=new Hello();
}
}

输出:

Static Inital Block Start
staticA:0
staticB:2
Static Inital Block End

 
staticA:1
staticB:2
  • 显式静态域初始化与初始化块按照出现顺序执行,最后执行构造函数,

  注意noStaticD在两个构造快中间初始化,第一个初始化块打印时noStaticD=0,第二个块中变为1

输出:

NoStatic Inital Block for noStaticC Start
noStaticC:1
noStaticD:1
noStaticE:1
noStaticF:0
NoStatic Inital Block for noStaticC End

Constructor Start
noStaticC:1
noStaticD:1
noStaticE:1
noStaticF:1
Constructor END

java中类成员初始化顺序的更多相关文章

  1. Java类成员初始化顺序

    类中包含7中成员:1.静态变量 static2.final静态常量 final static3.静态代码块 static{}  //多个代码块顺序执行 4.普通变量5.普通代码块 {}  //多个代码 ...

  2. Java中类的初始化顺序

    一.一个类的初始化顺序(没继承情况)  规则: 1.静态变量>普通变量>构造方法   2.变量定义的顺序决定初始化的顺序 3.静态变量和静态块是一样的,普通变量和非静态块是一样的,即能够把 ...

  3. Java中类成员变量初始化顺序

    一. 定义处默认初始化vs构造函数中初始化 java中类成员变量支持在声明处初始化,也可以在构造函数中初始化,那么这两者有什么区别呢?看下面例子 public class FieldsInit { p ...

  4. Java中的成员初始化顺序和内存分配过程

    Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...

  5. Java类的成员初始化顺序

    Java类的成员初始化顺序 2017-06-01 代码: public class InitializeSequence { public static void main(String[] args ...

  6. java类的成员初始化顺序和初始化块知识

    java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...

  7. 图示Java类的初始化顺序

    Java类的初始化顺序   在开发中,知道Java类的初始化顺序才能让我们更加清楚地掌握程序的执行流程.先把结论贴出来,Java里,从图里的1~6,分别按顺序执行.   以下为代码验证阶段,一共三个类 ...

  8. java创建对象 的初始化顺序

    java创建对象 的初始化顺序 1.初始化块 初始化块通常写在类的构造方法之前,由花括号括起来,通常包含对成员属性进行初始化的语句: 初始化块分为instance初始化块和static初始化块,初始化 ...

  9. C++成员初始化顺序

    #include <iostream> using namespace std; int seti() {cout << "seti" << e ...

  10. Java学习笔记二十三:Java的继承初始化顺序

    Java的继承初始化顺序 当使用继承这个特性时,程序是如何执行的: 继承的初始化顺序 1.初始化父类再初始子类 2.先执行初始化对象中属性,再执行构造方法中的初始化 当使用继承这个特性时,程序是如何执 ...

随机推荐

  1. GB28181/GB35114国标平台LiveGBS适配国产信创环境,使用国产数据库达梦数据库、高斯数据库、瀚高数据库的配置方法

    1.如何配置切换信创达梦数据库? livecms.ini -> [db]下面添加配置如: ... [db] dialect=dm url =dm://SYSDBA:Aa12345678@loca ...

  2. VUE+SpringBoot环境准备

    一.nodejs下载地址 官网:https://nodejs.org/zh-cn/ 其它版本:https://nodejs.org/zh-cn/download/releases/ 源码地址:http ...

  3. C++ std::string

    C++ 标准库中的 std::string 是处理字符串的核心类,封装了字符串的存储.管理和操作,相比 C 风格的 char* 更安全.易用. 1.基本概念 1.1 基本特性 std::string ...

  4. 【MSPM0G3507系列】FIFO模式DMA转运

    FIFO (First Input First Output 先进先出队列) 举例:1号先进入通道,2号再进入通道,3号最后进入通道:1号先出通道,2号再出,3号最后出. 说明 在配置ADC的时候,有 ...

  5. FlashAttention逐代解析与公式推导

    Standard Attention 标准Attention计算可以简化为: \[O = softmax(QK^T)V \tag{1} \] 此处忽略了Attention Mask和维度归一化因子\( ...

  6. 解决QT5升级Creator 14.x后出现launch debugger红色报错问题-OK

    QT5升级Qt Creator 14.x后出现launch debugger红色报错,QT5 C++项目可以编译运行,但无法调试运行.经试验:选择Desktop QT 5.15.2 MinGW 64- ...

  7. loki仿函数原理

    loki仿函数原理 问题一:已知函数Fun有2个参数,请完成CTestFunctor类,使得CTestFunctor的()实际调用Fun,部分代码如下: #include <iostream&g ...

  8. MFC一些必要的名词(一)

    API:一个系统内部提供给用户的函数使用包,集合等就叫做该系统的API 句柄:可以将其分为:图标句柄(HICON),光标句柄(HCURSOR),窗体句柄(HWND),应用程序实例句柄(HINSTANC ...

  9. 总资料汇总&关联化站点形式的尝试(未完成/归档3)

    归档用 总资料汇总&关联化站点形式的尝试 在原先的文章当中,我曾经稍微归整了一些关于自己资料,这里引用下原文 梳理 | 脑神经科学原理学习资料整理 posted @ 2025-09-23 15 ...

  10. 在nginx中实现回源日志的功能

    本文分享自天翼云开发者社区<在nginx中实现回源日志的功能>.作者:尹****聪 nginx中已经提供了访问日志的功能,主要对客户端的访问状态等进行记录,比如响应给客户端的状态码,请求u ...