import java.lang.reflect.Field; import jdk.internal.misc.Unsafe; public class Sink { public int a; private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final long offset; private static final Sink theSink = new Sink(); public static final Sink getSink() { return theSink; } static { try { Field field = Sink.class.getField("a"); offset = unsafe.objectFieldOffset(field); } catch (Throwable t) { throw new RuntimeException(t); } } void drain(boolean b) { unsafe.putBoolean(this, offset, b); } void drain(int i) { unsafe.putInt(this, offset, i); } public static void main(String args[]) throws Exception { Sink s = Sink.getSink(); s.drain(2); System.out.println(s.a); s.drain(true); System.out.println(s.a); } }