FAIR and interactive data graphics from a scientific knowledge graph

Šis raksts ir par programmēšanas valodu. Par citām jēdziena Java nozīmēm skatīt nozīmju atdalīšanas lapu.
Java
Failu paplašinājumi .java .class .jar .jmod
Paradigma Objektorientēta, strukturēta, imperatīva
Izveidota 1995
Autors Sun Microsystems
Pašreizējā versija

Java SE 21 (LTS)

(2023-09-19; 13 mēneši)
Galvenās implementācijas Vairākas
Dialekti Generic Java, Pizza
Ietekmējusies no Ada 83, C++, C#,[1] Delphi Object Pascal,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula-3,[5] Objective-C,[6] UCSD Pascal,[7][8] Smalltalk
Ietekmējusi Ada 2005, C#, Clojure, D, ECMAScript, Groovy, J#, PHP, Scala, JavaScript, Python, BeanShell
OS Vairākplatformu
Licence GNU Vispārējā publiskā licence / Java kopienas process
Tīmekļa vietne www.oracle.com/java/

Java ir augsta līmeņa (high level), uz klasēm balstīta, objektorientēta kompilējama programmēšanas valoda, kas izstrādāta tā, lai tai būtu pēc iespējas mazāk atkarību no datora arhitektūras. Šī valodai ir vispārēja lietojuma programmēšanas valoda, kas paredzēta, lai ļautu programmētājiem rakstīt vienreiz programmu un palaist to jebkur (write once, run anywhere WORA)[9], tas nozīmē, ka kompilētais Java kods var darboties visās platformās, kuras atbalsta Java Virtual Machine(JVM)(#Arhitektūras neitrāla), bez nepieciešamības veikt atkārtotu pirmkoda kompilāciju[10]

Java ieguva popularitāti neilgi pēc tas iznākšanas, un kopš tā laika tā ir ļoti populāra programmēšanas valoda.[11] Java bija trešā populārākā programmēšanas valoda 2022. gadā saskaņā ar GitHub datiem, un 2024. gada janvārī tā ir ceturtajā vietā TIOBE indeksā.[12] Lai gan Java joprojām ir plaši populāra, pēdējos gados ir vērojama pakāpeniska Java izmantošanas samazināšanās, un arvien populārākas populārākas kļūst citas valodas, kurās izmanto JVM[13], piem, Kotlin programmēšanas valoda.

Pirmais valodas izlaidums notika 1995.gada, ka galvenā sastāvdaļa no Sun kompānijas Java platformas. Sākotnēji Java kompilatorus, virtuālas mašīnas un klašu bibliotēkas Sun kompānijā izlaida ar patentētām licencēm (under proprietary licenses), bet no 2007.gada maija Sun atkārtoti licencējusi lielāko daļu savu Java tehnoloģiju jau zem GPL-2.0 licences.

Oracle kompānijā 2010.gada 27.javarī nopirka(acquired) Sun Microsystems kompāniju[14], tādējādi kopā ar Sun Microsystems aktīviem, Oracle pārņēma arī tiesības uz Java programmēšanas valodu un ar to saistītas tehnoloģijas.

Oracle piedāvā savu HotSpot Java virtuālo mašīnu, tomēr oficiālā atsauces ieviešana ir OpenJDK JVM, kas ir bezmaksas atvērtā pirmkoda programmatūra, ko izmanto lielākā daļa izstrādātāju un ir noklusējuma JVM gandrīz visiem Linux distributīviem.

2023.gada 19.septembrī tika izlaista visjaunākā Java programmēšanas valodas versija (vairāk skat "Versijas un izlaidumi" sadaļu) - Java 21[15], kas ir arī ilgtermiņa atbalsta (LTS) versija. Java 8, 11 un 17 ir iepriekšējās LTS versijas, vel joprojām tiek oficiāli atbalstītas. 

Vēsture

Valodu 1991. gadā izstrādāja Džeimss Goslings (James Gosling), Patriks Noutons (Patrick Naughton), Kriss Varts (Chris Warth), Eds Franks (Ed Frank) un Maiks Šeridans (Mike Sheridan) no kompānijas Sun Microsystems. Šī valoda vispirms tika saukta par “Oak”, bet tika pārdēvētā par Java 1995. gadā(vairāk par nosaukumu skāt sadaļu nosaukuma izcelšana). Galvenais iemesls šīs programmēšanas valodas izvadei bija vajadzība pēc platformas neatkarīgas programmēšanas valodas, kas tiktu pielietota programmatūras izvadei plaša patēriņa elektro ierīcēm: tosteriem, mikroviļņu krāsnīm, tālvadības pultīm u.c.

Daudzi procesoru veidi tika un tiek izmantoti, ka mikro-kontrolieri. Mikro kontrolleris (saīsināts arī kā MCU vai µC) ir kompakta integrēta shēma, kas paredzēta, lai pārvaldītu noteiktu darbību iegultā sistēmā. Tas ir mazs mazjaudas dators vienā mikroshēmā, kurā ir procesors, atmiņa un programmējamas ievades/izvades perifērijas ierīces. Mikrokontrollerus parasti izmanto automātiski vadāmos produktos un ierīcēs, piemēram, automašīnu dzinēju vadības sistēmās, tālvadības pultī, biroja iekārtās, ierīcēs, elektroinstrumentos un rotaļlietās.[16]

Problēma ar tik daudzu mikrokontrolieru veidiem un to arhitektūram bija tāda, ka praktiski visas programmēšanas valodas uz to laika bridi bija kompilējamas programmēšanas valodas, lai kompilētu specifiskajā kompilatora priekš specifiska mirokontroliera arhitektūras, lai to veiktu ir nepieciešams specifisks kompilators tieši šīm procesoram un/vai operētājsistēmai. Piemēram, programmai, kas ir uzrakstīta izmantojot C++ valodu ir iespējams to palaist un darboties ar to jebkura procesora arhitektūra, bet, tikai gadījuma, ja kompilators atbalsta šo arhitektūru/OS un programma tika pārkompilēta priekš šīs arhitektūras.

Otra problēma izritēja no tā, ka kompilatori ir dārgi un ļoti laikietilpīgi izstrāde. Mēģinot atrast labāku risinājumu Goslings un citi strādāja pie - pārnēsājamas, starp platformu valodas(architecture neutral), kas varētu “radīt” kodu, kas varētu darboties dažādos mikro kontrolieros un operētājsistēmas.

Šie centieni galu gala noveda pie programmēšanas valodas JAVA izveides. Javas izstrādāšanas laika otrais un vissvarīgākais faktors tas eksistencei paradījās, kam bija izšķiroša nozīme JAVAs nākotnē, bija globālais tīmeklis.

Uz 1993.gadu kļuva acīmredzams priekš Javas valodas izstrādātājiem, ka programmatūras pārnesamības problēma, kas bija dažādiem mikro kontrolieru arhitektūra un operētājsistēmām, paradījās arī globāla tīmekļa lietotnēm, kas reiz bija zemas prioritātes problēma kļuvusi par nepieciešamību.

Saprotot to JAVAs izstrādātāji nolēma pielikt visas pūles uz programmatūru priekš globāla tīmekļa, nevis uz programmatūru, kas ir orientēta uz patēriņā elektroniskam ierīcēm. Ja tieksme uz arhitektūras neitrālas programmēšanas valodas izvedi bija dzirkstele tad globālais tīmeklis bija tas, kas noveda pie JAVAs liela mēroga popularitāti un panākumu pasaulē.

1995.gadā kļuva plašāk pazīstama pēc tam, kad Netscape paziņoja par nodomiem iekļaut tās atbalstu savā Navigator pārlūkprogrammā, kas 1990. gados bija vispopulārākā pārlūkprogrammā pasaule. Iemesls Java atbalstam bija tas tehnoloģija ar nosaukumu – “Java applet”.

Java applet - bija nelielas lietojumprogrammas, kas rakstītas Java programmēšanas valodā vai citā programmēšanas valodā, kas kompilējas Java baitkodā, un tika piegādātas lietotājiem Java baitkoda veidā kopa ar lapas saturu.

Lietotājs palaida Java sīklietotni no tīmekļa lapas, sīklietotne tiek palaista JVM, kas pati ir nošķirts no pašas tīmekļa pārlūkprogrammas process. Tas ļava lapai būt dinamiskai. Līdz ar reaktīvo(reactive) tīmekļa lapu iespēju attīstību un JavaScript programmēšanas valodas paradīšanos 2000.gados Java applet tehnoloģija tika reti izmantota. Sakot ar Java 11 versiju “Java-applet” sīklietotņu atbalsts ir netiek atbalstīts(depricated)[17].

Java programmēšanas valodu joprojām var izmantot Web aplikāciju izstrāde priekš tam tiek izmantots “Spring Framework[4][5];

Nosaukuma izcelsme

Džeims Goslings, Patriks Noutons(Patrick Naughton), strādāja pie projekta "Green"(zaļš). Projekta mērķis bija izstrādāt programmēšanas valodu plaša patēriņa elektronisko ierīču programmēšanai. Plaša patēriņa elektriskas ierīces patērē maz enerģijas (No šī fakta projekts ieguva koda nosaukumu – “Green”) . Šo mazu inženieru komandu, kas darbojas Sun kompānijā sauca par “Green Team”(Zaļa komanda).

Jaunu valodu Džeims Goslings sauca par “Greentalk” jo tas koda failiem bija “.gt” paplašinājums, bet oficiālais nosaukums kļuva par “Oak”(ozols), ka daļa no “Green” projekta. Viena no versijām kāpēc šīs nosaukums ir tas, ka blakus Džeimsa Goslinga ofisam auga liels ozols, kura vārda un nosauca programmēšanas valodu, otra versija, ka ozols ASV, Francijā, Vācijā nozīme spēku.

Izstrādes laikā Sun paziņoja Zaļai komandai, ka “Oak” nosaukumu nevar izmantot priekš valodas nosaukuma, jo “Oak” jau bija Oak Technologies kompānijas preču zīmols un ka аrī jau eksistēja programmēšanas valoda ar nosaukumu “Oak”.[18]

Zaļa komandai bija vairākas sapulcēs, lai izvēlētos jaunu nosaukumu priekš programmēšanas valodas. Pēc Džeimsa Goslinga teiktā, "Java nosaukums bija viena no galvenajām izvēlēm kopā ar nosaukumu Silk(zīds)". Tā kā Java valoda bija tik unikāla, lielākā daļa komandas locekļu deva priekšroku Java nosaukumam nekā citiem nosaukumiem. 1995. gadā Sun kompānija izmainīja valodas nosaukumu no “Oak” uz "Java" .

"Java" - nosaukumu izvēlējās Džeimss Goslings, dzerot tasi kafijas netālu no sava biroja, jo Java ir sala Indonēzija, kur tika izaudzēta pirmā kafija kurai nosaukums ir Java kafija.[18]. Java tika nosaukta pēc Indonēzijas salas Java nosaukuma, lai gan tiek teikts, ka valodas nosaukums izvēle tika iedvesmota no amerikāņu slenga vārda "java", kas nozīme kafiju[18], kas pats ir atvasināts(derived) no salas nosaukuma[19].

Filozofijā

Valodas Java izstrādes galvenie mērķi, ko gribēja sasniegt valodas izstrādātāji, kas vēlāk kļuva par Javas de facto filozofiju, bija šādi[10]:

  • vienkāršai, objektorientētai, pazīstamai valodai
  • vairāk vai mazāk neatkarīgai no datora platformas
  • uzticamai un drošai
  • Interpretējamai, vairākpavedienošai, un dinamiskai
  • jāizpildās ar augstu veiktspēju(high performance).  

Objektu orientēta, vienkāršā, atpazīstamā

JAVAs sintakse ir lielā mēra aizgūta no C/C++ programmēšanas valodas . Tas padarīja programmēšanas valodu atpazīstamu plašam programmētāju lokam. Taču tai ir mazāk zema līmeņa iespēju nekā jebkurai no tām. Piem, nav radītāju(pointers), objekti kas nav pamat tipi, piem, ka char, int, bool, tiek nodoti tikai caur referenci . Nevajag manuāli izstrādātajam atbrīvot atmiņu. Par atmiņas atbrīvošanu Java valoda atbild Garbage collector.

Tomēr atšķirībā no C++ programmēšanas valodas, kas apvieno strukturētu, vispārīgu un uz objektu orientētu programmēšanu. JAVA no pašiem tas pirmsākumiem tika veidota, lai būtu pilnīgi objektu orientēta programmēšanas valoda. JAVA viss ir objekts, izņemot pamat datu tipus(bool, int, char un float), viss, kas rakstīts JAVA, ir rakstīts klases ietvaros. Ja tiek radīts jauna klase, piem, “A” , tad ta netieši pārmato no super klases `java.lang.Object`. Tā ir superklase visam, ko var radīt Java izpildlaika[20].

Arhitektūras neitrāla

“Write once, run anywhere” slogans, ko pielietoja “Sun Microsystems”, kad tika izstrādāta JAVA. Tas nozīmē, kā JAVA ir platformas neatkarīga programmēšanas valoda ,tas nozīme ka programmas rakstītas uz JAVA var tikt palaista jebkurā datora neatkarīgi no ta arhitektūras vai OS, ja šo arhitektūru atbalsta Java virtuālas mašīna(JVM).

Kods kas uzrakstīts izmantojot Java valodu tiek kompilēts izmantojot JDK kompilatoru. JDK jeb Java Developer Kit ir starp platformu programmatūras izstrādes vide, kas piedāvā rīku un bibliotēku kolekciju, kas nepieciešama uz Java balstītu programmatūras lietojumprogrammu un sīklietotņu izstrādei. Tajā iekša ir, piem, Java kompilators, linteris(linter), pamat bibliotēkas, JAVA debugger u.c. Populārākie JDK ir

  • OpenJDK , kas ir atvērtā pirmkoda projekts, kuru attīsta JAVA entuziasti un ir bezmaksas
  • OracleJDK ir Oracle izstrādāts un licencēts JAVA valodas JDK, kas priekš nepersonīgiem projektiem ir par maksu.

JDK kompilators kompilē kodu par baitkodu, kas ir speciāls kods, kas domāts izpildei JVM vide. Jau pati JVM pārveido šos baitkodus par mašīnas valodu, kas var būt izpildīti šajā specifiskajā mašina.

Kompilators garantē, ka baitkodi nepārkāpj drošības prasības, ja baitkodi tiek iegūti no citiem avotiem, piem, no globālā tīkla, rodas šāda problēma, ka kodus var izveidot ar citiem līdzekļiem, nevis ar Java kompilatoru. Tāpēc izpildlaika sistēma rūpīgi pārbauda saņemtos kodus izmantojot baitkoda verifikātoru(bytecode verifier), ka tie atbilsts drošības prasībām pārbaužu, piem, ka baitkodu failam nevar būt steka pārpildīšana, bait koda instrukcijām ir pareizi tipi u.c.

Tomēr vel joprojām ir iespējams uzrakstīt programmu izmantojot JAVA, kas var darboties uz vienas platformas bez problēmām, bet programmas kļūdas paradīties cita platforma. Jo ir vairākas JVM implementācijas un virsu tam dažādas OS, var būt nelielas atšķirības tajā, ka uzrakstītā programma var darboties JVM/OS kombinācijas deļ. Tādēļ iespējams būs nepieciešams pārbaudīt uzrakstītu programmu katra platforma, kur šī programma tiks palaista. Tas bija iemesls starp Java izstrādātājiem joka paradīšanos “Write Once, Debug Everywhere”[21] uzraksti vienu reizi , atkļūdo visur.

Uzticama un droša

Java atvieglo programmatūras izvedi, kur pārbaude notiek ne tikai kompilācijas posma, bet arī pati sistēma JVM analīze izpildes posma laikā kodu. JAVA izveidota tā, lai pašu lietotāju pieradinātu pie “pareiza” programmēšanas koda, bibliotēku, iebūvētu klašu un funkciju dēļ.

Lai JAVA būtu droša daudzas C/C++ priekšrocības(features) tika atmestas. Piemēram, nevar pielietot radītājus(pointer), kas ļāva izvairīties no veselas kaudzes kļūdu, saistība ar atmiņas noplūdi(memory leak), operatoru pārslodze(overloading) izņemot “+” priekš string tipa kontantinācijas, tiek garantēts iebūvētu tipu bitu daudzums, jeb int vienmēr būs 4 baitu liels visas platformās, C/C++ valoda tas ir arhitektūras atkarīgs lielums[22].

Interpretējama, vairākpavedienošana, un dinamiska

Interpretējama valodas daba ļāva linkošanu fāzi padarīt daudz vienkāršāku, inkrementālāku un līdz ar to ātrāku. Tas krasi ļāva samazināt programmatūras izstrādes procesu un programmas testēšanu laiku.

Vairākpavedienošana(Multi-thread), ļauj vienas programmas ietvaros veikts vairākus uzdevumus(task) vienlaicīgi, tādējādi var sadalīt uz vairākiem pavedieniem(threads) laik ietilpīgus vai / un sarežģītus uzdevumus nebloķējot pašu aplikācijas izpildi. Tādējādi efektīvāk izmantot mašīnas resursus un procesora laiku. Vairākpaveidienošāna Java tiek atbalstīta uz programmēšanas valodas līmeņa, dēļ jau iebūvētam iekšējam bibliotēkām, kas ir pavedien drošas(thread-safe), un var tikt lietotas vairākpavedienošu programmu izvēde, gan arī iebūvētu pavedienu sinhronizācijas līdzekļu dēļ – muteksi, semafori, monitori u.c. C++ valoda, kas tika izdota(reliesed) 1985.gada vairāk pavedināšanā paradījās līdz ar C++11 standarta publicēšanu 2011.gada[23].

Sistēma atbalsta dinamisku programmas montāžu tas nozīme, ka programmas klases lejup lādējas programmas darbošanās laika pēc programmas vai programmētāja pieprasījuma. Tas ļauj veikt izmaiņas aplikācija, nevajag pārinstalēt(re-install) aplikāciju, lai dabūtu jaunākas izmaiņas aplikācija vai to pārkompilēt. Lietotājs var būt drošs, ka vienmēr izmanto jaunāko aplikācijas versiju.

Augsta veiktspēja

Kaut gan bija diezgan lēnākā veiktspēja JAVA programmām salīdzinot ar programmām, kas tika rakstītas uz C vai C++ valodām, tāpēc JAVA valodai bija sliktas veiktspējas reputācija ilgu laiku. Jaunākas JVM versijas radīja iebūvētus darbarīkus, kas paātrina programmas īstenošanu nekā iepriekš. Viens no tādiem īstenošanas veidiem bija tieša koda kompilācija, atmetot pašu JVM, bet tādejādi tiek zaudēta programmas pārnesamība.

Programmatūrā izstrādāta izmantojot Java

Izmantojot JAVA programmēšanas valodu tika izstrādātas pasaule populāras programmas, sākot no programmatūras, kura tika izmantota priekš Maestro Mars Rover controller[24], kuru izmantoja, lai pētītu Marsa grunti un NASA WorldWind[24], programmatūrā, kas ļauj izveidot interaktīvas ģeogrāfiskās informācijas vizualizācijas 3D planētas kontekstā, līdz datorspēlei Minecraft, kuru vienlaikus ikmēnesi spēle vairāk par 170 miljoniem spēlētāju[25]. Tālāk ir dažu populāru programatūru saraksts, kas ir vai nu pilnība uzrakstīts izmantojot JAVA valodu vai lauvas tiesu satur sevī JAVA kodu.

Jenkins[26] - ir atvērtā koda nepārtrauktas integrācijas serveris, kas ātri un automātiski izveido, pārbauda(piem, palaižot programmatūras unit testus) un izvieto(deploy) lietojumprogrammu. Tas bieži tiek atzīts par vienu no pirmajiem DevOps rīkiem, kas padarīja "infrastruktūru kā kodu" iespējamu.

Apache OpenOffice un LibreOffice- ir atvērtā koda biroja produktivitātes programmatūras komplekti, kura komponentes vai nu pilnīgi uzrakstītas izmantojot JAVA vai daļēji, lai šīs programmatūras pilns funkcionāls strādātu Java ir nepieciešama[27]. Šīs programmatūras kompolekts ir alternatīva maksas Microsoft 365 produktu komplektiem, kas sastāv sevī tādas programmās, ka - Excel, Word, PowerPoint, u.c.

Android OS - ir mobilā operētājsistēma, kuras pamatā ir modificēta Linux kodola versija un cita atvērtā pirmkoda programmatūra, kas galvenokārt paredzēta mobilajām ierīcēm, piemēram, viedtālruņiem un planšetdatoriem. Java tiek izmantota galvenokārt priekš UI, bet C valoda priekš OS kodola.

Google docs - ir bezmaksas internetā bāzēts teksta procesors, izklājlapu un prezentāciju programma, kas ir alternatīva Microsoft 365 produktu komplektiem. Google dokumenti ļauj lietotājiem izveidot un rediģēt dokumentus tiešsaistē, vienlaikus sadarbojoties ar citiem lietotājiem reāllaikā. Java tiek izmantota, priekš Back-end daļas[28].

Izstrādes vides

Eclipse - izstrādāja IBM kompānijā 2001.gada, kompanijas izstrādāšanas mērķis bija izveidot programmētāju vidi, kas spētu konkurēt ar Microsoft Visual Studio popularitāte. Šī IDE ir bezmaksas un ir atvērtā avota (open source) programmatūrā , kas pati ir rakstīta izmantojot Java un priekš JAVA, tomēr spraudņu(plugin) arhitektūras dēļ ir iespēja Eclipses vidē izstrādāt programmāturu izmantojot arī citas programmēšanas valodas, piemēram, C++, Ruby, Python u.c.

NetBeans - dzima, ka Prāgas studentu projekts 1996.gada, vēlāk par komerciālu produktu pārtapa 1997.gada, bet 1999. gada tika pārdota kompānijai Sun Microsystems un 2000.gada kļuva par atvērtā avota programmatūru.

IntelliJ IDEA - ir IDE, kura ir uzrakstīta izmantojot Java programmēšanas valodu, un kuru var izmantot Java, Kotlin, Groovy un citās JVM valodās priekš programmāturas izstrādāšanas. To izstrādāja JetBrains (agrāk pazīstama kā IntelliJ) kompānijā, un šī IDE ir pieejama divos veidos kā Apache 2 licencēts kopienas izdevums un patentēts komerciāls izdevums.[29] Abus izlaidumus var izmantot komerciālas programmatūras izstrādei. Pēc 2023 Java Developer Productivity Report datiem uz 2023.gadu. ta ir vispopulārākā IDE jeb 42%[30], no respondentiem noradīja, ka izmanto šo IDE priekš izstrādes.

Kompānijas, kas izmanto/izmantoja Java programmēšanas valodu

Vairāki uzņēmumi ir paziņojuši, ka izmanto JAVA

Uzņēmumi, kas atteicas izmantot JAVA

Versijas un izlaidumi

No 2023. gada septembra Java 8, 11, 17 un 21 tiek atbalstītas kā ilgtermiņa atbalsta versijas (LTS)[46]. Oracle kompānijā 2019. gada janvārī izlaida pēdējo bez maksas publisko atjauninājumu mantotajai (legacy) versijai Java 8 LTS komerciālai lietošanai, lai gan Oracle joprojām atbalstīs Java 8 versiju ar publiskiem atjauninājumiem priekš personiskai lietošanai.

Galvenās Java izlaišanas versijas, kā arī to izlaišanas datumi:

Versija Izlaiduma datums
JDK Beta 1995
JDK 1.0 1996. gada 23.janvaris[47]
JDK 1.1 1997.gada 19. februāris
J2SE 1.2 1998.gada 8. decembris
J2SE 1.3 2000.gada 8. maijs
J2SE 1.4 2002.gada 6. februāris
J2SE 5.0 2004.gada 30. septembris
Java SE 6 2006.gada 11. decembris
Java SE 7 2021.gada 28. julījs
Java SE 8 (LTS) 2014.gada 18. marts
Java SE 9 2017.gada 21. septembris
Java SE 10 2018.gada 20. marts
Java SE 11 (LTS) 2018.gada 25. septembris[48]
Java SE 12 2019.gada 19. marts
Java SE 13 2019.gada 17. semptembris
Java SE 14 2020.gada 17. marts
Java SE 15 2020.gada 15. semptembris[49]
Java SE 16 2021.gada 16. marts
Java SE 17 (LTS) 2021.gada 14. septembris
Java SE 18 2022.gada 22. marts
Java SE 19 2022.gada 20. septembris
Java SE 20 2023.gada 21. marts
Java SE 21 (LTS) 2023.gada 19. septembris[50]
public class HelloWorld 
{
    public static void main(String[] args) 
    {
        System.out.println("Sveika, pasaule!");
    }
}

Atsauces

  1. Java 5.0 added several new language features (the enhanced for loop, autoboxing, varargs and annotations), after they were introduced in the similar (and competing) C# language [1][2]
  2. «About Microsoft's "Delegates"». Skatīts: 2010-01-11. We looked very carefully at Delphi Object Pascal and built a working prototype of bound method references in order to understand their interaction with the Java programming language and its APIs. [...] Our conclusion was that bound method references are unnecessary and detrimental to the language. This decision was made in consultation with Borland International, who had previous experience with bound method references in Delphi Object Pascal.
  3. Gosling and McGilton. «The Java Language Environment», May 1996.
  4. J. Gosling, B. Joy, G. Steele, G. Brachda. «The Java Language Specification, 2nd Edition».
  5. «The A-Z of Programming Languages: Modula-3 - a-z of programming languages - Computerworld». Arhivēts no oriģināla, laiks: 2009. gada 5. janvārī. Skatīts: 2010. gada 9. jūnijā.
  6. Patrick Naughton cites Objective-C as a strong influence on the design of the Java programming language, stating that notable direct derivatives include Java interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [3]
  7. TechMetrix Research. «History of Java». Java Application Servers Report, 1999. Arhivēts no oriģināla, laiks: 2010. gada 29. decembrī. Skatīts: 2009. gada 16. oktobrī. The project went ahead under the name "green" and the language was based on an old model of UCSD Pascal, which makes it possible to generate interpretive code
  8. A Conversation with James Gosling - ACM Queue
  9. «Write once, run anywhere?» (angliski). 2002-05-02. Arhivēts no oriģināla, laiks: 2021-08-13. Skatīts: 2024-05-26.
  10. 10,0 10,1 Taiichi Sakaiya. «1.2 Design Goals of the Java Programming Language», 2024-05-19. Skatīts: 2024-05-19.
  11. «Don’t call it a comeback: Why Java is still champ». GitHub (angļu). 2024. Skatīts: 2024-05-19.
  12. «TIOBE Index». TIOBE (en-US). Skatīts: 2024-05-19.
  13. Robert McMillan. «Is Java Losing Its Mojo?». Wired (en-US). ISSN 1059-1028. Skatīts: 2024-05-19.
  14. «Oracle buys Sun, becomes hardware company | Deep Tech - CNET News». web.archive.org. 2010-08-21. Arhivēts no oriģināla, laiks: 2010-08-21. Skatīts: 2024-05-19.
  15. «JDK 21». openjdk.org. Skatīts: 2024-05-19.
  16. Shreyas Sharma. «Microcontroller vs Microprocessor: A Comprehensive Guide to Their Differences and Applications». www.wevolver.com. Skatīts: 2024-05-20.
  17. «API reference for Java Platform, Standard Edition». docs.oracle.com (angļu). Skatīts: 2024-05-20.
  18. 18,0 18,1 18,2 Kieron Murphy. «So why did they decide to call it Java?». InfoWorld (angļu), 2022-07-16. Skatīts: 2024-05-21.
  19. «Definition of JAVA». www.merriam-webster.com (angļu). 2024-05-16. Skatīts: 2024-05-26.
  20. «Object as a Superclass (The Java™ Tutorials > Learning the Java Language > Interfaces and Inheritance)». docs.oracle.com. Skatīts: 2024-05-22.
  21. William G. Wong. «Write Once, Debug Everywhere». Electronic Design (angļu), 2002-05-27. Skatīts: 2024-05-22.
  22. «Variables and types». cplusplus.com (angliski). skat sadaļu - Here is the complete list of fundamental types in C++:. Skatīts: 2024-05-22.
  23. «C++11 - cppreference.com». en.cppreference.com. Skatīts: 2024-05-22.
  24. 24,0 24,1 Alexa Morales. «The 25 greatest Java apps ever written» (angliski), 2021-05-01. Skatīts: 2024-05-23.
  25. Kabra Akshat. «What is Minecraft's current player count in 2022?» (angliski). Nazara Technologies, 2024-05-23. Skatīts: 2024-05-23.
  26. «Jenkins requires Java 11 or newer». Jenkins requires Java 11 or newer (angļu). Skatīts: 2024-05-23.
  27. «Why Do I Need Java to Use Apache OpenOffice?» (angliski). 2024-05-23. Skatīts: 2024-05-23.
  28. «How Google Docs Works». HowStuffWorks (en-us). 2008-06-02. Skatīts: 2024-05-23.
  29. «JetBrains/intellij-community» (angliski). Skatīts: 2024.gada 9. martā.
  30. Curtis Johnson. «Most Popular Java IDEs in 2023 | JRebel by Perforce». www.jrebel.com (angļu). Skatīts: 2024-03-09.
  31. «The eBay Architecture». 2006. Arhivēts no oriģināla, laiks: 2011-03-13. Skatīts: 2024-05-26.
  32. «eBay Architecture - High Scalability -». High Scalability (angļu). 2008-05-27. Skatīts: 2024-05-23.
  33. «Amazon joins the Java Community Process (JCP) | AWS Open Source Blog». aws.amazon.com (en-US). 2019-10-22. Skatīts: 2024-05-23.
  34. Matteo Possamai. «Technologies used at Amazon». CodeX (angļu), 2023-02-26. Skatīts: 2024-05-23.
  35. Anyleads. «What Technology Is Used in LinkedIn? | Anyleads». anyleads.com (angļu). Skatīts: 2024-05-23.
  36. «Twitter Shifting More Code to JVM, Citing Performance and Encapsulation As Primary Drivers». InfoQ (angļu). Skatīts: 2024-05-23.
  37. «What is the technology stack behind Twitter? – Webbharatnetwork» (angļu). Skatīts: 2024-05-23.
  38. Shaini A. Ravi. «INSTAGRAM — Tech Stack». Medium (angļu), 2020-08-20. Skatīts: 2024-05-23.
  39. «Deciphering the Airbnb Tech Stack: Replicating the Architecture with Python Alternatives». www.linkedin.com (angļu). Skatīts: 2024-05-23.
  40. «The Uber Engineering Tech Stack, Part I: The Foundation» (angliski). 2016-06-19. Skatīts: 2024-05-23.
  41. «Google Architecture - High Scalability -». High Scalability (angļu). 2008-11-22. Skatīts: 2024-05-23.
  42. «Netflix, Inc.». GitHub (angļu). Skatīts: 2024-05-23.
  43. Marny Lopez. «Spotify: A deep dive into their tech stack» (angliski), 2024-03-13. Skatīts: 2024-05-23.
  44. «Using Node.js PayPal Doubles RPS, Lowers Latency, with Fewer Developers, but Where Do the Improvements Really Come From? - High Scalability -». High Scalability (angļu). 2013-12-11. Skatīts: 2024-05-23.
  45. «From Java to Apex». Force 201 (angļu). 2010-03-11. Skatīts: 2024-05-23.
  46. «Oracle Java SE Support Roadmap» (angliski).
  47. «JAVASOFT SHIPS JAVA 1.0» (angliski). Arhivēts no oriģināla, laiks: 2007. gada 10. martā. Skatīts: 2024. gada 26. maijā.
  48. Sharat Chander. «Introducing Java SE 11» (angliski), 2018-09-25. Skatīts: 2024-03-10.
  49. Sharat Chander. «The Arrival of Java 15!» (angliski), 2020-10-18. Skatīts: 2024-03-10.
  50. «JDK 21» (angliski). 2024-03-10. Skatīts: 2024-03-10.

Ārējās saites