जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।

जावाएक उच्च- है स्तर, प्लेटफ़ॉर्म-स्वतंत्र, ऑब्जेक्ट-ओरिएंटेड, कार्यात्मकप्रोग्रामिंग भाषा और रनटाइम वातावरण।

जावा भाषा अपने सिंटैक्स को C और C ++ से बहुत अधिक प्राप्त करती है, लेकिन इसका ऑब्जेक्ट मॉडल उत्तरार्द्ध की तुलना में सरल है और इसमें निम्न-स्तरीय सुविधाएं कम हैं। जावा अनुप्रयोगों को आमतौर पर bytecodeपर संकलित किया जाता है (जिसे वर्ग फाइलें) जो एक JVM (जावा वर्चुअल मशीन) द्वारा निष्पादित किया जा सकता है, कंप्यूटर वास्तुकला से स्वतंत्र है। JVM अक्सर प्रदर्शन को अनुकूलित करने के लिए देशी मशीन कोड के आगे कोड संकलित करता है।

JVM ऑब्जेक्ट को अब उपयोग में नहीं होने पर मेमोरी से ऑब्जेक्ट को हटाने के लिए एक कचरा कलेक्टर (garकचरा-collectionदेखें) की मदद से मेमोरी का प्रबंधन करता है। जावा का अनुशासन टाइप करना] स्थिर, मजबूत, सुरक्षित, नाममात्र और प्रकट है। जावा प्रतिबिंब जैसी सुविधाओं का समर्थन करता है और जेएनआई (जावा एनएफआई इंटरफ़ेस) के माध्यम से सी और सी ++ के साथ इंटरफेस करता है।

जावा को संभव के रूप में कुछ कार्यान्वयन निर्भरता के लिए डिज़ाइन किया गया है, जिसका उद्देश्य एप्लिकेशन डेवलपर्स को एक बार लिखने, कहीं भी चलानेकी अनुमति देना है। या कभी-कभी एक बार लिखें, हर जगह चलाएं(कोड जो एक प्लेटफॉर्म पर निष्पादित होता है, उसे दूसरे पर चलाने के लिए recompiled करने की आवश्यकता नहीं है ) है। जावा मूल रूप से सन माइक्रोसिस्टम्स में जेम्स गोस्लिंगद्वारा विकसित किया गया था (जो 27 जनवरी, 2010 को ओरेकल कॉर्पोरेशन में पूरी तरह से विलय हो गया) और जारी किया गया था 1995 में सन माइक्रोसिस्टम्स के जावा प्लेटफॉर्म के मुख्य घटक के रूप में। जून 1991 में जेम्स गोसलिंग द्वारा "ओक" नामक एक परियोजना के रूप में जावा शुरू किया गया था।

जावा प्लेटफ़ॉर्मसन (अब ओरेकल) द्वारा दिया गया है जो कंप्यूटिंग प्रणालियों के लिए उपकरण है, जिन्होंने विकास और चलाने के लिए उपकरण स्थापित किए हैं जावा कार्यक्रम। प्लेटफ़ॉर्म में कई प्रकार के उपकरण हैं जो डेवलपर्स को जावा प्रोग्रामिंग भाषा के साथ कुशलता से काम करने में मदद कर सकते हैं।

आरंभ करने के लिए, आप एक जावा डेवलपमेंट किट (JDK) डाउनलोड करते हैं, जो आपको जावा एप्लिकेशन को विकसित करने और चलाने दोनों की सुविधा देता है।

पृष्ठभूमि

जावा का मुख्य संदर्भ कार्यान्वयन खुला स्रोत (OpenJDK) है और यह Oracle, Apple, SAP और IBM सहित प्रमुख कंपनियों द्वारा समर्थित है।

बहुत कम कंप्यूटर सीधे जावा प्रोग्राम चला सकते हैं। जावा सॉफ्टवेयर अक्सर सर्वर पर चलता है। क्लाइंट कंप्यूटर पर सीधे चलाने के लिए बनाए गए जावा एप्स को अपने इंस्टालर्स के साथ शिप करना चाहिए। (NB: java9 से पहले, आपने अंतिम उपयोगकर्ताओं से एक तथाकथित JRE स्थापित करने के लिए कहा था; हालाँकि, इस अवधारणा को हटा दिया गया है)।

जावा को bytecodeमें संकलित किया गया है, जिसे बाद में JVM द्वारा देशी मशीन कोड में संकलित किया जाता है। संकलन बस-इन-टाइम(JIT) किया जाता है। इसे शुरू में एक प्रदर्शन हिट के रूप में देखा गया था, लेकिन जेवीएम और जेआईटी संकलन में सुधार ने इसे कम चिंता का विषय बना दिया है। कुछ मामलों में, JVM पिछड़े-अनुकूल कारणों के लिए प्रोसेसर के पुराने संस्करण को लक्षित करने के लिए संकलित देशी कोड से भी तेज हो सकता है। जावा 9 के बाद से, इसे आगे-समय(AOT) संकलित किया जा सकता है।

संस्करण

उल्लेखनीय जावा संस्करण, कोड नाम ([] कोष्ठक में), और रिलीज की तारीख (कोष्ठक में) शामिल हैं:

Java SE 15        [JSR 390]    (September 15, 2020)
Java SE 14        [JSR 389]    (March 17, 2020)
Java SE 13        [JSR 388]    (September 17, 2019)
Java SE 12        [JSR 386]    (March 19, 2019)
Java SE 11        [JSR 384]    (September 25, 2018)
Java SE 10        [JSR 383]    (March 20, 2018)
Java SE 9         [JSR 376]    (September 21, 2017)
Java SE 8 (1.8)   [JSR 337]    (March 18, 2014)
Java SE 7 (1.7)   [Dolphin]    (July 28, 2011)
Java SE 6 (1.6)   [Mustang]    (December 11, 2006)
J2SE 5.0 (1.5)    [Tiger]      (September 29, 2004)
J2SE 1.4          [Merlin]     (February 13, 2002)
J2SE 1.3          [Kestrel]    (May 8, 2000)
J2SE 1.2          [Playground] (December 4, 1998)
JDK 1.1                        (February 19, 1997)
JDK 1.0                        (January 23, 1996)
JDK Beta                       (1995)

Java SE 10 के बाद से, हर छह महीने में नए संस्करण जारी किए जाएंगे।

नवीनतम स्थिर संस्करण:

Java Standard Edition 15 (15.0.2) - (January 19, 2021)
Java Standard Edition 14 (14.0.2) - (July 14, 2020)
Java Standard Edition 13 (13.0.2) - (January 14, 2020)
Java Standard Edition 12 (12.0.2) - (July 16, 2019)
Java Standard Edition 11 (11.0.10) - (January 19, 2021)
Java Standard Edition 10 (10.0.2) - (July 17, 2018)
Java Standard Edition 9 (9.0.4) - (January 16, 2018)
Java Standard Edition 8 Update 281 (1.8.0_281) - (January 19, 2021)
Java Standard Edition 7 Update 80 (1.7.0_80) - (April 14, 2015)

अधिक कोड नामों और रिलीज़ की तारीखों के लिए, Java SE कोड नामपर जाएं। JDK के प्रत्येक संस्करण के लिए रिलीज़ नोट देखने के लिए, Java संस्करण इतिहास पर विकिपीडिया लेखपर जाएं।

जावा JDK प्राप्त करने के लिए ताकि आप अपनी मशीन पर जावा कोड विकसित कर सकें (या चला सकें), आपको जावा इंस्टॉलर पैकेज सप्लायर की आवश्यकता होती है। जावा खुला स्रोत है, लेकिन एक आपूर्तिकर्ता एक द्विआधारी में जावा स्रोत कोड के निर्माण का ख्याल रखेगा, इसे एक इंस्टॉलर में लपेटकर, और इस संस्करण को आपकी मशीन पर बनाए रखेगा (जैसे सुरक्षा अपडेट के साथ)।

जावा एलटीएस (दीर्घकालिक-समर्थन) और गैर-एलटीएस संस्करणों में आता है। प्रत्येक आपूर्तिकर्ता चुनता है कि एलटीएस संस्करणों से कैसे निपटें। कुछ (Oracle OpenJDK) में सभी रिलीज़, LTS या नहीं के लिए एक ही शॉर्ट सपोर्ट विंडो है। कुछ (Amazon Coretto) गैर-एलटीएस संस्करण जारी करने की जहमत नहीं उठाते हैं। अधिकांश आपूर्तिकर्ता सभी संस्करणों को रिलीज़ करते हैं जो अब तक एलटीएस संस्करणों का समर्थन करेंगे।

एलटीएस संस्करण हैं: जावा 8, 11 और 17।

प्रमुख आपूर्तिकर्ता हैं:

  • AdoptOpenJDK, जिसे एडॉप्टियम - मुक्त, एलटीएस संस्करण और गैर-एलटीएस संस्करण के रूप में भी जाना जाता है, एलटीएस संस्करण लंबे समय से समर्थित हैं। सिफारिश की।
  • Oracle OpenJDK 15- ध्यान दें कि ये केवल 6 महीने के लिए समर्थित हैं, यहां तक ​​कि तथाकथित LTS (दीर्घकालिक समर्थन) रिलीज भी। आपको जावा अपडेट के रूप में अपडेट करना होगा।
  • Oracle JavaSE- उन लोगों के लिए लाइसेंस प्राप्त है जो व्यावसायिक समर्थन चाहते हैं। एलटीएस और गैर-एलटीएस संस्करण, एलटीएस संस्करण लंबे समय से समर्थित हैं। एक नि: शुल्क लेकिन लाइसेंस-वार बहुत प्रतिबंधित परीक्षण संस्करण उपलब्ध है।
  • Amazon Coretto- केवल Amazon द्वारा अनुरक्षित, AWS, LTS संस्करणों के लिए अनुकूलित।
  • कई और व्यावसायिक पेशकश।

Java SE 15 -  March 2020 for OpenJDK
Java SE 14 -  September 2020 for OpenJDK
Java SE 13 -  March 2020 for OpenJDK
Java SE 12 -  September 2019 for OpenJDK
Java SE 11 -  At least September 2022 for AdoptOpenJDK
Java SE 10 -  September 2018
Java SE 9  -  March 2018
Java SE 8  -  January 2019 (commercial user) | December 2020 (personal user)
Java SE 7  -  Apr 2015
Java SE 6  -  Feb 2013
J2SE 5.0   -  Oct 2009
J2SE 1.4   -  Oct 2008

प्रारंभिक सहायता

जावा में नया या अपने पहले जावा प्रोग्राम को चलाने के लिए सहायता की आवश्यकता है? Oracle जावा ट्यूटोरियल अनुभाग प्रारंभ होने परदेखें।

प्रश्न पूछने से पहले, कृपया यह देखने के लिए खोज करें कि क्या यह पहले पूछा गया है (हमारे पास कई डुप्लिकेट हैं, कुछ अक्सर पूछे जाने वाले प्रश्नों के तहत नीचे सूचीबद्ध हैं), और पढ़ें सही प्रश्न लिखना"।

नामकरण की परंपरा

जावा प्रोग्राम पठनीयता बढ़ाने और घटाने के लिए निम्न नामकरण परंपराओं] का पालन करना चाहिए आकस्मिक त्रुटियों की संभावना। इन नामकरण सम्मेलनों का पालन करके, आप दूसरों के लिए अपने कोड को समझना और आपकी सहायता करना आसान बना देंगे।

  • टाइप नाम (कक्षाएं, इंटरफेस, एनम आदि) एक कैपिटल लेटर से शुरू होने चाहिए और प्रत्येक बाद के शब्द के पहले अक्षर को कैपिटलाइज़ करना चाहिए। उदाहरणों में शामिल हैं: String, ThreadLocal, और NullPointerException। इसे कभी-कभी PascalCaseके रूप में जाना जाता है।
  • विधि और क्षेत्र के नाम ऊंट होना चाहिए; यही है, उन्हें एक लोअरकेस अक्षर से शुरू करना चाहिए और प्रत्येक बाद के शब्द के पहले अक्षर को कैपिटलाइज़ करना चाहिए। उदाहरण: indexOf, printStackTrace, interrupt
  • लगातार अभिव्यक्ति नाम (static final अपरिवर्तनीय वस्तुएं) ALL_CAPS_SNAKE_CASE में लिखे जाने चाहिए, प्रत्येक शब्द को अलग करने वाले अंडरस्कोर। उदाहरण: YELLOW, DO_NOTHING_ON_CLOSE। यह Enum वर्ग के मूल्यों पर भी लागू होता है। हालाँकि, static final गैर-अपरिवर्तनीय वस्तुओं का संदर्भ ऊंट होना चाहिए।

हैलो वर्ल्ड - आपका पहला कार्यक्रम

एक विशिष्ट हैलो वर्ल्ड प्रोग्राम का कोड:

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

नमस्ते विश्व कार्यक्रम का संकलन और आह्वान:

javac -d . HelloWorld.java
java -cp . HelloWorld

जावा स्रोत कोड एक मध्यवर्ती रूप में संकलित किया गया है (जावा वर्चुअल मशीनके लिए बायटेकोड निर्देश) जिसे {{के साथ निष्पादित किया जा सकता है X0}} कमांड बाद में।

अधिक जानकारी:

जावा के लिए उपयोगी आईडीई

शुरुआती संसाधनों

ऑनलाइन संकलक

दिन-प्रतिदिन अद्यतन संसाधन

उन्नत संसाधन

जावा फ्रेमवर्क, लाइब्रेरी और सॉफ्टवेयर

जावा प्रोग्रामिंग किताबें और संसाधन

अधिकतर पूछे जाने वाले सवाल

लोग अक्सर निम्नलिखित जावा विषयों के बारे में पूछते हैं:

सामान्य:

क्लासपाथ:

String, StringBuilder और toString:

equals और hashCode:

जावा प्लेटफ़ॉर्म SE API:

पीढ़ी:

वर्ग और वस्तुएँ:

अंकगणित और रूपांतरण:

डिबगिंग:

Thread और मल्टीथ्रेडिंग:

ऑपरेटिंग सिस्टम के साथ बातचीत:

(संपादकों, कृपया केवल उन सवालों को सूचीबद्ध करें जो वास्तव में अक्सर पूछे जाते हैं।)

चैट रूम