09 is not recognized where as 9 is recognized [duplicate]
In java, if you are defining an integer, a leading '0' will denote that you are defining a number in octal
int i = 07; //integer defined as octal
int i = 7; // integer defined as base 10
int i = 0x07; // integer defined as hex
int i = 0b0111; // integer defined as binary (Java 7+)
There is no 9 in Octal (what you get with a preceding 0). 0-7, only.
When you precede a number with 0 ("09" rather than "9"), then Java (and C and many other languages) interpret the number to be in octal - base-8.
"09" is not a valid number in octal - any single digit can be a maximum of "7" (since in octal, numbers go from 0..7).
Numbers that begin with the zero digit are treated as octal (base 8) literals, and 9 is not a valid octal digit.
10 is how many digits you have, whereas 010 is is what you get if you don't count your thumbs.