I always assumed this was because .net (arguably it's main competitor) was churning fast through version numbers and they "wanted to keep up".
I swear I googled this like 2 months ago and the first 2 or 3 links weren't helpful so I gave up. Thanks!
See https://openjdk.java.net/jeps/223#Dropping-the-initial-1-ele...
PS: had to edit, was really just a note about the numbers not the content of the versions!!!
In the end the case was settled out of court and MS agreed to pay more then 1 billion dollar to Sun. MS also agreed to license a whole slew of patents for use with .net.
[1] https://www.pinsentmasons.com/out-law/news/sun-sues-microsof...
.net didn't add support for macOS on ARM64 years ago. .net also didn't implement 2D rendering on macOS via Metal. etc. As a matter of fact .net didn't even support any other platform then Windows until recently.
Meaning .net has nowhere near the "write once, run anywhere" support Java has.
> J2SE 5.0
> […]
> The release on September 30, 2004 was originally numbered 1.5, which is still used as the internal version number. The number was changed to "better reflect the level of maturity, stability, scalability and security of the J2SE".
and
> This version introduced a new versioning system for the Java language, although the old versioning system continued to be used for developer libraries:
>> Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.
>> — Version 1.5.0 or 5.0?[32]
[32]: http://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5....