Yes, 1, is an int by default. However, 1, is also a compile time constant and
Java will do an implicit assignment conversion on a compile time constant if the constant is of type byte, short, char, or int and the type of the variable on the left is of type byte, short, or char and the value represented by the constant is within the range of the variable.
Please see
The Java Language Specification Section 5.2 for more information.