Java er et programmeringsspråk. Det er et imperativtobjektorientertkompilert høynivåspråk som kan kjøre på mange forskjellige plattformer ved hjelp av en virtuell maskin: Java Virtual Machine (JVM).

JVM har et rikt kjøretidsbibliotek med støtte for brukergrensesnitt, nettverk, dokumenthåndtering og så videre. Java kan derfor benyttes til mange ulike formål. JVM  gir imidlertid ikke tilgang til underliggende funksjonalitet i vertsmaskinen og språket er derfor ikke egnet for systemprogrammering.

Språket ble utviklet av Sun Microsystems tidlig i 1990-årene. I 2010 ble Sun kjøpt opp av Oracle som i dag eier rettighetene til språket.

Java arvet mange av sine egenskaper fra forgjengeren C++. James Gosling som ledet utviklingen av språket skal også ha hentet inspirasjon og kunnskap fra Simula-prosjektet.

Den viktigste forskjellen i forhold til C++ ligger i måten programmene blir utført på. Mens programmer skrevet i C++ blir kompilert til vertsmaskinens instruksjonssett og benytter kjøretidsbibliotek i vertsmaskinen, kjører Java-programmer inne i en lukket, kontrollert omgivelse.

Selve språket er også strammere i formen enn C++. Dette reduserer risikoen for feil og gjør programmene mer lettleste, men det fører også til mindre fleksibilitet og vanligvis mer omfattende programkode. Noen viktige forskjeller er at:

  • Java har automatisk, innebygget gjenvinning av hukommelse. C++ har også støtte for dette, men programmereren må selv administrere gjenvinningen.
  • Java har, i motsetning til C++, ingen instruksjon for å hoppe til et vilkårlig sted i koden (goto).
  • Java har innebygget støtte for parallelitet, det vil si at ulike deler av et program kan utføres samtidig. I C++ må man bruke spesialbiblioteker for å få til dette.
  • Java ikke tillater omdefinering av operatorer. I C++ kan man for eksempel få tegnet '+' til å bety noe annet en addisjon.

Java var i utgangspunktet laget for bli startet ved hjelp av en tekstlig kommando og kommunisere med brukeren ved hjelp av tekst. Det er fremdeles mange applikasjoner som blir kjørt på denne måten.

Java er også utbredt i grafiske brukergrensesnitt, blant annet i operativsystemet Android hvor nesten alle appene er skrevet i dette språket. For å kjøre applikasjoner i slike omgivelser, må de pakkes inn og beskrives på en måte som gjør at systemet får tilstrekkelig informasjon til å starte dem.

Java er også mye brukt på tjenersiden i web-applikasjoner. Slike applikasjoner kalles for servlets. Disse lever i egne beholdere i nettjeneren og håndterer forespørsler etter hvert som de kommer inn. Dette kan være ressursbesparende fordi man slipper å starte en ny prosess hver gang det kommer inn en forespørsel.

Java kan også brukes på klientsiden, via nettleseren, i web-applikasjoner. Her blir koden lastet ned sammen med resten av innholdet, kompilert og kjørt i en egen virtuell maskin utenfor nettleseren. I sin tid var dette en grei måte å få til god sikkerhet og grafikk på. Denne løsningen ble blant annet brukt i BankId. Utfordringen var at den virtuelle maskinen måtte oppdateres jevnlig for å opprettholde sikkerheten, noe som ble vanskelig for mange sluttbrukere. Etter hvert som web--standardene har utviklet seg, fremstår derfor ulempene ved Java applets som større en fordelene i mange tilfeller. I 2015 gikk også BankId over til standardisert web-teknologi.

Utviklingen av Java skjer gjennom en forholdsvis åpen fellesskapsprosess kjent som Java Community Process.

Java er likevel ikke en «åpen standard», fordi Oracle eier varemerket, forbeholder seg retten til å godta alle endringer og utvidelser, og stiller bruksvilkår for språket. Sun har også avvist forslag fra store Java-aktører som IBM og BEA Systems om å distribuere Java som åpen kildekode.

Foreslå endringer i tekst

Foreslå bilder til artikkelen

Kommentarer

Har du spørsmål om eller kommentarer til artikkelen?

Kommentaren din vil bli publisert under artikkelen, og fagansvarlig eller redaktør vil svare når de har mulighet.

Du må være logget inn for å kommentere.