title: Why is sun.misc.unsafe.Unsafe not in one of the default java.* packages?
body: <p>In Java there is the <code>Unsafe</code> class in the java.lang.unsafe package that provides low-level access to operations.</p>
  
  <p>Now it seems to me that the JVM needs to support <em>all</em> of the methods available in the <code>Unsafe</code> class in order to be compliant to the JLS, example methods can be found <a href="http://www.docjar.com/html/api/sun/misc/Unsafe.java.html" rel="nofollow">here</a>.</p>
  
  <p>Examples of the operations <code>Unsafe</code> provides and JVMs need to support in order to be compliant to the JLS would be:</p>
  
  <ul>
  <li>Working with objects</li>
  <li>Storing data (of type int, long, byte, etc.)</li>
  <li>Retrieving data</li>
  <li>Working with monitors</li>
  <li>Working with memory fences</li>
  <li>etc.</li>
  </ul>
  
  <p>My question now is: Why can we not find the <code>Unsafe</code> class in a java.* package? Is there a specific reason why it would be better that every JVM provider creates their own sun.misc.unsafe.Unsafe variant instead of writing an implementation for a class defined in the java.* package?</p>