The initial value of a boolean field in a Java class is false.
Java automatically assigns default values when it creates class variables, instance fields, or array components without an explicit initializer. For the primitive boolean type, that default is false. Thus, in class Lamp { boolean on; }, a newly constructed Lamp has on set to false unless a constructor or initializer changes it.
This rule is part of Java's definite-initialization and object-creation model. Other primitive defaults include 0 for numeric types, 0.0 for floating-point types, and the null character for char. Reference-type fields, including fields declared Boolean rather than boolean, default to null.
The biggest common mix-up concerns local variables. A local boolean declared inside a method is not automatically assigned false; Java requires it to be definitely assigned before use, or compilation fails. A field can also be explicitly initialized to true, so false is the implicit starting value, not an unchangeable property of every field.