I have an Ergodox EZ for work, and I love it for that, but for my gaming I just use a typical keyboard, I couldn't get used to it for gaming.
iconst_1
invokestatic java/lang/Integer.valueOf:(I)Ljava/lang/Integer new Integer(10) == new Integer(10) // true
Before value classes this would always be false. The only time comparing Integer objects with == could be true is if Integer object was create by going through Integer.valueOf (or obviously if they were the same object reference.) By default the cached values where -127 to 127, but that is tuneable at runtime.