Top chyby v Jave: Poznáte ich všetky a viete ich riešiť?

Ak s programovaním v Jave práve začínate, je prirodzené, že sa občas dopustíte chýb. Dobrou správou je, že väčšina z nich sa opakuje u takmer každého nováčika. V tomto článku si predstavíme 5 najčastejších chýb, ktoré brzdia váš pokrok — a naučíme vás, ako sa im vyhnúť.

1. Problémy s deklaráciou a inicializáciou premenných

Jednou z najčastejších chýb je používanie premennej bez jej inicializácie. V Jave totiž musíte každú premennú najskôr deklarovať a až potom použiť.

// CHYBA: premenná nie je inicializovaná
int vek;
System.out.println(vek); // chyba pri kompilácii

Ďalšou častou chybou je nesprávny typ premennej. Napríklad:

String cislo = 25; // CHYBA: typ String nie je kompatibilný s int

Riešenie: vždy inicializujte premenné a používajte typ, ktorý zodpovedá požadovanej hodnote. Pomáha tiež dodržiavať pomenovacie konvencie a neprepísať si vlastné premenne napríklad menami tried ako String alebo Integer.

2. Nekonečné cykly a nesprávne podmienky

Cykly sú základom mnohých programov, no zlá podmienka alebo zabudnutý inkrementátor môže viesť k nekonečnej slučke:

// CHYBA: cyklus nikdy neskončí
int i = 0;
while (i < 5) {
    System.out.println(i);
    // chyba: i sa nezvyšuje
}

Ďalšou častou chybou je používanie operátorov ako = namiesto == v podmienkach:

// CHYBA: priradenie namiesto porovnania
if (a = 5) {
    // ...
}

Riešenie: vždy kontrolujte, či sa cyklus niekam posúva a že porovnávacie podmienky sú správne zapísané.

3. NullPointerException a práca s objektmi

Jednou z najznámejších výnimiek v Jave je NullPointerException, ktorá vznikne, keď sa pokúsite použiť objekt, ktorý nebol inicializovaný.

String meno = null;
System.out.println(meno.length()); // NullPointerException

Riešenie: pred použitím objektu ho vždy inicializujte alebo aspoň overte, že nie je null.

if (meno != null) {
    System.out.println(meno.length());
}

S nástupom novších verzií Javy môžete použiť aj Optional alebo výraz Objects.requireNonNull() na zníženie rizika.

4. Prekročenie indexu v poli (IndexOutOfBoundsException)

Ak sa snažíte získať prístup k neexistujúcemu indexu v poli alebo zozname, program skončí chybou.

int[] cisla = {1, 2, 3};
System.out.println(cisla[3]); // CHYBA: Index 3 neexistuje

Java indexuje od 0, preto posledný prvok poľa s veľkosťou 3 má index 2.

Riešenie: skontrolujte rozsah pomocou cisla.length alebo použite for-each cyklus:

for (int cislo : cisla) {
    System.out.println(cislo);
}

5. Neefektívne využívanie pamäte a zdrojov

Začiatočníci často zbytočne vytvárajú nové objekty aj vtedy, keď by mohli použiť existujúce:

String a = new String("Test");
String b = new String("Test");

Tým sa zbytočne zaťažuje pamäť a garbage collector. Lepšou možnosťou je využívať internovanie reťazcov:

String a = "Test";
String b = "Test"; // odkazuje na ten istý objekt

Ďalšou chybou je neuzatváranie zdrojov ako sú súbory, sockety alebo databázové spojenia.

try (Scanner sc = new Scanner(System.in)) {
    // bezpečne použiteľné – uzatvorí sa automaticky
}

Chcete sa týmto chybám vyhnúť od začiatku?

Vyskúšajte kurz JAVASE1 – Programovanie v JAVA SE: Syntax jazyka JAVA, kde vás naučíme písať čistý, správny a efektívny Java kód bez zbytočných chýb. Kurz je ideálny pre úplných začiatočníkov.

Ako začať programovať?

Úvod do programovania pre každého bez prechádzajúcich znalostí.

Stiahnite si náš ebook teraz výnimočne zdarma!!!

Viac informacií preberáme na kurze:

Kurz JAVASE1 - Programovanie v JAVA SE: Syntax Jazyka JAVA

Marián Knězek

 

Súvisiace články: