Java instancia el objeto corto en Java

Me preguntaba por qué podemos hacer:

Long l = 2L;
Float f = 2f;
Double d = 2d;

o incluso

Double d = new Double(2);

y no

Short s = 2s; //or whatever letter it could be

ni

Short s = new Short(2); //I know in this case 2 is an int but couldn't it be casted internally or something?

¿Por qué necesitamos tomar a los constructores con un String o con un short?

Respuestas a la pregunta(2)

Su respuesta a la pregunta