import java.util.Map;
import java.util.WeakHashMap;

class Test {
    public static void main(final String[] args) {
        final Map<A, B> map = new WeakHashMap<>();
        for (int i = 0; i < 10000; i++) {
            final B b = new B();
            final A a = b.a;
            map.put(a, b);
        }

        for (int i = 0; i < 10; i++) {
            System.gc(); // Just to be sure :P
        }

        System.out.println(map.size());
    }

    private static class A {
    }

    private static class B {
        public A a = new A();
    }
}