title: Byte.decode("10") and Byte.valueOf("10") - what is a difference?
body: <p>Java 6 API primitive type wrappers have pairs of static methods <strong>decode(String s)</strong> and <strong>valueOf(String s)</strong>. Both of them return a new object of wrapper class type and none of them are annotated as deprecated. Does someone know the difference between them? For example:</p>
  
  <pre><code>Byte b1 = Byte.decode("10");
  </code></pre>
  
  <p>and</p>
  
  <pre><code>Byte b2 = Byte.valueOf("10");
  </code></pre>