title: Java difference between Short.parseShort and Short.valueOf
body: <p>I have recently stumbled upon <a href="https://stackoverflow.com/questions/19392178/java-convert-from-string-array-to-short-array">another question</a> on Stack Overflow where one person suggests using Short.parseShort(String s) and another Short.valueOf(String s).</p>
  
  <p>I have tried both myself, and I found no difference in functionality and the <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Short.html#parseShort(java.lang.String)" rel="nofollow noreferrer">official Documentation</a> didn't really help me either:</p>
  
  <blockquote>
    <p><strong>Short.parseShort:</strong>
    Parses the string argument as a signed decimal short. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value or an ASCII plus sign '+' ('\u002B') to indicate a positive value. The resulting short value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseShort(java.lang.String, int) method.</p>
    
    <p><strong>Short.valueOf:</strong>
    Returns a Short object holding the value given by the specified String. The argument is interpreted as representing a signed decimal short, exactly as if the argument were given to the parseShort(java.lang.String) method. The result is a Short object that represents the short value specified by the string.</p>
  </blockquote>
  
  <p>Both accept the additional Parameter <code>radix</code>, and both throw a <code>NumberFormatException</code>.</p>
  
  <p>They seem to be identical, but if that is the case, why do both exist?</p>