Java (programmeringsspråk)

Java er et objektorientert  programmeringsspråk, utviklet av James Gosling og andre utviklere hos Sun Microsystems. I november 2006 kunngjorde Sun at selskapet ville frigi Javakoden som åpen kildekode og dermed bli en av de største bidragsyterne innen dette globale miljøet.
I motsetning til f.eks. C, kompileres ikke Java til maskinkode, men til plattformuavhengig bytekode som kjøres av et underliggende lag programvare kalt Java Virtual Machine (JVM). Javaprogrammer kan derfor kjøre på alle operativsystemer hvor det finnes en Java Virtual Machine.
For å kjøre vanlige Javaprogrammer trenger man en Java Runtime Environment (JRE). Denne består av JVM samt de grunnleggende bibliotekene. For utvikling av Javaprogrammer må man ha Java Development Kit (JDK), som i tillegg til en fullverdig JRE inneholder Javakompilatoren og andre sentrale verktøy for Javautvikling.


== Utgaver ==
Java blir i motsetning til tidligere programmeringsspråk, som for eksempel C++, levert med et stort bibliotek av klasser og metoder, blant annet for bygging av grafiske grensesnitt og for kommunikasjon over Internett. Man kan grovt sett dele opp Java i tre; en standardutgave (Java SE), en forretningsutgave (Java EE) og en mikroutgave (Java ME).


=== Java SE ===
Java SE (Java Standard Edition) inneholder de grunnleggende og nødvendige bibliotekene for å utvikle og kjøre Javaprogrammer. 
Versjon 8.0 ble sluppet 18. mars 2014


=== Java EE ===
Java EE (Java Enterprise Edition), bygger på Java SE og er en paraplybetegnelse på en mengde rammeverk som blant annet gir muligheter for å lage komponentbaserte, distribuerte flerlagsløsninger og webapplikasjoner. Den seneste versjonen av Java EE er for tiden EE 6. Akronymet J2EE (Java2 Enterprise Edition) ble benyttet fram til versjon 5 ble lansert.


=== Java ME ===
Det finnes i tillegg til Java SE og Java EE en tredje versjon, Micro Edition (Java ME) som er et utdrag av Java SE spesielt tilpasset utvikling på mobiltelefoner. Denne teknologien har fått en enorm popularitet, noe f.eks. støtten for mobilspill og programmer på mobiltelefoner er et bevis på.


== Java som åpen kildekode ==
13. november 2006 kunngjorde Sun at store deler av Java ble lisensiert under GPL-lisensen. 8. mai 2007 var prosessen ferdig, og alt unntatt en liten del Sun ikke hadde rettigheter til å relisensere er nå fritt. Et initiativ av Red Hat ble igangsatt for å bytte ut den ufrie delen med fri programvare igjennom prosjektet IcedTea. 4 % var ufritt i mai 2007, og mindre enn 1 % i mai 2008.
Åpningsprosessen har vært varslet i lang tid. I februar 2004 skrev blant annet presidenten i Open Source Initiative, Eric S. Raymond et åpent brev til Sun der selskapet ble oppfordret til å gjøre Java om til åpen kildekode.


== Programutviklingsmiljøer ==
Det finnes flere integrerte utviklingsmiljø for å utvikle i Java. Disse har gjerne støtte for refaktorering, testrammeverk som JUnit og TestNG, og byggesystemer som Ant, Maven og Gradle.
Refactoring innebærer å forbedre kildekoden et program er basert på, uten å endre programmets oppførsel. Et eksempel er at hvis du endrer navn på en metode, skjer en automatisk endring på alle steder i koden der den metoden brukes. IntelliJ IDEA, Eclipse og NetBeans er tre eksempler på integrerte utviklingsmiljøer. Alle tre finnes i frie utgaver.


== Norge ==
Det norske javamiljøet er aktivt og arrangerer jevnlig fagmøter og den årlige konferansen JavaZone.


=== Høyere utdanning ===
Både Universitetet i Oslo, Oslomet – storbyuniversitetet, Universitetet i Bergen, Universitetet i Agder, Høgskolen i Bergen, Norges teknisk-naturvitenskapelige universitet, Høgskolen i Telemark, Høgskolen i Østfold og Norges Informasjonsteknologiske Høgskole lærer bort Java i data-grunnkursene sine, og legger også stor vekt på Java i senere kurs.


== Hello, World i Java ==
Utvikling i Java krever at Java Development Kit er installert på datamaskinen. Dette er et eksempel på et enkelt program som printer tekst til en konsoll i det integrerte utviklingsmiljøet.


== Referanser ==


== Eksterne lenker ==
(en) Offisielt nettsted 
(en) Java (programming language) – kategori av bilder, video eller lyd på Commons 
Java SE
Java EE 
Java i Norge
JavaZone
TheServerSide.com
Full Java Tutorial