java初始化问题
无意中看到这样一个程序段:
class Singleton {
private static Singleton obj = new Singleton();
public static int counter1;
public static int counter2 = 0;
private Singleton() {
counter1++;
counter2++;
}
public static Singleton getInstance() {
return obj;
}
}
public class MyMain {
public static void main(String[] args) {
Singleton obj = Singleton.getInstance();
System.out.println("obj.counter1=="+obj.counter1);
System.out.println("obj.counter2=="+obj.counter2);
}
}
自己预期结果:
obj.counter1==1
obj.counter2==1
实际运行一下得到如下结果:
obj.counter1==1
obj.counter2==0
发现自己解释不了,谁来帮忙解释下这个问题。另外调整 private static Singleton obj = new Singleton(); 这行代码位置,输出结果也有所不同。
...全文
相关推荐
深入解析Java中的变量未初始化问题及解决方案
在Java编程中,变量未初始化是一个常见的问题,它可能导致程序抛出`NullPointerException`,或是产生不可预测的结果。
三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题
本文档主要介绍了如何在短短三分钟内快速初始化并部署Java、Maven和Docker环境到Ubuntu 16.04操作系统上,以解决Linux环境搭建的繁琐问题。作者创建了一个名为Fast-Linux
【Java编程基础】六大核心问题解析:引用类型、字符串特性、final关键字及初始化规则
内容概要:本文详细探讨了Java编程中的六个常见问题,包括声明引用、==与equals的区别、String的不可变性、final关键字的作用、变量初始化规则以及instanceof操作符的使用。文章解
Java重写方法与初始化的隐患
"Java代码示例展示了重写父类方法时遇到的初始化问题,涉及到类继承、重写、以及对象初始化的顺序。"在Java编程中,重写(Override)父类方法是一种常见的做法,以扩展或修改父类的功能。在
flash cs5运行时出现“java运行时环境初始化时出现错误”.pdf
### flash CS5运行时出现“Java运行时环境初始化时出现错误”的解决方法#### 问题背景在使用Adobe Flash CS5的过程中,部分用户遇到了“Java运行时环境初始化时出现错误”的提示


