Javan yksinkertaisuudella tarkoitetaan sitä, että kieli on helppo oppia ja sillä on helppo tehdä ohjelmia. Syntaksiltaan Java muistuttaa C++-kieltä, joten C/C++ ohjelmoijat ovat Javan kanssa kuin kotonaan. Javasta on kuitenkin pyritty poistamaan C++:n huonoina tai vaikeina pidettyjä piirteitä.[2] Esim. muistin hallintaa on helpotettu C++:sta lisäämällä Javaan roskienkeruu, jolloin muistin vapauttaminen siirtyy ohjelmoijan harteilta järjestelmälle. Mahdollisuus osoittaa suoraan muistiin C- kielestä tutilla osoittimilla on poistettu, jolloin ohjelmista tulee turvallisempia ja toimintavarmempia - ei enää Segmentation Fault virheilmoituksia ja koneen kaatumisia. Javan yksinkertaisuudella on pyritty myös siihen, että Java ohjelmien koko säilyisi pienenä. Näin mahdollistetaan Java-ohjelmien käyttö myös pienissä sulautetuissa järjestelmissä ja internetissä hitaiden yhteyksien takana.
Javan olio-ominaisuudet ovat oleellisesti samat kuin C++:lla. Java ei siis ole "puhdas" oliokieli SmallTalkin tapaan vaan kuten C++:ssa perustietotyyppejä ei ole määritelty olioina. Java on kuitenkin C++:aa puhtaampi siinä mielessä, että Javassa kaikki funktiot ja muuttujat kuuluvat jollekin oliolle.
Java on arkkitehtuurista riippumaton ja helposti siirrettävä ohjelmointikieli.[1] Tämä tarkoittaa sitä, että sama Java-ohjelma voidaan periaatteessa ajaa suoraan missä tahansa Javaa tukevassa ympäristössä - kuten Sun sanoo iskulauseessaan : Write Once - Run Anywhere. Tämä on mahdollista, koska Java on tulkattava kieli. Java- kääntäjä ei tuota suoraan tiettyyn laitteistoon sopivaa konekieltä vaan ns. Java tavukoodia, jota tulkataan ajon aikana ajoympäristöön sopiviksi käskyiksi. Tavallaan Java-ohjelma siis pyörii virtuaalisessa ohjelmallisesti toteutetussa prosessorissa todellisen tietokoneen sisällä.
Täydellinen laitteistoriippumattomuus tuntuu kuitenkin uutisryhmien perusteella olevan saavuttamaton unelma. Perus Java pyörii kyllä jouhevasti jokaisella alustalla, mutta niin pyörii toisaalta myös ANSI C. Ongelmia aiheuttavat I/O-funktiot ja Javan käyttöliittymäkirjasto AWT, jotka on toteutettu eri laitteistoissa hieman eri tavoin. [5]
Java on tehokas ja verkkokäyttöön sopiva juuri yksinkertaisuutensa ja tulkattavuutensa ansiosta. Tulkattavuus luonnollisesti vähentää suoritusnopeutta, mutta verrattuna Basiciin tai johonkin muuhun tulkattavaan kieleen, Javan tavukoodin tulkkaaminen huomattavasti nopeampaa. Lisäksi yhä useammat nykyiset JavaVM eli edellä mainitun virtuaalisen prosessorin toteutukset kääntävät tavukoodia lennossa konekieleksi, jolloin suoritus nopeus paranee huomattavasti. Tehokkaaksi Javan tekee myös säikeiden tukeminen, joilla ohjelma voidaan jakaa yhtäaikaisesti suorituksessa oleviin osiin. Näin voidaan aikaavievät operaatiot jättää pyörimään taustalle ja tehdä samalla jotakin muuta. Verkkokäyttöön soveltuvaksi Javan tekee ohjelmien pieni koko ja etenkin Javan turvallisuus. JavaVM:n sisällä pyörivät ohjelmat ovat tavallaan omalla hiekkalaatikollaan, jolta ei ole pääsyä koneen muihin osiin. Verkkokäyttöä helpottaa myös Javan verkkokirjastot, joilla useiden TCP/IP protokollien (esim. HTTP) käyttö helpottuu huomattavasti.[1]
Uusi suunta Oakin kehitykselle avautui 1993 www:n synnyn myötä. Www havaittiin oivaksi kehityskohteeksi Oakille, koska paine interaktiivisuuden lisäämiselle webissä oli suuri. Oakia kehitettiin siten, että se mahdollisti pienten ohjelmasten, applettien, siirron www-palvelimelta selaimelle, joka sitten ajaa tätä applettia. 1995 Oakin nimi vaihdettiin trendikkäämmäksi - Java oli syntynyt. Sopimus Netscapen kanssa takasi Javalle räjähdysmäisen leviämisen ja standardiaseman suoritettavan koodin levittämiselle webissä. Nykyisin Javaa tukevat selaimista Netscape Navigator, Microsoftin Internet Explorer ja JavaSoftin HotJava, joten www:n käyttäjistä suurin osa voi käyttää Java-appletteja selaimissaan.
Toinen Java-ohjelmien käyttökohde on sama kuin Oakilla aikoinaan, eli sulautetut järjestelmät. Mikä olisikaan hienompaa, kuin kysyä koulun X-päätteiltä Netscapella omalta jääkaapiltaan, josko maksalaatikko on jo mennyt vanhaksi.
Nykyisin Javaa kuitenkin käytetään pääasiassa vielä applettien muodossa, joilla niilläkin voi toki tehdä mielekkäämpiäkin asioita, kuin vieriviä ja pyöriviä tekstianimaatioita kotisivun piristykseksi. Jos jokin yritys haluaa julkaista sellaista sähköisessä muodossa olevaa informaatiota webissä, joka ei ole normaalilla selaimella luettavissa (esim. Jokin vähemmän käytössä oleva kuvatiedostoformaatti), voidaan kirjoittaa sopiva appletti, joka lukee yrityksen web-palvelimelta dataa ja tulkitsee sitä sopivalla tavalla käyttäjän selaimessa.
WWW-selaimet pystyvät vain Java-applettien ajamiseen - Java-sovelluksia varten tarvitaan erillinen JavaVM, joka tulee ainakin Java-ohjelmien kehitysympäristöjen mukana. Ilmaisia kehitysympäristöjä ovat mm. Sunin Java SDK ja IBM:n ja OSF:n JDK. Myös Microsoftin J++:sta on saatavilla ilmainen trial versio. Java SDK on saatavilla Sparcille ja X86 Solarikselle, Windows NT:lle (Intel), Windows 95:lle, MacOS 7.5 käyttäville PowerMaceille ja 68030 (25 MHz ja nopeammat) ja 68040 Maceille. Java SDK on käännetty myös IRIXille, SGI:lle ja Linuxille. IBM:n Java Develpers Kit on saatavilla Windows 3.1:lle, OS/2:lle, and AIXille. OFS on kääntänyt Sunilta lähtöisin olevan JDK:n Unixwarelle, AIX 4.1:stä käyttäville PowerPC:ille, DASCOM OSF/1:stä käyttäville X86:ille, Digital UNIX 3.2:sta käyttäville Alphoille, HPUX 10.x:ää käyttäville HP700 sarjalaisille, UNIX SysV:ta käyttäville NCR Globalysteille (Pentium) ja Sony NEWS 6.11 käyttäville Sony NEWSeille (MIPS). [5]
Sun Microsystems on myös kehitellyt suoraan Javan tavukoodia suorittavaa prosessoria ja siihen Java-pohjaista käyttöjärjestelmää JavaOS:aa, jolla sovellusten ajaminen käy huomattavasti nopeammin. Tätä prosessoria kaavaillaan käytettäväksi NC:ssä ja sulautetuissa järjestelmissä. [6]
[2] James Gosling, Henry Mc Gilton : Java Language Environment
<URL:http://www.javasoft.com:80/docs/language_environment/Simple.doc2.html>
[3] Wired 3.12: David Banks - The Java Saga
<URL:http://wwww.wired.com/wired/3.12/features/java.saga.html>
[4] Sun Microsystems : Corel and Java, Corel Office for Java
<URL:http://java.sun.com/nav/used/corel.html>
[5] Uutisryhmät comp.lang.java.programmer ja comp.lang.java.tech
[6] Sun Microsystems : Java Chip ja JavaOS
<URL:http://www.javasoft.com:80/docs/whitePaper.Platform/JavaPlatform.doc1.html#8594>
Gamelan
Tietoa, esimerkkejä, työkaluja, luokkakirjastoja, jne. Javaan ja muihin samankaltaisiin
asioihin (ActiveX, JavaScript,..) liittyvää materiaalia.
*****
JavaWorld
Javaa käsittelevä online lehti.
***
Java Tutorial
Ensimmäinen dokumentti, joka kannattaa lukea, jos haluaa opetella Javan.
*****
Getting started with Java
Ohjeita aloittelijalle.
Java Platform
Perusteellinen selvitys Javan teknisestä toteutuksesta.
***
Java Virtual Machine Specification.
**
ACME
Ilmainen luokkakirjasto. Sisältää luokkia lukuisiin eri käyttötarkoituksiin.
***
Java Woman
Gamelanin tapainen hierarkisiin luokkiin järjestetty linkkikokoelma Java-lähteisiin.
**
IBM
IBM:n Java-kotisivu.
**
Microsoft
Microsoftin Java-kotisivu.
**
Yahoo - Java
Yahoo-hakupalvelun Java-linkit.
****
Javology
Viikoittain ilmestyvä Java-lehti. Uusimmat uutiset Java-maailmasta.
**
Java Developers Journal
Java-lehti, joka nimensä mukaisesti käsittelee java ohjelmointia.
***
Hot Java
Sunin Javalla tehty Hot Java www-selain.
*
Java Developer
Java Developer sisältää paljon tietoa Javasta FAQ:n muodossa. Lisäksi se tarjoaa
kohtalaisen linkkikokoelman.
**