한국   대만   중국   일본 
Java (programm??anas valoda) ? Vikip?dija P?riet uz saturu

Java (programm??anas valoda)

Vikip?dijas lapa
(P?radres?ts no Java (valoda) )
?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 ; 8 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)(vair?k ?aja ??s lapas sada??), 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 [ labot ?o sada?u | labot pirmkodu ]

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(a rchitecture 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 [ labot ?o sada?u | labot pirmkodu ]

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? [ labot ?o sada?u | labot pirmkodu ]

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? [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

“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 [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

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 [ labot ?o sada?u | labot pirmkodu ]

Vair?ki uz??mumi ir pazi?oju?i, ka izmanto JAVA: [ labot ?o sada?u | labot pirmkodu ]

Uz??mumi, kas atteicas izmantot JAVA [ labot ?o sada?u | labot pirmkodu ]

Versijas un izlaidumi [ labot ?o sada?u | labot pirmkodu ]

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]

Sveika, pasaule! [ labot ?o sada?u | labot pirmkodu ]

public class HelloWorld 
{
    public static void main(String[] args) 
    {
        System.out.println("Sveika, pasaule!");
    }
}

Atsauces [ labot ?o sada?u | labot pirmkodu ]

  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 [ labot ?o sada?u | labot pirmkodu ]