Что вы думаете о следующей строке кода ?:Java Autoboxing ValueOf (String)
String s= "10.0";
float f = Float.valueOf(s).floatValue();//1
нужно ли это? Почему это было бы лучше, используя такой синтаксис, а не с помощью:
float f = Float.valueOf(s);//2
Он по-прежнему дает те же результаты, принимая преимущество функции Autoboxing.
Вкратце, мой вопрос: зачем выбирать первый синтаксис вместо второго? Все ли они одинаковы?
С точки зрения сбора мусора, он по-прежнему предпочитает второй (Float.valueOf (s)) вместо (Float.valueOf (s) .floatValue(). Последний создает анонимный объект в куче, тогда как прежний не делает, хотя он использует распаковку. Какой из них более эффективен? Я знаю, что лучше parseFloat (String). Однако, если бы мне пришлось выбирать между 2, что бы вы предложили? (также с точки зрения сбора мусора) заранее заблаговременно – Rollerball
@Rollerball. Нет, в обоих случаях вы создаете объект, как я сказал в своем ответе. Метод Float.valueOf' возвращает 'new Float()'. Таким образом, создается только объект. Таким образом, нет смысла сравнивать, основываясь на сбор мусора. –
@ Rollerball.Если вы заставите меня выбирать только из первых двух (я проклинаю вас за это), я пойду за вторым и воспользуюсь автоматической распаковкой и не буду делать эту задачу вручную. –