new Float (1.2f) создает new Float объект каждый раз, потребляя память.
Если вы используете фабричный метод Float.valueOf (1.2f) JVM может повторно использовать существующие экземпляры объекта Float для того же значения. Он может создать новый экземпляр объекта, только если еще не существует экземпляра Float с таким же значением.
Обычно вы хотите использовать Float.valueOf (1.2f) вместо нового Float (1.2f).
Также обратите внимание, что примитивы и объекты работают по-разному с оператором равенства == .
float x1 = 1.2f;
float x2 = 1.2f;
x1 == x2 // true
Float f1 = new Float(1.2f);
Float f2 = new Float(1.2f);
f1 == f2 // false