Несколько советов для начинающих Java разработчиков

1722 0

Из этого материала вы узнаете несколько крайне полезных и не очевидных советов для новичков в изучении Java.
Инертная инициализация
Создавайте или инициализируйте объекты только в тот момент, когда это нужно — это называется инертной инициализацией. Она пригодится, если вы будете выполнять сложную операцию, например, создавать запрос к базе данных.
Метод isEmpty(), если хотим проверить строку на пустоту
Несмотря на то, что существует множество способов проверить строку на null, многие новички используют не самый лучший из них — метод equals(“”). Не делайте так. Лучше используйте метод isEmpty(). Данная операция является менее затратной, поскольку метод посредством метода length(), сравнивает длину строки с нулем.
Рассмотрим метод isEmpty() более подробно:
public boolean isEmpty() {
return value.length == 0;}
Функция возвращает true, если длинна строки, переданной, как значение, равна нули и false, если не равна.
Метод equals() более сложный в своей реализации:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n– != 0) {
if (v1[i] != v2[i])
return false;
i++;}
return true;}}
return false;}
Если вы сравните их, то уверенны, что вы легко заметите разницу. Первый код легче будет обработаться и быстрее, чем второй.

Лучше вернуть пустую коллекцию, чем null
При возврате пустой коллекции важно убедиться в том, что возвращается именно пустая, а не null. Такая проверка избавляет в будущем от дополнительных проверок.
public List<Names>; getNames() {
return names == null ? Collections.emptyList() : names;}
Благодаря тернарному оператору это сделать нетрудно.

Немного о строках
Используя конкатенацию (+), для объединения строк в цикле for, каждую итерацию вы создаете новый объект String. Соответственно каждый раз увеличивается потребление ресурсов, а конкретно памяти. Вы ничего не заметите, если будете выполнять небольшую обработку данных, но ощутите, как вам не хватает памяти, если возьметесь работать с большим массивом данных. Старайтесь не пользоваться конструкторами при создании строки:
// плохо
String str1 = new String(“Hello, world!”);
// хорошо
String str2 = “Hello, world!”;
Если хотите объединить строки, пользуйтесь специальным классом StringBuilder.

Курсы программирования JAVA, подробнее можно прочитать тут:

 

Примитивы vs. классы-оболочки
Примитивы работаю намного быстрее, чем классы-оболочки, благодаря тому, что хранят значения без дополнительной информации. Более того, бывает случаются ошибки при работе с классом-оболочкой.
int a = 3;
int b = 3;
Integer aInt = new Integer(3);
Integer bInt = new Integer(3);
System.out.println(x == y);
System.out.println(aInt == bInt);
В первом варианте вы получите желаемый результат – true, во втором же false. В чем же проблема? А в том, что применяя по отношению к объектам-оболочкам оператор сравнения ==, мы сравниваем ссылки, а не реальные значения.
java.lang.Exception
Лучше создавайте свои исключения или используйте предопределенные, но конкретные.
Надеемся, что эти советы помогут вам улучшить ваши навыки программирования на Java.

Оценка информации
Голосование
загрузка...
Поделиться:

Комментирование закрыто.