ТОП-10 вопросов по строкам в Java

ТОП-10 вопросов по строкам в Java

Ниже приведены 10 самых часто задаваемых вопросов по Java Strings.

10. Как сравнить строки? Использовать «==» или equals()?

Если просто, то «==» используется, если ссылки равны, а equals() используется, если значения равны. Если вы хотите проверить, являются ли две строки одним и тем же объектом, то вы всегда должны использовать equals().
Почему так? Вот наглядный пример и хорошее объяснение что такое пул строк в Java.

9. Почему предпочтительнее char[], чем string для безопасности конфиденциальной информации?

Строки являются неизменными, то есть после создания они не меняются до уничтожения сборщиком мусора. А используя массив вы можете явно изменять его элементы. Таким образом, безопасность конфиденциальной информации (например, пароль) не будет присутствовать в любой точке системы.

8. Можно ли использовать string в операторе switch?

Да, можно. Правда, такая возможность появилась в Java лишь с JDK 7. До этого мы не могли использовать string в операторе switch.

7. Как преобразовать (конвертировать) String в int?

Просто, но часто забывается.

6. Как разбить строку по пробелам?

И здесь все просто:

Как видите, здесь используется метод split с параметром в виде регулярного выражения.

5. Что на самом деле делает метод substring()?

В JDK 6 метод substring() возвращает массив символов, из существующей строки, но не создает новый. Чтобы создать новую строку, необходимо было использовать небольшой трюк — добавить в конец пустую строку:

В результате выполнения этого кода создастся новый массив символов, который конвертируется в новую строку. Описанный выше подход может сделать вашу программу быстрее, потому что сборщик мусора будет собирать лишь неиспользуемую строку, а сохранит только подстроку.

Начиная с JDK 7, метод substring() создает новый символьный массив, не используя входную строку.

4. String vs StringBuilder vs StringBuffer

String vs StringBuilder: StringBuilder изменяемый, а это значит, что вы можете изменить его после создания.
StringBuilder vs StringBuffer: StringBuffer синхронизируемый, а это означает, что он поточно-безопасный, но работает медленнее, чем StringBuilder.

3. Как продублировать/повторить строку в Java?

В Java мы можем использовать метод repeat() из StringUtils пакета Apache Commons Lang.

2. Как преобразовать строку в дату?

Давайте покажем это все на примере:

1. Как посчитать количество вхождений символа в строке?

Мы же хотим, чтобы наша программа работала быстро и без ошибок, правильно? Тогда давайте использовать метод countMatches() из StringUtils пакета Apache Commons Lang.

На этом наш ТОП-10 заканчивается. Следите за обновлениями в Блоге и выходом новых статей.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *