Java je plne objektovo orientovany programovaci jazyk. Jej syntax je velmi podobna C++, preto kazdy, kto ma uz nejake skusenosti s jazykom C++ (alebo aspon C), by nemal mat problem vytvorit aplikaciu v tomto jazyku. Dalej predpokladam, ze vsetkym su zname objektove vlastnosti C++ a objektovo orientovanej technologie vobec.
Na rodiel od C++ nenajdeme v Jave ukazovatele. Netreba sa tym nechat odradit, pretoze tato crta je velkym plus pre bezpecnost Javy. Vacsinou prave neopatrna praca s ukazovatelmi bola na pricine ``zrutenia'' sa programu. Okrem toho Java nema globalne premenne, co prispieva hlavne k lepsej citatelnosti programu. Nenajdeme tu ani virtualne metody. Jednoducho ich nepotrebujeme, pretoze program napisany v jazyku Java sa interpretuje. Existuje sice modul ``javac'', nie je to vsak kompilator, ake pozname dnes, cize nekompiluje zdrojovy kod do strojoveho kodu. ``javac'' pouziva bajtovy kod (resp. vnutorny kod). Ma to dve vyhody. Takto ``kompilovany'' kod je omnoho mensi, co INTERNET urcite uvita, a neobsahuje syntakticke chyby.
Spravu pamete v Jave ma na starosti tzv. ``garbage collector''. Je to proces, ktory bezi na pozadi nasej aplikacie a sleduje pouzivanie pamete. To znamena, ze bez nasho vedomia ``garbage colector'' sleduje premenne v pameti a ak ich uz nas program nepotrebuje, tak ich z pamete uvolni. V skutocnosti totiz nemame ziadnu moznost priameho pristupu do pamete. Vsetko v zaujme bezpecnosti.
V sucastnosti existuje pomerme mohutna mnozina definovanych tried. Najdeme ich na vsetkych platformach, na ktorych je mozne prevadzkovat Javu. V tejto hierarchii su uz napriklad implementovane ``multi-thready'', co su jednoduche procesy, schopne pracovat paralelne.