Java on ns. olio-ohjelmointikieli, jossa jokainen ohjelman sisältämä tietoalkio on sidottu jonkin luokan olioksi. Java on tyypiltään tulkattava kieli, joten ohjelman ohjauslauseita käännetään lause kerrallaan konekieliseksi ohjelman suorituksen aikana. Tulkkaamisen etuina on, että useimmat käyttöjärjestelmät tukevat suoraan tulkittavaa Java –kieltä. Lisäksi internet –selaimessa ajettuna Java –appletti on käyttöjärjestelmästä riippumatonta sekä internetin välityksellä siirrettävissä. Mikrotietokoneiden suorituskyky on kasvanut siinä määrin, että tulkkaamisessa tapahtuvaa silmukoiden turhaa uudelleen tulkkausta voidaan tehdä, ilman että tietokone oleellisesti hidastuu. Toisaalta Javasta voidaan kääntää myös kokonainen konekielinen ohjelma. Tällainen käännetty Java –kielinen ohjelma on riippuvainen käytetystä käyttöjärjestelmäalustasta.
Java kieli on turvallista, koska se ei salli ohjelmoijan kirjoittaa esim. C++ kielen tavoin mitään epämääräistä koodia. Ohjelmoija ei voi Java –ohjelmalla osoittaa muistissa ohi ohjelmalle varatun alueen ja toisaalta Java –ohjelmalle varattu muisti vapautuu automaattisesti ohjelman toteutuksen päättyessä. Puhuttaessa Java –ohjelman oikeuksista järjestelmän resursseihin tulee ottaa huomioon puhutaanko Java –sovellusohjelmasta vai Java –appletista. Niillä on erilaiset oikeudet tietokoneen tai verkon resursseihin. Appletteihin palaamme myöhemmin. Lisäksi Java on tiukasti tyypitetty ohjelmointikieli. Tämä tarkoittaa, että kaikki muuttujien ns. tyypit tarkistetaan sekä että niiden pitää olla ns. sijoitusyhteensopivia.
Tärkein Java ominaisuus on Java –ohjelman käyttöjärjestelmästä riippumattomuus. Periaatteen "Kirjoita kerran – aja missä ja milloin vain" toimivuus jää tulevaisuudessa nähtäväksi.