jaava (prograaming bhaasha)

jaava
100px
prakaar Object-oriented, structured, imperative
pehla avataran 1995
dijaainar Sun Microsystems
sthaayi vimochan Java Standard Edition 6 (1.6.0_15)
likhne ka tarika Static, strong, safe, nominative, manifest
upayog Numerous
bhaashika Generic Java, Pizza
prabhaavakarta Objective-C,[1] Ada 83, Pascal,[2] C++, C#,[3] Eiffel,[4] Smalltalk, Mesa,[5] Modula-3,[6] Generic Java
prabhaavit Ada 2005, C#, Clojure, D, ECMAScript, Groovy, J#, PHP, Scala, JavaScript, Python, BeanShell
prachaalan tantr Cross-platform (multi-platform)
anujnyaap‍aatidhaari GNU General Public License / Java Community Process
website http://java.sun.com

jaava ek prograaming bhaasha hai jise moolat: san maaikrosistams ke James gosaling dvaara viksit kiya gaya tatha 1995 mein ise san maaikrosistams ke jaava pletafaarm ke ek mukhya avayav ke roop mein release kiya gaya. bhaasha apna adhikaansh vaakya vinyaas (sinteks) C (si) aur C++ se praapt karti hai lekin iske paas ek saral objekt model aur kuchh nimn star ki suvidhaayein maujood hain. jaava ke prayogon ko vishisht roop se baaitakod (class file) ke liye sankalit kiya jaata hai jise kisi bhi computer aarkitekchar vaale kisi bhi jaava varchual machine (JVM) par chaaloo kiya ja sakta hai.

1995 se san dvaara mool tatha sandarbh kaaryaanvayan jaava sankalakon (kampaailaron), varchual masheenon aur class laaibreriyon ko viksit kiya gaya. May 2007 tak, jaava kamyuniti proses ke vishesh ullekhapoorvak anumati mein san ne apne adhikaansh jaava prodyogikiyon ko GNU general pablik laaisens ke arntagat muft software ke roop mein upalabdh karaaya. doosaron ne bhi san ki in prodyogikiyon ke vaikalpik kaaryaanvayanon ko viksit kiya, jaise ki GNU klaasapaath aur jaava ke liye GNU kampaailar.

anukram

itihaas

Duke, the jaava maaskot
inhein bhi dekhein: Java (Sun) history evam Java version history

June 1991 mein James gosaling ne apne kai set-top box pariyojanaaon mein se kisi ek pariyojana mein upayog karne ke liye jaava bhaasha pariyojana ko praarambh kiya.[7] is bhaasha ka naam pehle ok (Oak) tha jiska naamakaran gosaling ke kaaryaalaya ke baahar sthit ek ok ped ke naam par hua tha. iske baad iska naam green (Green) bhi pada aur ant mein iska naam jaava pada. yeh jaava naam kramabaddh shabdon ki ek soochi mein se liya gaya.[8] gosaling ka lakshya tha ki ve ek varchual machine va ek bhaasha ki shuruaat karein jo C/C++ shaili padvati se parichit ho. [9]

1995 mein san ne jaava 1.0 ke roop mein pehla saarvajanik kaaryaanvayan release kiya. prachalit pletafaarmon par bina-moolya run-time (chaaloo hone mein lagne wala samay) ki suvidha pradaan karte hue isne "right vans, run eneevheyar" (WORA) ka vaada kiya. paryaapt sudrudh aur samanuroopayogya (kaunfigrebal) suraksha prakat karte hue isne network aur file ekses ke pratibandhon ko anumati de di. mukhya web braaujron ne jald hi vebapejon ke bheetar jaava epleton ko chalaane ki yogyata ko sammilit kar liya aur jald hi jaava vikhyaat ho gaya. jaava 2 (jise December 1998 mein shuroo-shuroo mein J2SE 1.2 ke roop mein release kiya gaya) ke aagaman ke saath naye bhaashaantaron (varsan) mein bahu aakruti (kaunfigreshan) thi jo vibhinn prakaar ke pletafaarmon ke liye nirmit thi. udaaharanasvarup, entarapraaij aplikeshan ke liye lakshit J2EE aur mobile aplikeshan ke liye atyant naveen varsan J2ME . J2SE ne maanak (staindard) sanskaran (edishn) ko lakshit kiya. 2006 mein, vyaapar ke uddeshya se san ne J2 ke naye varsanon ka naam badalkar kramash: jaava EE, jaava ME aur jaava SE kar diya.

1997 mein, san maaikrosistamas ne jaava ko amali jaama pahanaane ke liye ISO/IEC JTC1 maanak samiti ko aur baad mein aikma antaraashtreeya ko prastaav bheja, par jald hi yeh is prakriya se hat gayi.[10] jaava samudaaya prakriya dvaara niyantrit jaava vaastav mein ek di faikto maanak bana hua hai.[11] apne software maalik hone ke darje ke baavajood, ek baar san ne bina shulk ke jaava kaaryaanvayan ka adhikaansh hissa upalabdh karaaya. san ne jaava se vishesh utpaad jaise jaava intarapraaij system ko license bechakar munaafa kamaaya. san ne apne software develapameint kit (SDK) aur ranataaim enavaayaranameint (JRE) (SDK ka ek upasamuchchaya (sabaset)) mein bhed kiya; praathamik bhed mein JRE ka kampaailar ki kami, upayogita program aur hedar faails shaamil hain.

13 November 2006 ko, san ne GNU general pablik laaisens (GPL) ke sharton ke adheen adhikaansh jaava ko svatantr aur mukt strot software ke roop mein release kiya. 8 May 2007 ko san ne prakriya ka samaapan kiya, code ke ek chhote se hisse jis par san ka prakaashanaadhikaar (kaupeeraait) naheen hai, use chhodkar baaki jaava ke sabhi kor code ko muft software/mukt-strot vitran shart ke tahat upalabdh karaaya.[12]

siddhaant

jaava bhaasha ko nirmit karne ke paanch mukhya uddeshya the:[13]

  1. yeh "saral, objekt unmukh (oriyented) aur parichit" honi chaahiye.
  2. yeh "robast aur surakshit" honi chaahiye.
  3. yeh "aarkitekchar tatasth (nyootral) aur vahaneeya" honi chaahiye.
  4. yeh "uchch pradarshan" ke saath laagu honi chaahiye.
  5. yeh "bhaashaantarit, threded (sootrit) aur gatik" honi chaahiye.

injeelavaad

haalaanki jaava ka adhikaansh pratyaksh munaafa laaiseinsing aur JCP sadasyata raashi se aata hai, kuchh maanate hain ki jaava pramukhat: haardaveyar sarvar ko badhaava dene ka ek vaahan aur/ya aantarik roop se san ke liye solaaris OS ki bikri hain aur san ke upaadhyaksh rich green ne kaha ki jaava ke liye san ki aadarsh bhoomika "injeelavaad" ke jaisi hai.[14]

kaaryapranaali (praiktises)

jaava plaitafaurm

jaava ki ek visheshata vahaneeyata hai, jiska matlab hai ki jaava bhaasha mein likhe gaye computer program kisi bhi haardaveyar samarthit/operating system platform par samaan roop se kaarya karta hai. ise jaava bhaasha sanket ko sankalit karke praapt kiya gaya hai, machine code se naheen balki jaava baaitakod se, - nirdesh machine sanket ke anuroop hai lekin vishesh taur par host haardaveyar ke liye likhit varchual machine (VM) dvaara bhaashaantarit karna abheesht hoga. end-yoojrs saamaanya taur par staindaalon prayog machine/ya jaava eplets ke liye web braaujar mein jaava ranataaim enavaayaranameint (JRE) ka istemaal karte hain, jo unke swayam ke machine par sansthaapit (instaald) hai.

maanakataapraapt laaibrereej host vishisht suvidhaaon jaise:- aarekhi (graafiks), threding aur networking ke abhigman (ekses) ke liye ek kriyaasheel raasta pradaan karte hain.

baaitakod ko istemaal karne ka sabse mukhya laabh hai vahanata. jo kuchh bhi ho, bhaashaantaran ke oopari bhaag ka matlab hota hai ki bhaashaantarit prograams hamesha mool nishpaadanayogya se sankalit prograams se jyaada dheere chalti hain aur bure pradarshan ke kaaran jaava ki saakh ko nuksaan hota hai. haal hi mein JVM kaaryaanvayan mein kai ishtatameekaran (optimization) takaneekon ke aane se yeh pareshaani thodi kam ho gayi hai.

kaaryaanvayan

san maaikrosistams aadhikaarik taur par jaava maanak sanskaran platform Linux, Mac OS X aur Solaris ke liye license deti hai[krupaya uddharan jodein]. haalaanki, poorv mein san ne Microsoft ko jaava license diya, license ki avadhi samaapt ho chuki hai aur iska fir se naveekaran naheen kiya gaya hai.[15] teesare-samooh ke vikretaaon aur laaiseinsadhaariyon ke network dvaara,[16] vaikalpik jaava enavaayaranameint iske aur doosare pletafaurmas ke liye upalabdh hain.

jaava brand ka upayog karne ke liye san ka tredamaark license drudhtaapoorvak kehta hai ki sabhi kriyaanvayan 'upayukt' ho. iska parinaam Microsoft ke saath kaanooni vivaad ke roop mein nikla jab san ne daava kiya ki Microsoft kriyaanvayan RMI aur JNI ko samarthan naheen karti aur ismein uske swayam ke atirikt platform-vishisht visheshataaen hain. san ne 1997 mein abhiyog chalaaya aur 2001 mein 20 million dollar ka bhugataan aur saath hi saath san ke license ki sharto ko laagoo karne ka court ka aadesh bhi paaya.[17] parinaamasvaroop, Microsoft ne vindoj ke saath jaava ko jyaada din naheen chalaaya aur vindoj ke haal ke varsanon mein, Internet eksplorar bina teesari party ke niyantran ke jaava epaplets ko samarthan naheen kar sakta. san aur doosaron ne vindoj ke us aur anya varsanon ke liye muft jaava run-time system upalabdh karaaya.

jaava EE rananeeti ke liye platform-svatantr jaava aavashyak hai aur yahaan tak ki kriryaanvayan ko pramaanit karne ke liye aur sakht vaidheekaran (velideshan) jaruri hai. ant:sthaapit jaava enavaayaranameint ka upayog karke, yeh enavaayaranameint vahaneeya sarvar-side jaise web sarvises, sarvalets aur intarapraaij jaavaabeens, saath hi saath OSGi par aadhaarit ant:sthaapit system ko saksham banaata hai. glaasafish pariyojana ke dvaara san jaava EE praudyogiki ka poorn sanchaalit, ekeekrut mukt strot kaaryaanvayan ke liye kaarya kar raha hai.

san JRE ka suparaset bhi vitrit karta hai jise jaava development kit (saamaanya taur par JDK ke roop mein jaana jaata hai), kaha jaata hai jisme vikaas upakaran jaise jaava kampaailar, jaavaadok, jaar aur deebagar shaamil hai.

pradarshan

jaava program ke pradarshan ka iske samatulya moolat: sankalit bhaasha (jaise ki C, C++, ya objekt paaskal) mein likhe gaye program se tulana karna kathin hai kyonki jaava ke baaitakod kampaailar ka taaraget platform, jaava platform hi hai aur baaitakod JVM dvaara machine code mein ya to bhaashaantarit kar diya jaata hai ya sankalit kar diya jaata hai. in do bhinn drushtikonon: sthaitik banaam gatisheel sankalan aur pun: sankalan aur anya se utpann paridrushyon ki tulana karna bahut kathin aur alag hai.

sankalit bhaashaaon mein likhe prograamon ki tulana mein jaava mein likhe prograamon ka dheema hona aur adhik memori ki aavashyakta hona ek visheshata rahi hai.[18] jo kuchh bhi ho, jast-in time sankalan (1997/1998 mein jaava 1.1),[19][20][21] ke aagaman ke kaaran jaava prograamon ki kriyaanvayan gati teji se badhi hai, atirikt bhaasha visheshataaen uttam code vishleshan,[tathya vaanchhit] aur jaava varchual machine mein svanya ishtatameekaran (jaise ki 2000 mein san ke JVM ke liye hautaspaut ka aabhaav hona) ko samarthan karti hai.

svachaalit smruti (memori) prabandhan

inhein bhi dekhein: Garbage collection (computer science)

objekt jeevan chakr mein smruti ka prabandhan karne ke liye jaava ek svachaalit kachara (gaarbej) sangrahakarta ka upayog karta hai. prograamar nirdhaarit kar leta hai kab objekt ka nirmaan hoga aur ek baar objekt jab aur upayog ke laayak naheen rah jaata to uske smruti ko pun: praapt karne ki jimmedaari jaava ranataaim ki hoti hai. ek baar jab objekt ka koi sandarbh baaki naheen rahata, tab agamya (anarichebal) objekt sangraahak dvaara svat: mukt hone ke yogya ho jaata hai. kuchh kuchh memori risaav ke samaan tab bhi jaari rah sakta hai agar ek prograamar ka code kisi objekt ka ek sandarbh jiski ab aur jaroorat naheen hai use pakadta hai, usi tarah jab objekts jiski aur jaroorat naheen hai vah us kantenar mein sangrahit hai jo abhi bhi istemaal mein hai. agar astitvaviheen objekt ke liye paddhatiyon ko bulaaya jaata hain, ek "nal pauintar eksepshan" feinka jaata hai.[22][23]

jaava ke svachaalit smruti prabandhan model ke peechhe ek vichaar yeh hai ki prograamars niyamit smruti prabandhan ko prardashit karne ka bojh thoda kam kar le. kuchh bhaashaaon mein objekt ke nirmaan ke liye smruti stek par anumaan se aavantit ki jaati hai ya spashtataya aavantit hoti hai aur dher (heep) se pun: aavantit ki jaati hain. har tarah se smruti prabandhan ki jimmedaari prograamar ke saath rahati hai. agar kaaryakram kisi objekt ko pun:aavantan naheen karta hai to ek smruti risaav utpann hone lagta hai. agar kaaryakram smruti ka abhigman ya pun: aavantit karne ka prayaas karta hai jo pehle hi pun:aavantit kiya ja chuka hai, tab parinaam ka anumaan lagaana aur vyaakhya karna mushkil ho jaata hai aur kaaryakram sanbhavat: ya to asthir aur/ya to samaapt ho jaata hain. ise smart sanketon ke istemaal se anshat: theek kiya ja sakta hai lekin yeh ooparivyaya aur jatilta ko badhaata hai.

kachara sangrahan kisi bhi samay ho sakta hai. aadarshat: yeh tab hoga jab kaaryakram khaali rahata hai. agar nae objekt ko aavantit karne ke liye svatantr smruti aparyaapt hai tab iska chalaaya jaana nishchit hai, yeh kshanabhar ke liye ek kaaryakram sthaapit karne ka kaaran ban sakta hai. spasht smruti prabandhan jaava mein sambhav naheen hai.

jaava C/C++ shaili soochak ankaganit ko samarthan naheen karta hai, jahaan par objekt edres (pata) aur achinhit inteejars (aamtaur par lambe inteejars) ko adala-badli karke upayog kiya ja sakta hain. yeh kachara collector ko sandarbhit objektas ko sthaanaantarit karne ki anumati deta hai aur iska bachaav aur suraksha sunishchit karta hai.

jaisa ki C++ aur kuchh doosare objekt-unmukh bhaashaaoain mein, jaava ke parivrtaneeya praathamik prakaar objekt naheen hai. praathamik prakaaron ki upayogita ko ya to kshetron (objekt ke liye) mein pratyaksh roop se sanchit kiya jaata hai ya dheron par (paddhati ke liye) na ki stek par, jaisa objekt ke liye saamaanya taur par sahi hai (lekin bachaav vishleshan dekhein). jaava ke dijaainaron dvaara pradarshan ke kaaran liya gaya yeh ek sajag nirnaya tha. iske kaaran, jaava ko ek shuddh objekt-unmukh prograaming bhaasha naheen maana gaya. jo kuchh bhi ho, jaisa ki jaava 5.0, svat: sanchaalan prograamars ko aage badhne ke liye saksham banaata hai agar praathamik prakaarein unke aavaran shreniyon ke udaaharan hote hain.

vaakyavinyaas

jaava ke vaakyavinyaas jyaadaatar C++ se vyutpann hai. C++, jismein banaavat, kriyaavidhi aur kaaryakram vaakya vinyaas ko jodti hain usase alag jaava ko keval ek objekt-unmukh bhaasha ke roop mein banaaya gaya tha. sabhi code ek class ke bheetar likhe gaye hain aur sabhi kuchh ek objekt hai; antarbhoot aakadon ke prakaaron (kramavaachak aur vaastavik sankhyaaen, booliyn moolyon aur akshar) ko chhodkar, jo pradarshan kaaranon se klaason naheen hai.

jaava kai visheshataaon ko (jaise ki parichaalak atibhaar aur bahu uttaraadhikaar) klaason ke liye, chhupaati hai aisa vah bhaasha ko saral banaane aur svaabhaavik trutiyon aur anaadarsh rachana ko rokane ke liye karti hai.

jaava C++ ki tarah hi sameeksha paddhati upayog karti hai. do vibhinn prakaar ki sameekshaaen hain: ekarekheeya shaili ankan do forward slaishes ke saath aur ek bahurekheeya shaili khuli forward slaish estarisk (/*) ke saath aur band ek estarisk forward slaash (*/) ke saath.

udaaharan:

 
 // yeh do forward slaishes ka upayog karke ekarekheeya tipnni ka ek udaaharan hai. 

/* yeh bahu pankti tipnni ka ek udaaharan hai jismein forward slaish 
aur estarisk ka istemaal hota hain. adhik se adhik jaankaari rakhane ke liye is tarah ke tipnni ka upayog kiya ja sakta hai 
 lekin tippani kon band karne ki yaad rakhana bahut mahatvapoorn hai. */ 

 </ source> 

== udaharan ==
=== helo varld ===
 parnparik [[hailo varld program|helo varld karyakram]] ko javaa mein is prakar likha ja sakata hai: 

 <source lang="java"> 
 /* 
 * Outputs "Hello, world!" and then exits 
 */ 

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

paramparaanusaar .java pratyaya lagaakar udaaharanasvarup HelloWorld.java strot faailon ka naamakaran pablik class hota hai. iska sankalan HelloWorld.class ke naam se file upaadit karke sabse pehle jaava kampaailar ka istemaal karke baaitakod mein hona chaahiye. uske baad hi ise kaaryaanvit ya "nishpaadit" kiya ja sakta hai. jaava strot file mein ho sakta hai ki sirf ek pablik class ho lekin ismein pablik ekses se tulana mein kam malteepal klaason aur kitni bhi sankhya mein pablik inar klaason shaamil ho sakti hai.

ek class jise private ghoshit kiya ja chuka hai, use kisi bhi .java file mein sangrahit kiya ja sakta hai. kampaailar strot file mein paribhaashit har class ke liye ek class file utpann karega. class file ka naam class ka naam hai, .class sanlagnit ke saath. class file peedhi ke liye, naamarahit klaason is tarah prabandhit hoti hain jaise ki unka naam unke sanlagnit class ke naam ka sanyojan tha, ek $, aur ek poornaank.

mukhya shabd public soochit karta hai ki ek pranaali doosare klaason mein code ke dvaara laaya ja sakta hai, ya class padaanukram (hierarchy) ke baahar klaason ke dvaara class ka prayog ho sakta hai. class padaanukram nirdeshika ke naam se sambandhit hota hai jismein jaava file rahata hai.

ek pranaali ke aage ka mukhya shabd static ek sthitik pranaali ko sanket karta hai jo sirf class se juda hua hai, us class ke kisi bhi doosare vishesh udaaharan se naheen. sirf sthitik pranaaliyaan kisi objekt ko sandarbh kiye bina aamantrit ki ja sakti hain. sthitik pranaaliyaan kisi bhi char pranaali jo sthaitik naheen hai usaka abhigm (ekses) naheen kar sakateen.

mukhya shabd void sanketit karta hai ki mukhya pranaali kaular ko koi moolya vaapas naheen karta. agar ek jaava program galat code ke saath baahar nikalne ko hai, yeh spashtataya jarur System.exit() ko bulaaega.

pranaali naam "main" jaava bhaasha mein mukhya shabd naheen hai. yeh sirf pranaali ka naam hai jise jaava nirmaata kaaryakram ko niyantran badhaane ke liye bulaata hai. jaava klaason jo prabandhit parivesh jaise epplets aur intarapraaij jaava beens mein chalte hain usako main() pranaali ki jarurat naheen padti hain ya istemaal naheen karte. ek jaava kaaryakram mein bahu klaason jiske paas main pranaaliyaan hain, samaavisht ho sakti hai, jiska matlab hua ki VM spashtataya kehne wala hona chaahiye ki kis class se prakshepan kiya jaae.

mukhya pranaali [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/lang/String.html String] objektas ki saarani ko jarur sveekaar kare. paramparaanusaar, yeh args ke roop mein sandarbhit hota hai yadyapi koi bhi kaanooni pehchaan wala naam istemaal kiya ja sakta hai. jaava 5 ke samay se, mukhya pranaali ko string yuktiyon ke svechhaachaari sankhya ke saath aamantran ko anumati dete hue public static void main (String... args) ke roop mein, mukhya pranaali parivrtit yuktiyon ka bhi istemaal kar sakta hai. is vaikalpik ghoshana ka prabhaav shabdaarthat: pehchaan yogya hai (args maanadand abhi bhi String objektas ki ek saarani hai), lekin yeh saarani ko banaane aur badhaane ke liye vaikalpik vaakya vinyaas ko anumati deti hai.

jaava nirmaata diye gaye class (niyantran rekha par nirdisht ya ek JAR mein visheshata ke roop mein) ke bhaaran dvaara jaava ka prakshepan karti hai aur apne public static void main(String[]) pranaali ko shuroo karti hai. stand-alon prograams ko spashtat: is pranaali ki ghoshana karni chaahiye. String[] args maanadand class ko paarit kisi yukti sammilit [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/lang/String.html String] objekt ki saarani hai. main ka maapdand aksar niyantran rekha ke maadhyam dvaara paarit ki jaati hai.

mudran, jaava maanak laaibrereej ka ek bhaag hai: [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/lang/System.html System] class ek pablik staitik class ko paribhaashit karta hai jise bulaaya jaata hai [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/lang/System.html#out out] . 'out' objekt, [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/PrintStream.html PrintStream] class ka ek udaaharan hai aur yeh data mudran ke liye kai maanak rahit pranaaliyaan pradaan karta hai [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/PrintStream.html#println(java.lang.String) println(String)] jo string paarit karne ke liye nai rekha bhi sanlagn karti hai.

string "Hello, World!" svachaalit: sangraahak dvaara string objekt ke roop mein parivrtit ho jaati hai. 

ek adhik vistrut udaaharan

 hello===frieand==
 // OddEven.java 
import javax.swing. JOptionPane; 
olawer-==-
 public class OddEven swing=-
welcomeŔ
 // "input" is the number that the user gives to the computer 
 private int input; // a whole number("int" means integer) 

 /* 454545
 * This is the constructor method. It gets called when an object of the OddEven type 
 * is being created. 
 */ ankita=-
 public OddEven() { koshti-
 //Code not shown å
 } 454545


 // This is the main method. It gets called when this class is run through a Java interpreter. 
 public static void main(String[] args) { 
 /* persnol
 * This line of code creates a new instance of this class called "number" (also known as an 
 * Object) and initializes it by calling the constructor. The next line of code calls 
 * the "showDialog()" method, which brings up a prompt to ask you for a number 
 */ no number

 OddEven number = new OddEven(); 
 number.showDialog(); 
 } 
 no number

 public void showDialog() { 
 /* no

 * "try" makes sure nothing goes wrong. If something does, 
 * the interpreter skips to "catch" to see what it should do. 
 */ 
 try { write page

 /* 
 * The code below brings up a JOptionPane, which is a dialog box 
 * The String returned by the "showInputDialog()" method is converted into 
 * an integer, making the program treat it as a number instead of a word. 
 * After that, this method calls a second method, calculate() that will 
 * display either "Even" or "Odd." 
 conect no

 input = new Integer(JOptionPane.showInputDialog("Please Enter A Number")); 
 calculate(); 
 } catch (NumberFormatException e) {
 
 /*454545

 
 * Getting in the catch block means that there was a problem with the format of 
 * the number. Probably some letters were typed in instead of a number. 
 */no instred

 
 System.err.println("ERROR: Invalid input. Please type in a numerical value.") ; 
 } 363636
 } 363636

 /* 
 * When this gets called, it sends a message to the interpreter. 
 * The interpreter usually shows it on the command prompt (For Windows users) 
 * or the terminal (For Linux users).( Assuming it's open) 
 */ %4==o
 private void calculate() { 
 if (input % 2 == 0) { 
 System.out.println("Even"); 
 } else { no

 System.out.println("Odd"); 
 } no

 } 
 } 
 </ source> 

* '''[[javaa mukhyashabthe # aayat|import]]''' stetameint '''{{Javadoc:SE|javax/swing|JOptionPane}}''' klas ko '''{{Javadoc:SE|package=javax.swing|javax/swing}}''' paikej se import karata hai. 
* <code>'''oddEven''' </code> ek ekal [[kshetr (knpyaootar sains)|kshetr]] <code>'''[[javaa mukhyashabthe# naiji|private]]''' </code> prakar ke klas <code>'''int''' </code> ki ghoshana karata hain jise <code>'''input''' </code> kaha gayaa tha. <code>OddEven</code> klas ke har udaharan ke pas <code>input</code>kshetr ki apani ek pratilipi hai. praivet ghoshana ka matlab hota hai ki koE theoosari <code>input</code> kshetr ka abhigam (padhnaa yaa likhana) naheen kar sakati. 
* <code>'''OddEven()''' </code> ek <code>'''public''' </code> [[nairmata (knpyaootar sains)|nairmata]] hai. nairmataOn ke vahi naam hain jo snlangit klas mein unhein ghoshit kiyae gaye hain, ek pranali ki tarah naheen jisaka koE [[vaapasi ke prakar|vaapasi prakar]] naheen hai. ek nairmata ek objekt ko aarambh karane ke liA istemal karata hai jo navina bane klas ka udaharan hota hai. 
*<code>'''calculate()''' </code> pranali ko binaa <code>static</code> mukhya shabthe ke ghoshit kiyaa jata hai. isaka matlab hai ki pranali vaishesh <code>OddEven</code> klas ka udaharan svarup istemal karane ke liA aamntrit hai. (pranali ko aamntrit karane ke liA prayaog kiyaa gayaa [[sandarbh (knpyaootar sains)|sandarbh]] ek aghoshit <code>OddEven</code> prakar naamit <code>'''[[javaa mukhyashabthe #yeh|this]]''' </code> ke roop mein parit kiyaa gayaa.) <code>'''[[javaa mukhyashabthe # agar|if]]''' </code> mukhya shabthe ka upayaog karate huA pranali abhivayakti <code>input % 2 == 0</code> ka parikshan yeh theekhane ke liA karata hai ki agar <code>input</code> kshetr ko baantane vaale sheshak klas ke udaharan ke roop mein theo gunaa shunaya hai. agar yeh abhivayakti satya hai, tabhi yeh '''Even''' ka mutheran karata hai; agar yeh abhivayakti galat hai tab yeh '''Odd''' mutheran karata hai. (<code>input</code> kshetr ko samanaaantarat: <code>this.input</code> ke roop mein abhigamit kiyaa ja sakata hai, jo spashtatayaa aghoshit <code>this</code> pairamitar ka istemal karata hai.) 
* <code>'''OddEven number = new OddEven()''' </code>; <code>main</code> pranali naamit <code>number</code> mein ek sthanaiya parivartaniya objekt [[sandarbh (knpyaootar sains)|sandarbh]] ki ghoshana karata hai. yeh parivartinaiyata <code>OddEven</code> prakar ke ek objekt ke sandarbh ko pakad kar rakh sakata hai. ghoshana <code>number</code> ki shuruaat karati hai, sarvapratham <code>OddEven</code> ka udaharan banakar, <code>'''[[javaa khojashabtheon # nayaa|new]]''' </code> mukhya shabthe <code>OddEven()</code> nairmata ka istemal karate huA aur tab is udaharan ko parivartinaiyata ko nairtheisht karati hai. 
* stetameint <code>'''number.showDialog()''' </code>; kailuckulet pranali ko bulati hai. sthanaiya <code>number</code> parivartit thevaara sandarbhit <code>OddEven</code> objekt ko udaharan svarup pranali ko aamntrit karane ke liA [[sthanaiya char|sthanaiya parivartaniyata]] ka istemal hota hain aur <code>calculate</code> pranali aaghoshit <code>this</code> manadand ke roop mein parit hota hai. 
* <code>'''input = new Integer(JOptionPane.showInputDialog("Please Enter A Number"))''' </code>; ek statement hai jo '''String''' ke prakar ko [[prathamik prakar]] '''int''' mein [[aavaran klas|raipar klas]] '''Integer''' poornak ka labh uthakar parivartit karata hai.

== vaishesh klason ==
=== eplet ===
{{Main|Java applet}}

 javaa eplet vae karyakram hain jo theoosare anuprayaogon, vaishesh prakar se [[vaeb braujr|vaeb brausar]] mein prardashit vaeb pej me ant:sthapit hain. 

 <source lang="java"> 
 // Hello.java 
 import javax.swing. JApplet; 
 import java.awt. Graphics; 

 public class Hello extends JApplet { 
 public void paintComponent(Graphics g) { 
 g.drawString ("Hello, World!", 65, 95); 
 } 
 } 
 </ source> 

 <code>'''import''' </code> stetameint snkalan mein '''{{Javadoc:SE|package=javax.swing|javax/swing|JApplet}}''' aur '''{{Javadoc:SE|package=java.awt|java/awt|Graphics}}''' klason ko sammilit karane ke liA [[javaa kampailar|javaa sngrahak]] ko nairtheesh karati hain. inport stetameint in shreniyaon ko ''sadharan klas naam'' (i.e. <code>JApplet</code>) ko [[strot kod]] mein sandarbh roop mein prayaog karane ki svaikruti jinake badale mein theeti hai, vah hai ''poornat: patrit klas naam'' (i.e. <code>javax.swing.</code><code>JApplet</code>). 

<code>Hello</code> klas <code>JApplet</code> (Java Applet) ko <code>'''extends''' </code> ([[upaklas (knpyaootar sains)|upashreniyaaan]]) karati hai, <code>'''JApplet''' </code> klas host ऍplikeshan ke liA dhaancha pradana karati hai aur eplet ka [[objekt jivanakal|jivan chakr]] naiyantran karati hai. <code>JApplet</code> shreni ek JComponent (javaa grafikal avayav) hai jo eplet ko [[grafikal yaoojar intarafes|grafikal upayaogakarta antarfalak]] (GUI) ke pradarshan ki kshamata pradana karati hai aur upayaogakarta [[ghatana-snchalit programing|ghatanaOn]] ko pratikriyaa theeti hai. 

eplet ko pradarshit karane ke liA <code>Hello</code> klas {{Javadoc:SE|java/awt|Container}} [[suparaklas knpyaootar sains)|suparaklas]] se liA gaye vanshagat '''{{Javadoc:SE|name=paintComponent(Graphics)|java/awt|Container|paint(java.awt.Graphics)}}''' pranaliyaon ka kod pradana karane ke liA [[pranali ki avahelana (programing)|ullnghan]] karati hai. <code>paint()</code> pranali nae <code>'''Graphics''' </code> objekt ko parit kiyaa jisamein eplet ke pradarshan ke liA grafik sandarbh sammilit hai. <code>paintComponent()</code> pranali grafiks sandarbh '''{{Javadoc:SE|name=drawString(String, int, int)|java/awt|Graphics|drawString(java.lang.String,%20int,%20int)}}''' pranali ko bulati hai, '''"Hello,world!"''' string ka pradarshan karane ke liA, jo eplet ke pradarshan mein oopari-theaAn konae ke (<code>'''65, 95''' </code>) [[piksel|piksel]] ofaset par hota hai. 

 <source lang="html4strict"> 
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

<html> 
<head> Good MORING
<title>Hello World Applet</title> 
</head> 
<body> soul
<applet code="Hello" width="200" height="200"> 
</applet> 
</body> 
</html>

ek eplet ko <applet> HTML tattv ka istemaal karke ek HTML dastaavej mein rakha jaata hai. eplet taig ke teen sthaapit gun hai: code="Hello", JApplet shreni ke naam ki visheshata bataata hai aur width="200" height="200" eplet ke peeksel ki chaudaai aur oonchaai ko sthaapit karta hai. eplets ko objects ya embed avayav ka istemaal karte hue HTML mein bhi ant:sthaapit kiya ja sakta hain[24] yadyapi web braaujr dvaara in avayavon ke liye samarthan asangat hain. jo kuchh bhi ho, applet taig ko anumati di gayi, isliye object taig jahaan bhi sambandhit hota hai use praathamikta milti hai.

host ऍplikeshan, vishesh roop se web braaujar, Hello eplet ko drushtaant (instantiates) deti hai aur eplet ke liye ek [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/applet/AppletContext.html AppletContext] ka nirmaan karti hai. ek baar jab eplet khud hi praarambh ho jaata hai, to ise AWT pradarshan pradaanukram mein jod diya jaata hai. paint pranaali ko jab bhi pradarshan ko khud kheenchne ke liye eplet ki jarurat hoti hai to ise AWT ghatna preshan sootr dvaara bulaai jaati hai.

sarvalet

jaava sarvalet praudyogiki web sarvar ki kaaryakshamata badhaane aur abhigman maujooda vyaapaar pranaaliyon ke liye ek saral, nirantar vyavastha ke saath web devalapars pradaan karta hai. sarvalet ve sarvar-side jaava EE avayav hain jo graahakon se anurodhon (vishesh prakaar se HTTP anurodhon) ke liye pratikriyaaon (visheshat: HTML pejes) ko utpann karti hain. sarvalet ko us eplet ki tarah socha ja sakta hai jo bina chehare ke - sarvar side par chalta hai. 
 
// Hello.java 
import java.io. *; 
import javax.servlet. *; 

public class Hello extends GenericServlet { 
public void service(ServletRequest request, ServletResponse response) 
throws ServletException, IOException { 
response.setContentType("text/html"); 
final PrintWriter pw = response.getWriter(); 
pw.println("Hello, world!") ; 
pw.close(); 
} 
}
import statements jaava sangraahako ko saarvajanik klaason aur se antarafalak (interface) aur sangrahan mein [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/package-summary.html java.io] aur javax.servlet paikejon shaamil karne ke liye nirdesh deti hai. 
Hello  class GenericServlet class ko badhaati extends  hai; the GenericServlet class sarvar ke liye sarvalet ko anurodh agrasaarit karne ke liye antarafalak pradaan karti hai aur sarvalet ka jeevan chakr niyantran karti hai. 

seva anurodh nivaarak ko sanket pradaan karne ke liye, Hello class, Servlet antarafalak dvaara paribhaashit ki gayi service(ServletRequest, ServletResponse) pranaali ka virodh karti hai. service() pranaali ko ek ServletRequest objekt paarit kiya jaata hai jismein graahak ke liye anurodh aur ServletResponse graahak ko vaapas ki gayi pratikriya utpann karne ke liye upayogit objekt shaamil hain. service() pranaali yeh ghoshana karta hai ki yeh apavaadon ServletException aur [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/IOException.html IOException] ko throws karti hai agar koi samasya ise anurodh ko pratikriya dene se rokati hai.

pratikriya objekt mein setContentType(String) pranaali ko "text/html" ko vaapas kiye gaye data ke MIME avayav prakaar sthaapit karne ke liye bulaaya jaata hai. getWriter() pranaali pratikriya svaroop ek [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/PrintWriter.html PrintWriter] objekt vaapas karti hai jo data likhne mein upayog hoti hai jo graahak ko bheja gaya hai. [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/PrintWriter.html#println(java.lang.String) println(String)] pranaali ko bulaaya jaata hai "Hello, world!" string likhne ke liye, pratikriya par aur uske baad mudrak lekhak ko band karne ke liye [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/io/PrintWriter.html#close() close()] pranaali ko bulaaya jaata hai, jis kaaran data par prabhaav padta hai jo graahak ko vaapas kiye jaane vaale streem ko likha ja chuka hai.

jaava sarvar pej

jaava sarvar pejes (JSPs) sarvar side jaava EE ghatak hain jo pratikriyaaen, aamtaur par HTML pejes, graahakon se HTTP anurodh utpann karti hain. JSPs vishesh pariseemak ke istemaal dvaara <% aur %> jaava code ko ek HTML pej mein ant:sthaapit kar leta hai. ek JSP jaava sarvalet se sankalit hoti hai, jaava anuprayog apne khud ke adhikaar mein, pehli baar abhigmit hua. iske baad utpattit sarvalet pratikriya utpann karti hain.

ghumaavadaar anuprayog (swing application)

ghumaav (swing) jaava SE platform ke liye graafikl upayogakarta antarafalak laaibreri hai. alag dikh rahe drushya ko pehchaanana sambhav hai aur plagaebal luk ke dvaara mahasoos keejiye aur ghumaav ki pranaali ko mahasoos keejiye. Windows, GTK aur Motif ke klon (clone) ki aapoorti san dvaara ki jaati hain. epal bhi ekva luk pradaan karti hain aur Mac OS X ke liye parakh, jahaan in lukon aur feels ke liye kaaryaanvayan mein kami dikh rahi hai, jaava SE 6 mein ghumaav jyaada aantarik ka deshi vijet draaving rooteens ka prayog karke in samasyaaon ki taraf sanket karta hai.

yeh udaaharan ghumaav anuprayog "Hello, world!" ke saath ek singal vindo ka nirmaan karti hain andar:

 
// Hello.java (Java SE 5)
 
import java.awt. BorderLayout; 
import javax.swing. *; 

public class Hello extends JFrame { 
public Hello() { 
super("hello"); 
setDefaultCloseOperation(WindowConstants. EXIT_ON_CLOSE); 
setLayout(new BorderLayout()); 
add(new JLabel("Hello, world!")) ; 
pack(); 
} 

public static void main(String[] args) { 
new Hello().setVisible(true); 
} 
}

pehla import stetameint jaava sangraahak ko [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/package-summary.html java.awt] package se [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/BorderLayout.html BorderLayout] class sangraahakata mein shaamil karne ka nirdesh deti hain; doosra import mein sabhi saarvajanik klaason aur [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/javax/swing/package-summary.html javax.swing] package se antarafal sammilt hain.

Hello  class [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/javax/swing/JFrame.html JFrame] class ko extends  karti hai, JFrame class title baar aur band niyantran ke liye ek vindo laagoo karti hain. 

Hello() nirmaata sabse pehle super class nirmaata ko bulaakar dhaanche ko praarambh karti hai, maanadand 'hello' ko paarit karte hue, jiska vindo ke sheershak ke roop mein istemaal hota hain. iske baad yeh jframe se vanshaagat [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/javax/swing/JFrame.html#setDefaultCloseOperation(int) setDefaultCloseOperation(int)] pranaali ko bulaati hain anupasthit operation sthaapit karne ke liye, jab title baar par klos control ke liye [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/javax/swing/WindowConstants.html#EXIT_ON_CLOSE WindowConstants.EXIT_ON_CLOSE] chuna jaata hai; yeh jframe ke nasht hone ka kaaran hoti hai, jab dhaancha ko band kar diya jaata hain (bilkuchh chhupe hue ke virodh mein), jo JVM ko baahar jaane ki aur kaaryakram ko baahar nikaalne ki anumati deti hain. uske baad, frem ka le-out Borderlayout par sthaapit kiya jaata hai, yeh ghumaav ko bataata hain ki avayavon ka kaise prabandh kiya jaae jise dhaancha mein joda jaaye. ek string "Hello, world!" ke liye [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/javax/swing/JLabel.html JLabel] banaaya gaya hai aur [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Container.html Container] super class pai gayi [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Container.html#add(java.awt.Component) add(Component)] pranaali ko dhaancha par lebal jodne ke liye bulaaya jaata hai. [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Window.html Window] suparaklaas se liye [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Window.html#pack() pack()] pranaali ko vindo ko BorderLayout dvaara sanketit tareeke mein iske avayavon ke le out ko aakaar dene ke liye bulaaya jaata hain.

jab kaaryakram shuroo hota hain main() pranaali ko JVM dvaara bulaaya jaata hai. yeh nae Hello dhaancha ko drushtaant (instantiates) deti hain aur [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Component.html Component] suparaklaas se nikaale hue [[[:saaaincha:Javadoc:SE/Home URL]]docs/api/java/awt/Component.html#setVisible(boolean) setVisible(boolean)] pranaali bulaakar buliyn pairaameetar true ke saath pradarshan ka kaaran banti hain. ek baar jab dhaancha prardashit ho jaata hai, main pranaali kaaryakram ko nuksaan na pahunchaae chhodkar; AWT ghatna preshan thred kriyaasheel bani rahati hain aur jab tak sabhi uchch stareeya vindo nikal na chuke ho.

jeneriks

2004 mein jeneriks ko jaava bhaasha mein J2SE 5.0 ke bhaag ke roop mein sammilit kiya gaya. jeneriks ke parichay ki praathamikta, har parivrtanasheel ghoshana vishesh prakaar ki honi chaahiye. kantenar klaason ke liye udaaharan ke svaroop, yeh ek samasya hai kyonki kantenar ke nirmaan ka koi saral raasta naheen hai jo sirf vishesh prakaar ki vastuon ko sveekaar karta hai. ya to kantenar class athva antarafalak, saamaanyataya object ke upaprakaaron par sanchaalan karta hai, ya vibhinn kantenar class har kanteind class ke liye nirmit hota hai. jeneriks badi sankhya mein kantenar klaason ka nirmaan kiye bagair sankalan-samay prakaar jaanch ki anumati deti hai, pratyek mein lagbhag samaan sanket hote hain.

class laaibrereej

  • jaava laaibrereej jaava mein aplikeshan vikaas ko samarthan karne ke liye JRE implimeintar dvaara viksit sangraahak (compiled) baait code ke strot code hain. in laaibrereej ke udaaharan hain:
    • mukhya laaibrereej, jismein shaamil hain:
      • kalekshan laaibrereej jo deta sanrachana jaise soochiyon, shabdakoshon, trees(trees) aur set ko laagoo karte hain
      • XML prasanskaran (paarsing, traansforming, maanakeekaran) laaibrereej
      • suraksha
      • intaraneshanalaaijeshan aur sthaaneeyakaran laaibrereej
    • ekeekrut laaibrereej, jo aplikeshan lekhak ko baahya vyavastha ke saath samvaad ki anumati de. in laaibrereej mein shaamil hain:
      • daataabes ekses ke liye jaava daataabes kanektiviti (JDBC) API
      • lukaap evam khoj ke liye jaava naamakaran aur nirdeshika antarafalak (JNDI)
      • vitrit anuprayog vikaas ke liye RMI aur CORBA
      • aplikeshan prabandhan aur nigraani ke liye JMX
    • upayogakarta intarafes laaibrereej, jismein shaamil hain:
      • (haiveevet ya deshi) saar vindo toolakit (AWT), jo GUI ghatak pradaan karti hai, jo un avayavon ke le-out ke aur un avayavon se ghatnaaon se nipatne ke maadhyam hain.
      • (laaitavet) swing laaibrereej, jo AWT par bani lekin AWT vijetri ka (naun-netiv) kaaryaanvayan pradaan karti hai.
      • audio kaipchar, prasanskaran aur plebaik ke ke liye APIs.
  • jaava bhaashik machine ka pletafaarm aashrit kaaryaanvayan maadhyam hai jiske dvaara jaava laaibrereej ka baait code aur thard party aplikeshan laagoo hote hain.
  • Plugins, jo eplets ko web braaujr mein chalaane ke liye saksham banaati hain.
  • jaava web staart, jo jaava anuprayogon ko kushalataapoorvak vitrit karne ki anumati upayogakarta ko poore Internet par deta hai.
  • laaiseinsing aur dastaavejeekaran.

dastaavejeekaran (dokumeinteshan)

jaavaadok ek vyaapak dastaavejeekaran system hai, jise san maaikrosistams dvaara banaaya gaya aur kai jaava devalapars dvaara prayog kiya gaya. yeh devalapars ko apne code ke dastaavejeekaran ke liye sangathit vyavastha pradaan karti hai. jahaan bhi jaava aur C mein saadhaaran kameints /* aur */, ke saath samaapt hoti hain, bahurekheeya kament tags, jaavaadok kameints ke shuruaat mein ek atirikt taarak chinh rahata hai, is tarah tags /** aur */ hote hain.

udaaharan

saadhaaran udaaharan jaavaadok taaips kameints ke saath jaava code kameints ke udaaharan is prakaar hain: 
 
/** 
* A program that does useful things. 
*/ 
public class Program { 

/** 
* A main method. 
* @param args The arguments 
*/ 
public static void main(String[] args) { 
//do stuff 
} 

}

sanskaran (edishn)

inhein bhi dekhein: Free Java implementations#Class library

saaaincha:Java platforms

san ne vibhinn aplikeshan enavaayaranameint ko lakshya karte hue jaava ke chaar sanskaranon ko paribhaashit aur samarthan kiya hai aur apne APIs ko khandit kiya hai jisse ki ve ek platform se sambandhit ho sake. platform nimnalikhit hain:

  • smaartakaardas ke liye jaava card.
  • jaava pletafaarm, laghu sanskaran (jaava ME) - seemit sansaadhanon ke saath enavaayaranameint ka lakshya karte hue.
  • jaava pletafaarm, maanak sanskaran (jaava SE) - kaarya kendra enavaayaranameint lakshya karte hue.
  • jaava pletafaarm, entarapraaij sanskaran (jaava EE) - bade vitrit udyam ya Internet enavaayaranameint ka lakshya karte hue.

jaava APIs mein klaason ko pruthak samooh mein sangathit kiya gaya hain jinhein package bulaaya jaate hain. har paikej mein sambandhit antarafalak, klaason, ekssepshan ke set sammilit hote hain. upalabdh paikejon ke vivran ke liye alag-alag pletafaarmon ka vivran sandarbhit kare.

jaava kamyuniti proses program ke arntagat anya ke sahayog ke saath san maaikrosistam dvaara APIs ka set niyantrit hota hai. is prakriya mein bhaag lene vaale company ya vyakti APIs ke vikaas aur design ko prabhaavit kar sakte hain. prakriya ek vivaad ka vishay raha hai. 

san ne parsanalajaava naam ka sanskaran bhi pradaan kiya, jo baad vaale maanakata-aadhaarit jaava ME vinyaas-profaail pairings dvaara pradaan kiya gaya.

aalochna

yeh bhi dekhiyen

  • prograaming bhaashaaon ki tulana
  • jaava aur C++ ki tulana
  • jaava aur C# ki tulana
  • jaavaavan
  • jaavaapediya
  • jaava aabhaasi masheenon ki soochi
  • jaava APIs ki soochi
  • JVM bhaashaaon ki soochi
  • jaava skreepting bhaashaaon ki soochi
  • C#
  • jaava varsan ka itihaas
  • ok

jaava open sors platform ke rup mein

opanasors sauftaveyaron ke vikaas ke liye jaava ka bahutaayat mein prayog hota hai. iske kuchh kaaran iska muft hona, kraus praletafaarm hona, yoonikod saksham hona aadi hain.

jaava indik yoonikod ka poorn samarthan karti hai, isaliye bhaarateeya bhaashaaon hetu software vikaas hetu atyant upayogi hai.

nots

  1. 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. [1]
  2. James Gosling cites UCSD Pascal as a key influence on the design of the Java virtual machine.
  3. 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 [2][3]
  4. "The Java Language Environment". May 1996. http://java.sun.com/docs/white/langenv/Intro.doc1.html#943.
  5. "The Java Language Specification, 2nd Edition". http://java.sun.com/docs/books/jls/second_edition/html/intro.doc.html#237601.
  6. http://www.computerworld.com.au/index.php/id;1422447371;pp;3;fp;4194304;fpid;1
  7. John baayas, "jaava technology: the arli iyars".san devalapar network, tithi naheen[ca. 1998]. 22 April 2005 ko liya gaya.
  8. http://blogs.sun.com/jonathan/entry/better_is_always_different.
  9. haainj kaabuj, "vans apon N ok". artima, April 29, 2007 ko liya gaya.
  10. jaava stadi group; vhaai jaava vaaj - not - staindaradaaijd tvaais; what is ECMA—aaend vhaai Microsoft keyars
  11. jaava samudaaya prakriya website
  12. open.itworld.com - JAVAONE: san - jaava ka thok mukt strot kar diya gaya hai
  13. JavaTM prograaming bhaasha ka 1.2 design gols
  14. "Sun's Evolving Role as Java Evangelist". O'reilly. http://onjava.com/pub/a/onjava/2002/04/17/evangelism.html. abhigman tithi: 2009-08-02.
  15. http://www.microsoft.com/mscorp/java/default.mspx
  16. jaava SE - laaiseinsadhaari
  17. James Niccolai (January 23, 2001). "Sun, Microsoft settle Java lawsuit". JavaWorld (IDG). http://www.javaworld.com/javaworld/jw-01-2001/jw-0124-iw-mssuncourt.html. abhigman tithi: 2008-07-09.
  18. Jelovic, Dejan. "Why Java Will Always Be Slower than C++". http://www.jelovic.com/articles/why_java_is_slow.htm. abhigman tithi: 2008-02-15.
  19. "Symantec's Just-In-Time Java Compiler To Be Integrated Into Sun JDK 1.1". http://www.symantec.com/about/news/release/article.jsp?prid=19970407_03.
  20. "Apple Licenses Symantec's Just In Time (JIT) Compiler To Accelerate Mac OS Runtime For Java". http://findarticles.com/p/articles/mi_hb6676/is_/ai_n26150624.
  21. "Java gets four times faster with new Symantec just-in-time compiler". http://www.infoworld.com/cgi-bin/displayStory.pl?980416.ehjdk.htm.
  22. NullPointerException
  23. jaava mein apavaad
  24. eplet taig ka upayog karte hue (The Java Tutorials > deployment > Applets)

sandarbh

baahari kadiyaaain

saaaincha:Java (Sun) saaaincha:Sun Microsystems