类中的volatile变量是否会默认设置为0?

我知道 java 将有一个默认构造函数来将变量初始化为 0,但是 volatile 变量呢?

   class Test { 
       volatile long a;
       volatile double b;
       volatile int c;
    }

我打印它们,每次结果都是 0,但能保证吗?

回答

Java 语言规范第 4.12.5 节说:

每个类变量、实例变量或数组组件在创建时都使用默认值进行初始化:

  • 对于byte类型,默认值为0,即(byte)0的值。
  • 对于short类型,默认值为0,即(short)0的值。
  • 对于 int 类型,默认值为 0,即 0。
  • 对于 long 类型,默认值为零,即 0L。
  • 对于 float 类型,默认值为正零,即 0.0f。
  • 对于 double 类型,默认值为正零,即 0.0d。
  • 对于char类型,默认值为空字符,即'u0000'。
  • 对于类型 boolean,默认值为 false。
  • 对于所有引用类型(第 4.3 节),默认值为 null。

如您所见,此规则适用于所有领域,无论其波动性如何。


以上是类中的volatile变量是否会默认设置为0?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>