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. win11系统如何设置鼠标右键默认显示更多选项

    在命令提示符中,使用管理员权限执行 1.在注册表中添加信息 reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509 ...

  2. 【学习】重学Swift5-函数和闭包

    五.函数和闭包 函数 常见形式 // 无形式参数的函数 func sayHelloWorld() -> String { return "hello world" } pri ...

  3. 【iOS】APP的优化---IPA大小的压缩

    众所周知,在App Store中超过一定大小的文件只能使用WiFi下载(近期提升到了150M,之前是100M).虽然提升了一点,但是我们仍需要注意安装包的大小.毕竟除了游戏很少有人喜欢下很大的应用. ...

  4. 使用yolo算法对视频进行实时目标跟踪和分割

    ​ 视频演示 使用yolo算法对视频进行实时目标跟踪和分割 大家好,我是Coding茶水间.今天我来分享一个基于YOLO算法的工具,它可以对视频或图片进行实时目标跟踪和分割. 这个工具使用PyQt5构 ...

  5. Oracle 19c asm单机OPatch补丁报错"checkSystemCommandAvailable" failed.

    一.OPatch Conflict Check As the Grid home user: % $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgai ...

  6. QT5 C++槽函数的两种connect连接方式的区别,建议使用现代的连接方式

    QT5 C++槽函数的两种connect连接方式的区别,建议使用现代的连接方式 (1)QT5 C++ 槽函数定义class MainWindow : public QMainWindow { Q_OB ...

  7. PCIe数据卡设计资料第611篇-基于VU9P的双路5Gsps AD 双路6Gsps DA PCIe数据卡

    基于VU9P的双路5Gsps AD 双路6Gsps DA PCIe数据卡 一.板卡概述 基于XCVU9P的5Gsps AD DA收发PCIe板卡.该板卡要求符合PCIe 3.0标准,包含一片XCVU9 ...

  8. win10下实现Cl__sh小猫控制WSL网络

    情况说明: win10+WSL ,实现在win10下配置小猫咪 for Windows,从而让WSL内也能google上网. 一切都在win10下进行配置 在win10-内下载最新的小猫咪 关闭win ...

  9. 权威调研榜单:插头电压降测试仪实力厂家TOP3榜单好评深度解析

    随着电气安全标准的不断提高,插头电压降测试仪作为电线电缆.家用电器及工业设备检测领域的关键设备,其测量精度与可靠性日益受到行业重视.本文基于对多家企业的技术实力.专利成果.检测精度标准及知名合作案例的 ...

  10. 国产IPD项目管理软件推荐|别再靠 Excel 推 IPD 了!帮你把IPD流程从“纸上”搬进系统

    在制造业.智能硬件.软件研发等行业中,IPD****(集成产品开发)流程已经成为提升产品成功率.降低开发浪费.让组织以"市场为导向"进行创新的关键方法论. 但落地 IPD 的过程往 ...