`
nning
  • 浏览: 520 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

类变量初始化顺序哈哈

阅读更多
我也不太清楚,先看代码吧;
class X {
	private static X instance = new X();
	
	int a = 1;
	{System.out.println(a);}
	
//	static int b;
	static int b = 2;//2
	static {System.out.println(b);}
	
	private X() {
		super();
		a = 5;
		b = 6;
		
	}
	
	public static X getInstance(){
		return instance;
	}
	
}
public class Singleton{
	public static void main(String[] args) throws ClassNotFoundException {
//		Class.forName("com.mine.test.X");
		System.out.println("----------------");
		X x1 = X.getInstance();
		System.out.println(x1.a);
		System.out.println(X.b);
		
	}
}


看了结果又点晕,
debug一下看了执行顺序,好了一点
有时间再深入研究下
分享到:
评论

相关推荐

    Android学习 我感觉挺不错的 哈哈

    静态代码块在类加载时执行,常用于初始化静态变量。 - **synchronized**:用于解决并发问题,确保线程安全。它可以修饰方法或代码块,确保同一时刻只有一个线程执行特定代码,保证数据一致性。 【并发控制】 `...

    Linux2.6内核标准教程(共计8--第8个)

    5.3.1 中断描述符表的初步初始化 204 5.3.2 中断描述符表的最终初始化 206 5.4 具体处理过程 216 5.4.1 公用的硬件处理阶段 217 5.4.2 中断的软件处理阶段 218 5.4.3 异常的软件处理阶段 229 5.5 延迟...

    数据结构学生顺序表解题代码.rar

    1. 初始化:创建一个空的顺序表,指定其最大容量。 2. 插入学生信息:在表的末尾添加新的学生信息,包括学号、姓名、成绩等字段。 3. 删除学生信息:根据学号或其他标识符删除特定的学生记录。 4. 查找学生:根据...

    非线性整数规划的遗传算法Matlab程序

    2. **初始化种群**:创建初始种群`Xp`,并初始化其他辅助变量。 3. **构建初始种群**:通过随机方式生成初始种群。此步骤涉及到随机数生成以及条件分支判断,确保生成的个体满足一定的约束条件。 4. **迭代过程**: ...

    java面试题2020.pdf

    6. 反射中,`Class.forName()`和`ClassLoader.loadClass()`的区别:`Class.forName()`通过类名加载类并初始化,而`ClassLoader.loadClass()`只加载类,不初始化。 7. `Int`和`Integer`的区别:`int`是基本数据类型...

    cpp代码-哈哈哈哈哈哈哈哈哈

    在C++中,`main()`函数负责初始化程序并调用其他函数来执行任务。 `README.txt`则是一个文本文件,通常用于提供项目说明、使用指南、作者信息或者任何与项目相关的重要提示。在开源软件或代码库中,`README`文件是...

    调试程序_westivw_LED_调试程序_

    - **使用串口监视器**:通过 `Serial.begin(speed)` 初始化串口通信,并使用 `Serial.println()` 或 `Serial.print()` 输出变量值或调试信息,可以在 Arduino IDE 的串口监视器中查看。 - **断点调试**:虽然 ...

    c++相关知识分享。。。

    * 行长度、空格还是制表位、函数声明与定义、Lambda 表达式、函数调用、列表初始化格式、条件语句、循环和开关选择语句、指针和引用表达式、布尔表达式、函数返回值、变量及数组初始化、预处理指令、类格式、构造...

    04737C++真题.rar

    真题可能考察结构体与联合体的定义、初始化和操作。 5. **类与对象**:C++的核心在于面向对象编程。考生需要理解类的定义、对象的创建、成员函数、封装、继承和多态等概念。 6. **模板与异常处理**:模板用于创建...

    matlab遗传算法优化

    通常,这个文件会包含初始化参数设置(如种群大小、迭代次数、适应度阈值等)、种群生成、迭代过程以及结果的显示或保存。 `de_code.m`可能代表差分进化编码(Differential Evolution Coding),这是一种改进的编码...

    qn8027应用例程,

    在keil中,你将看到C语言编写的源代码,这些代码实现了qn8027芯片的初始化、数据收发等功能。 源码中的关键部分可能包括以下几个方面: 1. **芯片初始化**:这部分代码会设置qn8027的工作模式、频率、波特率等参数...

    Swift学习demo.zip

    Swift提供了默认构造函数、便利构造函数以及析构函数,允许开发者自定义对象的初始化过程。 4. **可选项(Optionals)** 可选项是Swift中的一个特性,用于处理值可能缺失的情况。它通过在变量或常量声明时添加问号...

    javase阶段bug解决笔记

    - **错误**: 报告`java.lang.Exception: No tests found matching [{ExactMatcher: fDisplayName=insert}]`或类似初始化异常。 - **解决方案**: - 确认是否导入了JUnit测试库:`import org.junit.Test;` - 检查...

    从零开始的OpenFOAM-从纯对流案例出发

    在设定好网格后,我们需要在"0"目录下初始化流场变量。例如,可以将速度设为零,压力设为常数,以符合无初速度、无外加压力的纯对流假设。同时,还需在"constant"目录下设置流体的物性,如密度、粘度等。 然后,...

    Unity3D C#脚本中文教程

    关键的MonoBehaviour方法包括Awake()、Start()、Update()等,分别在对象初始化、开始运行和每一帧时被调用。理解这些生命周期方法的执行顺序对于编写游戏逻辑至关重要。 四、组件系统 Unity的组件系统允许开发者将...

    重构与模式.pdf

    9. **移除设置器**(Remove Setting Method):如果一个对象的状态变化过于频繁,可以考虑移除设置器方法,改用构造函数或工厂模式初始化对象状态。 10. **引入中间类**(Introduce Middle Class):当两个类之间...

    c语言设计第三版

    数组是C语言中用于存储一组数据的复合数据类型,本书介绍了如何定义和引用一维数组、二维数组以及字符数组,包括数组的初始化、数组元素的引用和字符串处理。数组是实现数据存储和处理的重要工具。 函数是C语言程序...

    找CALL测试delphi

    5. **调用顺序**:如果函数之间存在依赖关系,确保调用顺序正确,不会导致未初始化的变量或资源冲突。 6. **多线程和并发**:在多线程环境中,函数调用可能需要考虑同步和互斥问题,防止数据竞争。 7. **内存管理*...

    Web自动化测试-基于Selenium和Bromine)

    5. **实战演练**:通常,一个完整的自动化测试脚本会包括初始化浏览器、导航到目标URL、执行测试步骤(如点击按钮、填写表单)、验证结果、关闭浏览器等步骤。结合Selenium和Bromine,你可以编写出结构清晰、可维护...

    哈里斯鹰算法java实现

    1. **初始化种群**:首先,我们需要创建一个由随机解(可能的解决方案)组成的初始种群,这些解代表鹰在搜索空间中的位置。每个鹰的位置通常由一串数值表示,对应于问题的决策变量。 2. **适应度函数**:适应度函数...

Global site tag (gtag.js) - Google Analytics