Разница между Long.valueOf (java.lang.String) и новым Long (java.lang.String)?

Я объединяю код, написанный двумя разными людьми, и замечаю, что преобразование значения String в Long выполняется двумя различными способами.

Кодер № 1 сделал это:

String strId = "12345678";
...
Long lId = new Long(strId);

В то время как кодер # 2 сделал это:

String strId = "12345678";
...
Long lId = Long.valueOf(strId);

Функционально код работает точно так же. Вокруг каждого бита есть блок try / catch для обработки любогоNumberFormatException это брошено. Значение входящей строки представляет собой 8-значную строку, которая представляет собой десятичное число:"12345678" и в обоих случаях он правильно преобразуется вLong.

Есть ли функциональная разница между передачей строки в конструкторе и использованием Long.valueOf ()? Я проверил документ конструктора здесь:

Long (java.lang.String)

и документы для valueOf () здесь:

Long.valueOf (java.lang.String)

Насколько я могу судить, они оба вызывают parseLong (), поэтому не имеет значения, какой из них используется. Я просто хочу убедиться, что я не настрою себя на какое-то странное поведение в будущем. Кроме того, является ли один стиль более "правильным" (ха-ха), чем другой?

Ответы на вопрос(6)

Ваш ответ на вопрос