The initial index of arrays and collections varies between computer languages. It's probably fair to say that more languages use zero than use one.
Both approaches have their benefits. Starting at zero maps well onto computer hardware, some algorithms, some types of maths etc. Starting at one maps well onto real-life lists etc.
Java probably went for zero because C and C++ use zero, and Java aims to be easy for C/C++ developers to pick up. C is a language often used for low-level work, so zero was an obvious choice for C.
Someone on JavaRanch has a tag-line that says something like: -
Debate rages on about whether 0 or 1 is the best starting index for arrays. My suggestion of 0.5 was dismissed without, I felt, proper consideration.
I always liked that one.