Я знаю, что '==' не работает со значениями вне диапазона [-128,127], поскольку в этом диапазоне хранится кеш, содержащий объекты Integer, и возвращается эта же ссылка, если значение находится в пределах диапазона. Но почему ' > ', '<', ' > =', '< =' дают правильные ответы даже вне диапазона?
Integer a=150;
Integer b=150;
System.out.println(a==b); //returns false
Integer a=150;
Integer b=150;
System.out.println(a>=b); // returns true
Почему это происходит?