La sintassi Java è stata progettata per essere simile a quella di C, vedere ad esempio pagina 20 su Come la JVM Spec si è candidata al keynote del JVM Languages Summit 2008 di James Gosling ( 20_Gosling_keynote.pdf ):
- C syntax to make developers comfortable
A sua volta, questo è il modo in cui le costanti ottali sono definite in linguaggio C :
If an integer constant begins with 0x
or 0X
, it is hexadecimal. If it begins with the digit 0
, it is octal. Otherwise, it is assumed to be decimal...
Dato sopra, è naturale che i progettisti del linguaggio Java abbiano deciso di usare la stessa sintassi come in C.
Come indicato in questo commento , StackOverflow ha una risposta ragionevole Qui :
All modern languages import this convention from C, which imported it from B, which imported it from BCPL.
Except BCPL used #1234
for octal and #x1234
for hexadecimal. B has departed from this convention because # was an unary operator in B (integer to floating point conversion), so #1234 could not be used, and # as a base indicator was replaced with 0.
The designers of B tried to make the syntax very compact. I guess this is the reason they did not use a two-character prefix.