Premenné a dátové typy v Jave: Od primitív po referencie

Ak sa učíte programovať v Jave, je dôležité porozumieť tomu, ako Java narába s premennými, typmi a pamäťou. Základný rozdiel medzi primitívnymi a referenčnými typmi vám pomôže vyhnúť sa bežným chybám, ako je NullPointerException. V tomto článku vám vysvetlíme všetko od základov.

1. Rozdelenie premenných na primitívne a objektové typy

Java podporuje dva základné druhy dátových typov:

Primitívne typy sú efektívne, rýchle a využívajú menej pamäte. Referenčné typy však umožňujú pracovať s komplexnými dátami, ako sú zoznamy, objekty alebo stromy.

2. Čo je referenčný typ a ako funguje smerník (pointer) na objekt

V Jave každý objekt existuje v heap pamäti, a keď ho priradíte premennému, priraďujete len referenciu (odkaz) na tento objekt – podobne ako smerník (pointer) v iných jazykoch.

String meno = "Eva";

V tomto prípade premenná meno neuchováva reťazec „Eva“, ale len adresu v pamäti, kde sa tento reťazec nachádza. Ak vytvoríte druhú premennú a priradíte jej túto referenciu, obe budú odkazovať na ten istý objekt:

String a = "Eva";
String b = a;

Zmena v jednom objekte môže ovplyvniť druhý, ak sa pracuje s mutovateľnými triedami (napr. ArrayList).

3. Význam hodnoty null a najčastejšie chyby

null znamená, že referenčná premenná neodkazuje na žiaden objekt. Ak sa pokúsite volať metódu alebo pristúpiť k atribútu cez null, vznikne výnimka NullPointerException.

String meno = null;
System.out.println(meno.length()); // Výsledok: NullPointerException

Aby ste sa tomu vyhli, používajte kontrolu:

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

V modernej Jave (od verzie 8) možno použiť aj triedu Optional pre bezpečnejšie narábanie s potenciálne prázdnymi hodnotami.

4. Pretypovanie primitívnych typov (casting)

Pretypovanie znamená zmenu typu premennej. Java robí rozdiel medzi implicitným a explicitným castingom.

int a = 10;
double b = a; // Implicitný casting

double x = 9.7;
int y = (int) x; // Explicitný casting, hodnota bude 9

Pri explicitnom pretypovaní môže dôjsť k strate dát – napr. desatinná časť sa odstráni. Preto je vhodné pretypovanie používať opatrne, najmä pri operáciách s presnosťou (napr. v matematike alebo financiách).

5. Inicializácia a rozsah premenných

Premenné v Jave musia byť pred použitím inicializované. Java rozlišuje:

public class Auto {
    String znacka; // inštančná premenná

    void vypis() {
        int vek = 5; // lokálna premenná
        System.out.println(vek);
    }
}

Ak sa pokúsite použiť neinicializovanú lokálnu premennú, kompilátor v Jave vás na to upozorní.

Chcete sa naučiť viac o premenných, typoch a ich správnom použití v Jave?

Vyskúšajte kurz JAVASE1 – Programovanie v JAVA SE: Syntax jazyka JAVA, v ktorom vás naučíme všetko od základov jazyka Java až po efektívne používanie typov, objektov a metód. Kurz je ideálny pre začiatočníkov a pre všetkých, ktorí chcú pochopiť, ako Java naozaj funguje.

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: