title: Why are there no byte or short literals in Java?
body: <p>I can create a literal long by appending an L to the value; why can't I create a literal short or byte in some similar way? Why do I need to use an int literal with a cast?</p>
  
  <p>And if the answer is "Because there was no short literal in C", then why are there no short literals in C?</p>
  
  <p>This doesn't actually affect my life in any meaningful way; it's easy enough to write (short) 0 instead of 0S or something. But the inconsistency makes me curious; it's one of those things that bother you when you're up late at night. Someone at some point made a design decision to make it possible to enter literals for some of the primitive types, but not for all of them. Why?</p>