7 корисних порад для новачків в Java

6 хв. читання

Доброго дня, шановні читачі Codeguida! В цій невеликій статті, я хотів би дати декілька порад, що, на мою думку, можуть бути корисними для тих, хто відносно недавно розпочав вивчення Java.

  1. Уникайте створення зайвих об'єктів і завжди віддавайте перевагу «лінивій» ініціалізації.

Як відомо, сворення об'єктів в Java – дорога, в плані продуктивності та використання пам'яті, операція. Таким чином, бажано, створювати або ініціалізувати об'єкти лише тоді, коли це необхідно.

public class Human {
 
    private List friends;
     
    public List getFriends () {
         
        //ініціалізація лише тоді, коли це необхідно
        if(null == friends) {
            friends = new ArrayList();
        }
        return friends;
    }
}
  1. Щоб перевірити порожній рядок завжди використовуйте isEmpty() замість equals().

Є декілька різних шляхів, щоб перевірити порожній рядок чи ні, і один з них це abc.equals(""). Ніколи не робіть так. Найкращий спосіб перевірити порожній рядок рядок чи ні – використання методу isEmpty().Цей метод просто порівнює довжину рядку з 0, використовуючи метод length(). Тому ця операція є менш витратною.

Щоб впевнитись, просто порівняте вихідний код equals() та isEmpty():

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;
    }

public boolean isEmpty() {
        return value.length == 0;
}

  1. Повертайте порожні колекції замість null.

Якщо функція повертаю колекцію, що немає значень, переконайтеся, що повертається саме пуста колекція, а не null. Це позбавить вас додаткових перевірок на null.

public List<user> getUsers() {
    return ( null == users ? new ArrayList<user>(0) : users);
}
  1. Використовуйте рядки обережно.

Якщо два рядки об'єднані за допомогою "+" в "for" циклі, то кожного разу створюється новий об'єкт String. Це викликає втрати пам'яті і збільшує час виконання. Крім того, уникайте використання конструктору при створення рядка. Наприклад

//Повільніша ініціалізація
String str1 = new String("Повільніша ініціалізація");
	     
//Швидша ініціалізація
String str2 = "Швидша ініціалізація";
  1. Намагайтесь використовувати примітиви замість класів-обгорток.

Класи-обгорки працюють повільніше за примітиви, оскільки вони зберігають додаткову інформацію, а примітиви – це лише значення. Іноді програміст може зробити помилку в коді, використовуючи клас-обгортку. Розглянемо наведений нижче приклад:

int x = 10;
int y = 10;
 
Integer x1 = new Integer(10);
Integer y1 = new Integer(10);
 
System.out.println(x == y);
System.out.println(x1 == y1);

Перший sysout, друкуватиме true, в той час як другий буде друкувати false. Проблема в тому, що для порівняння двох об'єктів класу-обгортки ми не можемо використовувати оператор ==, оскільки він порівнює посилання, а не фактичне значення.

  1. Ніколи не кидайте "java.lang.Exception".

Ніколи не кидайте відразу java.lang.Exception. Це суперечить меті використання зазначених винятків. Кидайте більш конкретні виключення, або створюйте власні, якщо не знайшли необхідного, для конкретної ситуації.

  1. Обробка NullPointerException.

NullPointerException, є досить поширеним винятком в Java. Цей виняток виникає, коли ми намагаємось звернутись до метода чи поля об'єкта, що є посиланням на null.

Ніколи не обробляйте NullPointerException за допомогою try-catch-finally. Більше доцільним буде перевірка поля на null.

int noOfStudents = 0;
if(school.listStudents() != null) {
     noOfStudents = school.listStudents().count;
}

Шановні читачі, якщо стаття вам здалася цікавою й ви хотіли б побачити на Codeguida щось інше стосовно Java, будь ласка, пишіть теми для статей в коментарях.

Дякую за увагу!

Іллєнко Костянтин, Java Software Engineer.

Використані матеріали:

  1. 10 Most Useful Java Best Practice Quotes for Java Developers

  2. 30 Java Programming Tips and Best Practices for Beginners

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація