TL;DR - Instance variables have default values. See [1].
You are correct to state that the value is zero, or rather 0. This is because in Java, instance variables, which are variables that reside within a class, but not a method, do not have to be manually initialised.
In Java, when declaring instance variable(s), if no value is given, the compiler will apply a default value to allow the program to run.
While this can be used in circumstances in which you may desire to change the value of the instance variable later, it is generally considered bad practice.
See here, the Java Documentation:
Default Values
It's not always necessary to assign a value when a
field is declared. Fields that are declared but not initialized will
be set to a reasonable default by the compiler. Generally speaking,
this default will be zero or null, depending on the data type. Relying
on such default values, however, is generally considered bad
programming style.
For information regarding the default values as per data type, see[1].
The documentation has further information regarding other variables, namely local:
Local variables are slightly different; the compiler never assigns a
default value to an uninitialized local variable. If you cannot
initialize your local variable where it is declared, make sure to
assign it a value before you attempt to use it. Accessing an
uninitialized local variable will result in a compile-time error.
The reason for the difference between local, and instance variables (in the way they are treated by the JVM) is namely that the instance variables are loaded into an area of memory known as the 'Heap' [2], and the local variables are loaded into a separate memory area called the 'Stack' [2]; although, now, there are exceptions to this [3]. The Heap stores objects and references to objects, and as such, Instance Variables are stored with their objects. Ultimately, there was a choice made, that was rather arbitrary, that forced the initialisation of local, but not instance variables.
[1] https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
[2] https://www.guru99.com/java-stack-heap.html
[3] Why do instance variables have default values in java?