Pokud se učíte programovat v Javě, je důležité porozumět tomu, jak Java pracuje s proměnnými, datovými typy a pamětí. Základní rozdíl mezi primitivními a referenčními typy vám pomůže vyhnout se běžným chybám, jako je NullPointerException. V tomto článku vše vysvětlíme krok za krokem.
Java nabízí dva základní typy proměnných:
int
– celá čísladouble
– desetinná číslaboolean
– pravda/nepravdachar
– jeden znakString
– textové řetězcePerson osoba = new Person();
)Primitivní typy jsou rychlé a nenáročné. Referenční typy umožňují práci s komplexními strukturami dat.
Referenční proměnná uchovává adresu objektu v paměti (na tzv. heapu). Neobsahuje tedy přímo data, ale jen „cestu“ k nim.
String jmeno = "Eva";
Proměnná jmeno
neobsahuje text „Eva“, ale referenci na objekt typu String
. Pokud ji předáte jiné proměnné, obě odkazují na stejný objekt.
null
značí, že proměnná neukazuje na žádný objekt. Pokud na ní zavoláte metodu, vznikne chyba NullPointerException.
String jmeno = null; System.out.println(jmeno.length()); // NullPointerException
Před použitím proměnné je vhodné kontrolovat:
if (jmeno != null) { System.out.println(jmeno.length()); }
Od Javy 8 doporučujeme využívat třídu Optional
pro práci s možnými null
hodnotami.
Java vyžaduje jasné definice typů. Při převodu mezi typy někdy potřebujete přetypování:
int a = 10; double b = a; // implicitní double x = 9.7; int y = (int) x; // y = 9
Při přetypování může dojít ke ztrátě informací – např. uříznutí desetinné části. Důležité je to např. při výpočtech nebo práci s penězi.
Proměnné musí být před použitím inicializovány. Existují:
public class Auto { String znacka; void vypis() { int vek = 5; System.out.println(vek); } }
Nepoužité lokální proměnné Java nedovolí zkompilovat – je to bezpečnostný mechanizmus.
Vyzkoušejte kurz JAVASE1 – Programování v JAVA SE: Syntax jazyka JAVA, kde se naučíte základy Javy včetně proměnných, typů, metod a práce s pamětí. Kurz je vhodný pro začátečníky i pokročilejší zájemce o programování.
Viac informacií preberáme na kurze: