Возникает ли влияние на производительность, если str
является java.lang.String
, с использованием "String".equals(str)
против str.equals("String")
? Моя кишка говорит: «Нет, JVM/компилятор оптимизирует литеральную строку в любом случае», но я вижу, что первый стиль обрезается достаточно в разных кодовых базах, и он выглядит так неестественно (по крайней мере для меня), поэтому я решил, что там должно быть причиной помимо стиля.str.equals («String») vs «String» .equals (str)
4
A
ответ
7
Единственная причина для использования "String".equals(str)
(что я считаю уродливым) - это лень, так как это избавляет вас от необходимости проверять, что str != null
до звонка str.equals("String")
.
Оценка производительности не должна быть никакой разницы. Вы сравниваете два экземпляра String
в любом случае.
0
"String".equals(str)
Не дает тот же результат, как
str.equals("String")
, если str == null
.
В первом случае он возвращает false
, а во втором он выбрасывает NullPointerException
.
"String".equals(str)
Является ли на самом деле эквивалентно
str != null && str.equals("String")
Смежные вопросы
- 1. В чем разница в string.Equals ("string") и "String" .Equals (string)?
- 2. String + String vs String + String, возвращаемый методом
- 3. std :: string vs string
- 4. JSTL String Equals
- 5. assert p.name ("String"). Equals ("Child String")
- 6. String vs Byte string
- 7. String vs string
- 8. Разница между char * str = "STRING" и char str [] = "STRING"?
- 9. String & String :: Concat (const char Str [])
- 10. Почему std :: string str = {}?
- 11. string (array) vs string (list) in python
- 12. C# string vs String, bool vs Boolean
- 13. literal string vs variable string
- 14. String Literal vs String Object
- 15. constexpr string vs const string
- 16. TextBox.Text + = "string"; vs TextBox.AppendText ("string");
- 17. String builder vs string concatenation
- 18. string vs String in haskell?
- 19. String cast vs String unwrapping
- 20. Каковы преимущества .equals «String» (OtherString)
- 21. Python str() double quoteed string
- 22. Использование str и String взаимозаменяемо
- 23. Integer.parse (String str) java.lang.NumberFormatException: Errors
- 24. C#: Почему список <String> .Equals (String) компилируется?
- 25. C#: В чем разница между CompareTo (String) и Equals (String)?
- 26. My.Settings type "string" vs "connection string"
- 27. Datatype String vs string in C#
- 28. Buffer vs String speed: Почему String быстрее?
- 29. Поле Java <String> vs String
- 30. Annotation String [] oneArr(); vs String [] [] twoArr(); Декларация