Tre stora fördelar med Java kommer här:
1) Du slipper fundera över minneshantering, det sköter Java
Beroende på hur mycket du kan om programmering tidigare blir det här lättbegripligt eller ej... Jag vet inte riktigt hur man formulerar det bra om du inte vet vad minneshantering är... :q Men, mycket kortfattat uttryckt, så måste du i C++ lägga ner mycket tid och tankar på att allokera minne (dvs se till att variablerna får ett ställe i RAM-minnet där de får plats) samt att detta utrymme frigörs när det är "rätt" tillfälle. I praktiken innebär det att man som ovan C++-programmerare får rika tillfällen att gå igenom hela svärordsregistret när ingenting funkar pga minnesproblem.
I Java sköts det mesta av detta direkt av Java, dvs du som programmerare behöver inte fundera över mer än en liten del av problemen. Detta är en STOR fördel. Om du inte vet så mycket om minneshantering innan är det betydligt skönare att lära sig ett så stort språk utan att behöva hålla minnesallokering i huvudet samtidigt.
Det är alltså betydligt lättare att slippa minnesproblem i Java än i C++. Och sådana vill man gärna slippa...
2) Bättre objektorienterat.
Java skapades från grunden för att vara ett (förhållandevis) enkelt objektorienterat språk. Det har alltså varit objektorienterat alltid och är skapat med det syftet.
C++ däremot är en objektorienterad påbyggnad på det procedurorienterade språket C. Det märks här och där.
Syntaxen för Java är mer rättfram och objekten skrivs på ett sådant sätt att man lättare får en överblick över hur objekten fungerar. Allt som hör till ett visst objekt skrivs i samma fil, metoder och variabler definieras på samma ställe. Det gäller inte i C++ (normalt).
3) Java är plattformsoberoende.
Det innebär bla att en viss typ alltid har samma längd på alla maskiner vilket inte säkert gäller för C++.
I Java kan du utan vidare skriva ett program under Unix. Kompilera. Ta din kompilerade(!) fil på en diskett, stoppa in den i en PC och det funkar, rakt av! (Förutsatt att Java är installerat på bägge maskinerna så klart.) Naturligtvis kan du också flytta din okompilerade fil, kompilera på PC och köra. Samma gäller mellan andra OS och maskiner också.
INGET av dessa scenarier är säkert sant för C++. Du kan absolut inte flytta ett kompilerat program från en maskin till en annan. Men det är inte säkert att en flyttning av det okompilerade programmet ger samma resultat heller. En orsak är att tex längden på en int (= heltal) kan variera mellan maskinerna, och för vissa program kan det då generera olika resultat. (Om det blir overflow i den kortare representationen tex.)
Pga Javas plattformsoberoende blir det mycket använt i olika internetbaserade tillämpningar, där det är väsentligt att (tex) appleten funkar oavsett om du ansluter från en PC, Mac... eller annan dator.
......
Allmänt sett räknas Java nog som ett bra nybörjarspråk för att komma in i Objektorientering. På de flesta av landets högskolor och universitet börjar de första kurserna (alt de första OO kurserna) med just Java.