Пожалуй, большинство людей хотя бы раз в жизни использовало конструктор new Integer(int). Это могло случиться либо по незнанию, либо по той причине, что до Java 1.5 это было единственным способом оборачивания int в Integer. Однако, начиная с Java 1.5, этот вызов стал в большинстве случаев необязательным, и вместо него рекомендованным и более эффективным способом обёртки стали метод Integer.valueOf() и автобоксинг:
intList.add(new Integer(5)); // Bad intList.remove(new Integer(6)); // Bad intList.add(5); // Good intList.remove(Integer.valueOf(6)); // Good
Однако до недавнего времени такая рекомендация никак не подкреплялась компилятором. И, наконец, в Java 9 конструкторы Integer пометили аннотацией @Deprecated, а также конструкторы всех остальных обёрнутых примитивных типов: Long, Float, Double, Boolean, Byte, Short, Character. В список deprecated конструкторов также вошли конструкторы, принимающие String: вместо них рекомендуется использовать методы valueOf(String) или parseInt() / parseLong() и т.д.