Top chyby v Javě: Znáte je všechny a umíte je řešit?

Pokud s programováním v Javě právě začínáte, je přirozené, že občas uděláte chybu. Dobrá zpráva je, že většina těchto chyb je velmi běžná – a lze se jim poměrně snadno vyhnout. V tomto článku si představíme 5 nejčastějších chyb začátečníků v Javě a poradíme, jak se jim vyhnout.

1. Deklarace a inicializace proměnných

Častou chybou je použití proměnné bez její inicializace. V Javě musíte proměnnou nejprve deklarovat a inicializovat, než ji použijete.

// CHYBA: proměnná není inicializována
int vek;
System.out.println(vek); // chyba při kompilaci

Pozor také na typové chyby:

String cislo = 25; // CHYBA: String nelze přiřadit typu int

Řešení: proměnné vždy inicializujte a používejte odpovídající datové typy.

2. Nekonečné smyčky a špatné podmínky

Chyby v cyklech mohou způsobit nekonečné smyčky:

int i = 0;
while (i < 5) {
    System.out.println(i);
    // chyba: i se nezvyšuje
}

Také pozor na záměnu = a ==:

if (a = 5) {
    // místo porovnání dochází k přiřazení
}

Řešení: před spuštěním cyklu ověřte podmínku a změnu hodnoty řídicí proměnné.

3. NullPointerException a práce s objekty

Tato chyba vzniká při pokusu zavolat metodu na objektu, který je null:

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

Řešení: před použitím objektu vždy zkontrolujte, zda není null.

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

Vhodné je také využití konstrukcí jako Optional nebo Objects.requireNonNull().

4. Překročení indexu pole (IndexOutOfBoundsException)

Při přístupu mimo rozsah pole dojde k výjimce:

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

Řešení: před přístupem k prvku zkontrolujte délku pole, nebo použijte bezpečný for-each cyklus:

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

5. Neefektivní práce s pamětí a zdroji

Začátečníci často zbytečně vytvářejí nové objekty:

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

Lepší je využít String pool:

String a = "Test";
String b = "Test"; // sdílí stejný objekt

Další chybou je neuzavírání zdrojů jako soubory či databázová připojení.

try (Scanner sc = new Scanner(System.in)) {
    // bezpečné použití – uzavře se automaticky
}

Chcete se těmto chybám vyhnout od začátku?

Vyzkoušejte kurz JAVASE1 – Programovanie v JAVA SE: Syntax jazyka JAVA, kde vás naučíme psát čistý, správný a efektivní Java kód bez zbytečných chyb. Kurz je ideální pro úplné začátečníky.

Jak začít programovat?

Úvod do programování pro každého bez předchozích znalostí.

Stáhněte si náš ebook teď výjimečně zdarma!!!

Viac informacií preberáme na kurze:

Kurz JAVASE1 - Základy programování v jazyce Java

Marián Knězek