Javas logo
Av .

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

Faktaboks

Uttale
dʒˈa:va

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.

Språklige kjennetegn

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 det norske 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:

  • 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-applikasjoner

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.

Applikasjoner i grafiske brukergrensesnitt

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.

Servlets

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.

Applets

Java kan også brukes på klientsiden, via nettleseren, i nett-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 nett-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 nett-teknologi.

Utvikling og vedlikehold

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.

Les mer i Store norske leksikon

Eksterne lenker

Kommentarer

Kommentarer til artikkelen blir synlig for alle. Ikke skriv inn sensitive opplysninger, for eksempel helseopplysninger. Fagansvarlig eller redaktør svarer når de kan. Det kan ta tid før du får svar.

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

eller registrer deg