title: Long is of size 8 bytes then how can it be 'promoted' to float(4 bytes) in JAVA?
body: <p>I read that in Java the long type can be promoted float and double ( <a href="http://www.javatpoint.com/method-overloading-in-java">http://www.javatpoint.com/method-overloading-in-java</a> ). I wanted to ask that long integer takes 8 bytes of memory in JAVA and float takes 4 bytes then how this promotion works? Isn't it possible that we could be facing some data loss if we promote this way? <p>Also it is noticeable that all other type promotions are from smaller size primitive datatype to similar or larger size datatypes. <p></p>
  
  <ul>
  <li>byte to short, int, long, float, or double</li>
  <li>short to int, long, float, or double</li>
  <li>char to int, long, float, or double</li>
  <li>int to long, float, or double</li>
  <li>long to float or double _______________ Exceptional In case Of Float</li>
  <li>float to double</li>
  </ul>