private static boolean hasGetAndSetSupport()
    {
        try
        {
            Unsafe.class.getMethod("getAndSetObject", Object.class, Long.TYPE, Object.class);
            return true;
        }
        catch (Exception ignored)
        {
        }
        return false;
    }
Why should we resort to using Unsafe?<br>
<ol>
<li>To construct class fields which allow volatile/ordered/plain access: This requirement is covered by
{@link AtomicReferenceFieldUpdater} and similar but their performance is arguably worse than the DIY approach
(depending on JVM version) while Unsafe intrinsification is a far lesser challenge for JIT compilers.
<li>To construct flavors of {@link AtomicReferenceArray}.
<li>Other use cases exist but are not present in this library yet.
</ol>

@author nitsanw
jctools-core/src/main/java/org/jctools/util/UnsafeAccess.java