One of the possible reasons that int
is default literal is that using lont
could cause hard to detect errors in multi-threading application as specified in JLS 17.7 Non-atomic Treatment of double and long.
For the purposes of the Java programming language memory model, a single write to a non-volatile long or double value is treated as two separate writes: one to each 32-bit half. This can result in a situation where a thread sees the first 32 bits of a 64-bit value from one write, and the second 32 bits from another write.