java初始化问题

yanebupt yanebupt 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

无意中看到这样一个程序段:
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`,或是产生不可预测的结果。

2401_85763639

三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题

本文档主要介绍了如何在短短三分钟内快速初始化并部署Java、Maven和Docker环境到Ubuntu 16.04操作系统上,以解决Linux环境搭建的繁琐问题。作者创建了一个名为Fast-Linux

weixin_38621272

【Java编程基础】六大核心问题解析:引用类型、字符串特性、final关键字及初始化规则

内容概要:本文详细探讨了Java编程中的六个常见问题,包括声明引用、==与equals的区别、String的不可变性、final关键字的作用、变量初始化规则以及instanceof操作符的使用。文章解

myvip5(白名单)

Java重写方法与初始化的隐患

"Java代码示例展示了重写父类方法时遇到的初始化问题,涉及到类继承、重写、以及对象初始化的顺序。"在Java编程中,重写(Override)父类方法是一种常见的做法,以扩展或修改父类的功能。在

weixin_38571449

flash cs5运行时出现“java运行时环境初始化时出现错误”.pdf

### flash CS5运行时出现“Java运行时环境初始化时出现错误”的解决方法#### 问题背景在使用Adobe Flash CS5的过程中,部分用户遇到了“Java运行时环境初始化时出现错误”的提示

Rose520817
评论 18
收藏 已收藏
分享
返回顶部
yanebupt
Java EE 67,535 成员 225,843 内容