import com.google.common.hash.Hashing; import com.google.common.primitives.UnsignedBytes; import com.google.common.util.concurrent.SettableFuture; import java.util.Comparator; /** Three Guava features whose implementations have an Unsafe fast path (see output/11): hashing, byte comparison, futures. Needs guava on the class path. */ public class GuavaProbe { public static void main(String[] args) throws Exception { byte[] data = "unsafe-migration".getBytes(); System.out.println("murmur3_128 = " + Hashing.murmur3_128().hashBytes(data)); Comparator cmp = UnsignedBytes.lexicographicalComparator(); System.out.println("comparator = " + cmp.getClass().getName()); System.out.println("compare = " + Integer.signum(cmp.compare(new byte[] {1, 2, 3}, new byte[] {1, 2, 4}))); SettableFuture f = SettableFuture.create(); f.set("ok"); System.out.println("future = " + f.get()); } }