जावा मूल बातें. "जावा फ्रॉम स्क्रैच" पाठ्यक्रम में क्या शामिल है?

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

जावा न केवल भाषा को दिया गया नाम है, बल्कि इस भाषा पर आधारित एंटरप्राइज़-स्तरीय एप्लिकेशन बनाने के प्लेटफ़ॉर्म को भी दिया गया है।

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

भाषा की मुख्य विशेषताएं

नवीनतम रिलीज़ संस्करण 1.6 है, जिसने सुरक्षा प्रणाली में सुधार किया है, समर्थन में सुधार किया है भाषा का अंकनमोज़िला राइनो (अंग्रेजी) ने डेस्कटॉप एकीकरण में सुधार किया, ग्राफिकल इंटरफेस बनाने में कुछ नई सुविधाएँ जोड़ीं।

जावा और माइक्रोसॉफ्ट

निम्नलिखित कंपनियाँ मुख्य रूप से .NET के बजाय जावा (J2EE) तकनीकों पर ध्यान केंद्रित करती हैं, हालाँकि वे बाद वाली तकनीकों से भी निपटती हैं: IBM, Oracle। विशेष रूप से, Oracle DBMS में इसके घटक के रूप में JVM शामिल है, जो उदाहरण के लिए, संग्रहीत प्रक्रियाओं सहित, जावा भाषा में DBMS को सीधे प्रोग्राम करने की क्षमता प्रदान करता है।

प्रमुख विशेषताऐं

उदाहरण कार्यक्रम

प्रोग्राम जो "हैलो, वर्ल्ड!" प्रिंट करता है:

सार्वजनिक वर्ग हैलोवर्ल्ड (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) (सिस्टम .आउट .प्रिंटएलएन ("हैलो, वर्ल्ड!" ) ; ) )

टेम्प्लेट का उपयोग करने का उदाहरण:

आयात करें java.util.*; सार्वजनिक वर्ग नमूना (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) ( // टेम्पलेट का उपयोग करके एक ऑब्जेक्ट बनाएं।सूची स्ट्रिंग्स = नई लिंक्डलिस्ट () ; strings.add('हैलो'); strings.add('world'); strings.add("!"); के लिए (स्ट्रिंग एस: स्ट्रिंग्स) ( सिस्टम .आउट .प्रिंट (एस); सिस्टम .आउट .प्रिंट (" " ) ; ) ) )

प्रमुख विचार

आदिम प्रकार

जावा में केवल 8 स्केलर प्रकार हैं: बूलियन, बाइट, चार, शॉर्ट, इंट, लॉन्ग, फ्लोट, डबल।

आदिम प्रकार के आवरण वर्ग

आदिम प्रकारों की लंबाई और मूल्य सीमाएँ मानक द्वारा परिभाषित की जाती हैं, कार्यान्वयन नहीं और तालिका में दिखाए गए हैं। स्थानीयकरण में आसानी के लिए चार प्रकार को दो-बाइट बनाया गया था (जावा के वैचारिक सिद्धांतों में से एक): जब मानक विकसित किया जा रहा था, यूनिकोड-16 पहले से मौजूद था, लेकिन यूनिकोड-32 नहीं। चूँकि परिणामस्वरूप कोई एकल-बाइट प्रकार नहीं बचा था, एक नया प्रकार बाइट जोड़ा गया था। फ़्लोट और डबल प्रकार के विशेष मान हो सकते हैं, और "संख्या नहीं" (

प्रकार लंबाई (बाइट्स में) मानों का दायरा या समुच्चय
बूलियन अपरिभाषित सही गलत
बाइट 1 −128..127
चार 2 0..2 16 -1, या 0..65535
छोटा 2 −2 15 ..2 15 -1, या −32768..32767
int यहाँ 4 −2 31 ..2 31 -1, या −2147483648..2147483647
लंबा 8 −2 63 ..2 63 -1, या लगभग −9.2 10 18 ..9.2 10 18
तैरना 4 -(2-2 -23) 2 127 ..(2-2 -23) 2 127, या लगभग −3.4 10 38 ..3.4 10 38, साथ ही, , NaN
दोहरा 8 -(2-2 -52)·2 1023 ..(2-2 -52)·2 1023 , या लगभग −1.8·10 308 ..1.8·10 308 , साथ ही , , NaN

भाषा को प्लेटफ़ॉर्म-स्वतंत्र बनाने के लिए ऐसा सख्त मानकीकरण आवश्यक था, जो जावा के लिए वैचारिक आवश्यकताओं में से एक है और इसकी सफलता के कारणों में से एक है। हालाँकि, प्लेटफ़ॉर्म स्वतंत्रता के साथ एक छोटी सी समस्या अभी भी बनी हुई है। कुछ प्रोसेसर मध्यवर्ती रूप से परिणामों को संग्रहीत करने या अन्यथा गणना की सटीकता में सुधार करने के लिए 10-बाइट रजिस्टर का उपयोग करते हैं। जावा को विभिन्न प्रणालियों के बीच यथासंभव अनुकूल बनाने के लिए, पहले के संस्करणगणना की सटीकता बढ़ाने का कोई भी साधन निषिद्ध था। हालाँकि, इससे प्रदर्शन में कमी आई। यह पता चला कि कुछ लोगों को प्लेटफ़ॉर्म की स्वतंत्रता के लिए सटीकता में गिरावट की आवश्यकता होती है, खासकर यदि उन्हें कार्यक्रमों को धीमा करके इसके लिए भुगतान करना पड़ता है। कई विरोधों के बाद यह प्रतिबंध हटा लिया गया, लेकिन जोड़ा गया कीवर्डस्ट्रिक्टएफपी, जो बढ़ती सटीकता को अक्षम करता है।

गणितीय संक्रियाओं के लिए परिवर्तन

जावा में निम्नलिखित नियम लागू होते हैं:

  1. यदि एक ऑपरेंड डबल प्रकार का है, तो दूसरा भी डबल प्रकार में परिवर्तित हो जाता है।
  2. अन्यथा, यदि एक ऑपरेंड फ्लोट प्रकार का है, तो दूसरा भी फ्लोट प्रकार में परिवर्तित हो जाता है।
  3. अन्यथा, यदि एक ऑपरेंड टाइप लॉन्ग का है, तो दूसरा भी टाइप लॉन्ग में परिवर्तित हो जाता है।
  4. अन्यथा, दोनों ऑपरेंड को टाइप int में बदल दिया जाता है।

अंतिम नियम जावा को पुराने कार्यान्वयन और C++ से अलग करता है और कोड को अधिक सुरक्षित बनाता है। इसलिए, उदाहरण के लिए, जावा भाषा में, कोड निष्पादित करने के बाद

लघु x = 50 , y = 1000 ; int z = x*y;

z वेरिएबल को -15536 ​​के बजाय 50000 मान दिया गया है, जैसा कि अधिकांश निराशाजनक रूप से पुराने C और C++ कार्यान्वयन में होता है। MS VC++ द्वारा संकलित प्रोग्राम में, संस्करण 7 से शुरू होकर, साथ ही कई अन्य आधुनिक कंपाइलर्स (gcc, Intel C++, Borland C++, Comeau, आदि) में, मान भी 50000 होगा।

ऑब्जेक्ट चर, ऑब्जेक्ट, संदर्भ और पॉइंटर्स

जावा में केवल गतिशील रूप से निर्मित ऑब्जेक्ट हैं। इसके अलावा, जावा में ऑब्जेक्ट प्रकार वेरिएबल और ऑब्जेक्ट पूरी तरह से अलग संस्थाएं हैं। ऑब्जेक्ट प्रकार चर संदर्भ हैं, यानी, गतिशील रूप से बनाई गई वस्तुओं के लिए अंतर्निहित संकेतक। चरों का वर्णन करने के लिए वाक्यविन्यास द्वारा इस पर जोर दिया गया है। तो, जावा में आप नहीं लिख सकते:

डबल ए[10] [20] ; फू बी(30) ;

डबल ए = नया डबल [10] [20]; फू बी = नया फू(30 );

असाइन करते समय, सबरूटीन्स में पास करते समय, और तुलना करते समय, ऑब्जेक्ट वेरिएबल पॉइंटर्स की तरह व्यवहार करते हैं, यानी, ऑब्जेक्ट पते असाइन किए जाते हैं, कॉपी किए जाते हैं और तुलना की जाती है। और किसी ऑब्जेक्ट वेरिएबल का उपयोग करके किसी ऑब्जेक्ट के डेटा फ़ील्ड या विधियों तक पहुंचने पर, किसी विशेष डीरेफ़रेंसिंग ऑपरेशन की आवश्यकता नहीं होती है - एक्सेस ऐसे किया जाता है जैसे कि ऑब्जेक्ट वेरिएबल ही ऑब्जेक्ट था।

ऑब्जेक्ट चर सरल संख्यात्मक प्रकारों को छोड़कर किसी भी प्रकार के होते हैं। जावा में कोई स्पष्ट संकेतक नहीं हैं। C, C++ और अन्य प्रोग्रामिंग भाषाओं में पॉइंटर्स के विपरीत, जावा में संदर्भ विशेष रूप से उनके उपयोग पर सख्त प्रतिबंधों के कारण अत्यधिक सुरक्षित हैं:

  • आप int या किसी अन्य आदिम प्रकार के ऑब्जेक्ट को पॉइंटर या संदर्भ में परिवर्तित नहीं कर सकते हैं और इसके विपरीत।
  • संदर्भों पर ++, −−, +, − या कोई अन्य अंकगणितीय संक्रियाएँ करना निषिद्ध है।
  • संदर्भों के बीच प्रकार रूपांतरण को सख्ती से विनियमित किया जाता है। सरणी संदर्भों के अपवाद के साथ, केवल विरासत में मिले प्रकार और उसके वंशज के बीच संदर्भों को परिवर्तित करने की अनुमति है, और विरासत प्रकार से विरासत प्रकार में रूपांतरण को स्पष्ट रूप से निर्दिष्ट किया जाना चाहिए और समझने के लिए रनटाइम पर जांचा जाना चाहिए। सरणी संदर्भों के रूपांतरण की अनुमति केवल तभी दी जाती है जब उनके अंतर्निहित प्रकारों के रूपांतरण की अनुमति होती है और कोई आयाम टकराव नहीं होता है।
  • जावा में, किसी पते (&) को लेने या किसी पते (*) पर किसी ऑब्जेक्ट को लेने के लिए कोई ऑपरेटर नहीं है। जावा में तारांकन का अर्थ गुणन है, इससे अधिक कुछ नहीं। एम्परसेंड (&) का अर्थ केवल "बिटवाइज़ और" है (डबल एम्परसेंड का अर्थ "तार्किक और") है।

जावा में ऐसे विशेष रूप से लगाए गए प्रतिबंधों के लिए धन्यवाद, भौतिक पते के स्तर पर मेमोरी का प्रत्यक्ष हेरफेर असंभव है (हालांकि ऐसे लिंक हैं जो किसी भी चीज़ की ओर इशारा नहीं करते हैं: ऐसे लिंक का मूल्य शून्य द्वारा दर्शाया गया है)।

डुप्लिकेट लिंक और क्लोनिंग

क्योंकि ऑब्जेक्ट वेरिएबल संदर्भ वेरिएबल हैं, असाइनमेंट ऑब्जेक्ट की प्रतिलिपि नहीं बनाता है। तो, अगर आप लिखते हैं

फू फू, बार; ... बार = फू;

फिर foo वेरिएबल से पता बार वेरिएबल में कॉपी किया जाएगा। अर्थात्, foo और bar एक ही मेमोरी क्षेत्र, यानी एक ही ऑब्जेक्ट की ओर इंगित करेंगे; foo द्वारा संदर्भित किसी ऑब्जेक्ट के फ़ील्ड को बदलने का प्रयास करने से bar द्वारा संदर्भित ऑब्जेक्ट बदल जाएगा, और इसके विपरीत। यदि आपको केवल एक और प्राप्त करने की आवश्यकता है कॉपीस्रोत ऑब्जेक्ट, या तो विधि (सदस्य फ़ंक्शन, C++ शब्दावली में) क्लोन() का उपयोग करें, जो ऑब्जेक्ट की एक प्रति बनाता है, या एक कॉपी कंस्ट्रक्टर बनाता है।

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

कचरा संग्रहण

जावा भाषा में, किसी ऑब्जेक्ट को मेमोरी से स्पष्ट रूप से हटाना संभव नहीं है - इसके बजाय, कचरा संग्रहण लागू किया जाता है। एक पारंपरिक तरकीब जो कचरा संग्रहकर्ता को मेमोरी खाली करने के लिए "संकेत" देती है, वह है एक वेरिएबल को खाली मान null निर्दिष्ट करना। हालाँकि, इसका मतलब यह नहीं है कि शून्य द्वारा प्रतिस्थापित वस्तु को तुरंत हटा दिया जाएगा। यह तकनीकयह केवल ऑब्जेक्ट के संदर्भ को हटा देता है, यानी, यह मेमोरी में ऑब्जेक्ट से पॉइंटर को अनबाइंड कर देता है। यह ध्यान में रखा जाना चाहिए कि किसी ऑब्जेक्ट को कचरा संग्रहकर्ता द्वारा तब तक नहीं हटाया जाएगा जब तक कि इसे उपयोग किए गए चर या ऑब्जेक्ट से कम से कम एक संदर्भ द्वारा इंगित किया जाता है। कचरा संग्रहण को बाध्य करने के तरीके भी हैं, लेकिन इन्हें रनटाइम द्वारा कॉल किए जाने की गारंटी नहीं है और सामान्य उपयोग के लिए अनुशंसित नहीं हैं।

कक्षाएं और कार्य

जावा एक प्रक्रियात्मक भाषा नहीं है: कोई भी फ़ंक्शन केवल एक वर्ग के भीतर ही मौजूद हो सकता है। इस पर जावा भाषा की शब्दावली द्वारा जोर दिया गया है, जहां "फ़ंक्शन" या "सदस्य फ़ंक्शन" की कोई अवधारणा नहीं है। सदस्य समारोह), लेकिन केवल तरीका. मानक कार्य भी विधियों में बदल गए हैं। उदाहरण के लिए, जावा में कोई पाप() फ़ंक्शन नहीं है, लेकिन गणित वर्ग की एक विधि Math.sin() है (जिसमें पाप() के अलावा, cos(), exp(), sqrt( शामिल हैं) ), एब्स() और कई अन्य)।

स्थैतिक विधियाँ और क्षेत्र

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

डबल एक्स = गणित.पाप(1);

गणित एम = नया गणित(); डबल एक्स = एम.सिन(1);

स्थैतिक विधियों पर सीमा यह है कि वे केवल इस ऑब्जेक्ट में स्थैतिक फ़ील्ड और विधियों तक पहुंच सकते हैं।

स्थैतिक फ़ील्ड का वही अर्थ होता है जो C++ में होता है: प्रत्येक केवल एक ही प्रतिलिपि में मौजूद होता है।

अन्तिम स्थिति

किसी वेरिएबल, विधि या वर्ग की घोषणा करते समय अंतिम कीवर्ड का अलग-अलग अर्थ होता है। अंतिम चर (जिसे स्थिरांक नाम दिया गया है) को विवरण पर प्रारंभ किया गया है और इसे आगे नहीं बदला जा सकता है। अंतिम विधि को वंशानुक्रम द्वारा ओवरराइड नहीं किया जा सकता है। अंतिम वर्ग में कोई उत्तराधिकारी नहीं हो सकता।

अमूर्तता

जावा में, जिन विधियों को स्पष्ट रूप से अंतिम या निजी घोषित नहीं किया गया है, वे C++ शब्दावली में आभासी हैं: बेस क्लास और उपवर्ग में अलग-अलग परिभाषित विधि को कॉल करने में हमेशा रनटाइम जांच शामिल होती है।

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

इस लेख में मैं डेल्फ़ी में प्रोग्रामिंग की मूल बातें यथासंभव सरल और स्पष्ट रूप से प्रस्तुत करने का प्रयास करूँगा।

नौसिखियों के लिए जावा। पाठ 1. हेलो वर्ल्ड!

सबसे पहले, मैं आपको बताऊंगा कि जावा क्या कर सकता है। सबसे पहले, इस भाषा में आप एप्लेट्स लिख सकते हैं - प्रोग्राम जो वेबसाइट के वेब पेज में एम्बेडेड होते हैं। उदाहरण के लिए, यह एक गेम, एक बिजनेस ग्राफिक्स सिस्टम और बहुत कुछ हो सकता है। दूसरे, आप जावा में पूर्ण एप्लिकेशन लिख सकते हैं जो आवश्यक रूप से वेब से संबंधित नहीं हैं। या आप सर्वलेट्स का उपयोग कर सकते हैं - प्रोग्राम, जो एप्लेट्स के विपरीत, क्लाइंट साइड पर नहीं, बल्कि सर्वर साइड पर निष्पादित होते हैं।

आइए बुनियादी बातों से शुरू करें। आइए परंपरा को श्रद्धांजलि दें और लिखें सबसे सरल कार्यक्रम, जो अभिवादन प्रदर्शित करता हैहैलो वर्ल्ड। यदि आपके पास जावा नहीं है, तो इसे आधिकारिक वेबसाइट http://www.java.com/ru से डाउनलोड किया जा सकता है। फिर इसे इंस्टॉल करें.

यदि जावा आपने इंस्टॉल कर लिया है, फिर किसी एडिटर में निम्न टेक्स्ट टाइप करें:

{

सार्वजनिक स्थैतिक शून्य मुख्य ( स्ट्रिंग तर्क ) {

प्रणाली . बाहर . छपाई ( "हैलो वर्ल्ड!" );

}

}

और इसे नाम के अंतर्गत सहेजना सुनिश्चित करेंहैलो वर्ल्ड। जावा- निष्पादन योग्य वर्ग का नाम फ़ाइल नाम से मेल खाना चाहिए। संकलन करने के लिए प्रोग्राम का उपयोग करें javac.exe मानक पैकेज में शामिल हैजावा। एक संकलन बैच फ़ाइल इस तरह दिख सकती हैयह जावा फ़ाइल:

"c:\प्रोग्राम फ़ाइलें\Java\jdk1.7.0\bin\javac" HellowWorld.java

विराम

यदि संकलन के दौरान कोई त्रुटि नहीं हुई:


तब, सबसे अधिक संभावना है, संकलन उसी निर्देशिका में आपका सफल रहा जहां हेलोवर्ल्ड स्थित था।जावा हेलोवर्ल्ड भी सामने आया है।कक्षा:

अब एक और बैच फ़ाइल चलाएँ जो हमारी संकलित फ़ाइल के साथ जावा दुभाषिया को कॉल करेगी:

"c:\प्रोग्राम फ़ाइलें\Java\jdk1.7.0\bin\java" हेलोवर्ल्ड

विराम

यदि सब कुछ सही ढंग से किया जाता है, तो आपको यह परिणाम मिलना चाहिए:


यदि आपको यह प्राप्त हुआ, तो मैं आपको बधाई दे सकता हूं - आपने अपना पहला प्रोग्राम जावा में लिखा है। भविष्य में हम सीखेंगे कि जावा एप्लेट कैसे लिखें, और भी बहुत कुछ। और अब कार्यक्रम के बारे में कुछ शब्द। जैसा कि आपने देखा, यह सार्वजनिक शब्द से शुरू होता है। यह एक संशोधक है जिसका अर्थ है कि हम सार्वजनिक रूप से उपलब्ध किसी चीज़ की घोषणा कर रहे हैं: एक वर्ग, एक वर्ग विधि, या एक चर। उदाहरण के लिए, अन्य संशोधक भी हैं: निजी, संरक्षित, मैत्रीपूर्ण, अंतिम, अमूर्त, स्थिर।उनमें से कुछ को एक दूसरे के साथ जोड़ा जा सकता है। उदाहरण के लिए, प्राइवेट का मतलब है कि जिस वेरिएबल को हम घोषित करना चाहते हैं वह अन्य वर्गों के लिए प्राइवेट है। लेकिन हम संशोधक के बारे में बाद में बात करेंगे। अब आइए अगले कीवर्ड, क्लास पर नजर डालें। इसका मतलब है कि हम एक वर्ग घोषित कर रहे हैं। जावा में सब कुछ कक्षाओं पर आधारित है। कक्षाओं में से एक आवश्यक रूप से आधार है। और बेस क्लास सार्वजनिक होना चाहिए। इस उदाहरण में, यह HelloWord वर्ग है। फिलहाल वह ही हमारे पास है।

अब मैं समझाने की कोशिश करूंगा सरल शब्दों में, यह क्या है कक्षाऔर क्या है एक वस्तु.

आइए स्कूल जूलॉजी पाठ्यक्रम को याद करें। जीव जगत का वर्गीकरण कैसे किया जाता है? सबसे पहले, "राज्य" की अवधारणा पेश की गई है।

1. एककोशिकीय जीवों का साम्राज्य,

2. वनस्पति साम्राज्य

3. जानवरों का साम्राज्य।

चलो जानवरों को ले लो. इन्हें प्रकार के आधार पर विभाजित किया जा सकता है। उदाहरण के लिए:

1. सहसंयोजक प्रकार.

2. चपटे कृमि का प्रकार.

3. शंख का प्रकार.

4. फ़ाइलम कॉर्डेटा.

उत्तरार्द्ध को स्तनधारियों, सरीसृपों, उभयचरों, पक्षियों आदि में विभाजित किया गया है। आप वर्गीकरण में और भी आगे जा सकते हैं, लेकिन हम अब ऐसा नहीं करेंगे, बल्कि सीधे प्रोग्रामिंग की ओर बढ़ेंगे।

जावा भाषा में, आप जीवित दुनिया के वर्गीकरण के समान, वस्तुओं (प्रोग्राम और डेटा के टुकड़े) को वर्गीकृत कर सकते हैं। इसके लिए इसमें कक्षाएं हैं।

बंद करो बंद करो! - आप कहते हैं, - इन वस्तुओं का वर्गीकरण क्यों करें?

कल्पना कीजिए कि आप, किसी देवता (निर्माता, भगवान) की तरह, पृथ्वी पर जीवन का निर्माण कर रहे हैं। सबसे पहले आपने सरलतम कार्बनिक यौगिक विकसित किये। तो प्रयोग के लिए क्या होगा. फिर उन्होंने उन्हें जटिल अणुओं में संयोजित किया, जिसमें से, ईंटों की तरह, उन्होंने सबसे सरल सूक्ष्मजीवों को इकट्ठा किया। लेकिन आपका अंतिम लक्ष्य बुद्धिमान जीवन का निर्माण है। इसलिए, आप यहीं नहीं रुके, बल्कि बहुकोशिकीय जीवों का निर्माण किया। फिर उन्होंने उन्हें सुधारना और विकसित करना शुरू किया। कुछ प्रजातियाँ व्यवहार्य हो गईं, कुछ विलुप्त हो गईं (डायनासोर)। और अंततः लक्ष्य प्राप्त हुआ - होमो सेपियन्स - होमो सेपियन्स - प्रकट हुआ।

आइए अब धरती पर आएं और प्रोग्रामिंग को एक रचना के रूप में कल्पना करें, जहां आप अपने प्रोग्राम को एक निश्चित स्थिति में विकसित करने के लिए मजबूर करते हैं जब इसका उपयोग किया जा सकता है, और फिर आगे, धीरे-धीरे कार्यक्षमता में वृद्धि और सुधार होता है।

अब आइए कल्पना करें कि एक परमाणु है सबसे सरल आदेशप्रोग्राम या सूचना की एक इकाई (जो, आप देखते हैं, एक दूसरे से अलग नहीं होते हैं, क्योंकि प्रोग्राम किसी चीज़ के साथ काम करता है - यह सही है, जानकारी के साथ)।

तब अणु एक उपनियम है। या कोई वस्तु.

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

इसके अलावा, पक्षी हैं अलग - अलग प्रकार. लेकिन उन सभी में कुछ सामान्य विशेषताएं हैं, जो "पक्षियों" की अवधारणा से विरासत में मिली हैं। इसी तरह जावा में, एक क्लास से आप एक और क्लास बना सकते हैं जो उसके गुणों और तरीकों (विशेषताओं) को प्राप्त करती है। यह कहा जाता है विरासत।

विभिन्न पक्षियों के पंखों का रंग, चोंच और पंखों का आकार अलग-अलग होता है। इसी तरह कक्षाओं के लिए, एक नया वर्ग बनाते समय, विरासत में मिली विशेषताओं को बदला जा सकता है। यह कहा जाता है बहुरूपता.

इसलिए, हमने जावा की बुनियादी अवधारणाओं का पता लगाया। अब आइये कार्यक्रम के बारे में जानें।

इस प्रकार हम एक वर्ग घोषित करते हैं:

पब्लिक क्लास हैलोवर्ल्ड {

इस मामले में, हमारे प्रोग्राम में केवल एक क्लास है, और यह बेस क्लास है, यानी प्रोग्राम लॉन्च करने के लिए जिम्मेदार क्लास। इसीलिए इसका नाम फ़ाइल के नाम से मेल खाना चाहिए, ताकि दुभाषिया "जान सके" कि प्रोग्राम को निष्पादित करना कहाँ से शुरू करना है।

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

अब स्थिर क्या है. यह एक संशोधक है जो इंगित करता है कि विधि स्थिर है। यानी यह तब भी काम करता है जब क्लास (ऑब्जेक्ट) का कोई इंस्टेंस नहीं बनाया गया हो। सामान्य तौर पर, स्थैतिक संशोधक वाले फ़ील्ड और विधियाँ कक्षा की सभी वस्तुओं के लिए सामान्य होती हैं। इस बारे में भी हम बाद में बात करेंगे.

प्रत्येक विधि का रिटर्न मान हो भी सकता है और नहीं भी। यदि ऐसा होता है, तो यह एक फ़ंक्शन है। रिटर्न वैल्यू प्रकार भी विधि घोषणा में शामिल है। यदि नहीं, तो इसे शून्य पर सेट करें (जैसा कि हमारे उदाहरण में है)।

किसी ऑब्जेक्ट के फ़ील्ड और तरीकों तक पहुंच एक बिंदु के माध्यम से होती है। इसमें अंतर्निहित ऑब्जेक्ट भी हैं, उदाहरण के लिए, सिस्टम, जिसका उपयोग हम अपने उदाहरण में करते हैं:

प्रणाली . बाहर . छपाई ( "हैलो वर्ल्ड!" );

इस मामले में, हम आउट फ़ील्ड तक पहुंचते हैं, जो डेटा आउटपुट करने के लिए एक ऑब्जेक्ट भी है, और इसकी प्रिंट विधि को कॉल करते हैं, जो स्क्रीन पर टेक्स्ट प्रदर्शित करता है (जैसे अच्छे पुराने बेसिक में प्रिंट कमांड)।

(सी) शूरविन अलेक्जेंडर

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

जावा एक क्रांतिकारी प्रोग्रामिंग भाषा है

जावा को इतना आकर्षक बनाने वाले गुण अन्य प्रोग्रामिंग भाषाओं में भी पाए जाते हैं। कई भाषाएँ कुछ विशेष प्रकार के अनुप्रयोगों के लिए आदर्श होती हैं। जावा से भी ज्यादा. लेकिन जावा ने इन सभी गुणों को एक भाषा में एक साथ ला दिया। यह सॉफ्टवेयर विकास उद्योग के लिए एक क्रांतिकारी छलांग है।

आइए इस भाषा की कुछ विशेषताओं पर करीब से नज़र डालें:

  • वस्तु के उन्मुख
  • सुवाह्यता
  • मल्टीथ्रेडिंग समर्थन
  • स्वचालित कचरा संग्रहण
  • विश्वसनीयता
  • नेटवर्क और इंटरनेट के साथ काम करने के लिए समर्थन
  • सरलता और उपयोग में आसानी

ऑब्जेक्ट ओरिएंटेशन

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

कुछ प्रक्रियात्मक भाषाओं ने मेमोरी में डेटा का पता प्राप्त करना भी संभव बना दिया। इस पते को जानने के बाद, कुछ समय बाद डेटा को पढ़ना या जोड़ना, या गलती से पुरानी जानकारी के ऊपर नई जानकारी लिखना संभव था।

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

आज कई लोकप्रिय वस्तु-उन्मुख भाषाएँ हैं। उनमें से कुछ मूल रूप से ऑब्जेक्ट-ओरिएंटेड होने के लिए डिज़ाइन किए गए थे, जैसे जावा और स्मॉलटॉक। अन्य, जैसे C++, आंशिक रूप से वस्तु-उन्मुख और आंशिक रूप से प्रक्रियात्मक हैं। C++ में, आप अभी भी डेटा संरचनाओं और ऑब्जेक्ट की सामग्री को अधिलेखित कर सकते हैं, जिससे एप्लिकेशन क्रैश हो सकता है। सौभाग्य से, जावा मेमोरी सामग्री तक सीधी पहुंच को रोकता है, जिससे एक अधिक विश्वसनीय प्रणाली बनती है।

पोर्टेबिलिटी

अधिकांश प्रोग्रामिंग भाषाएँ एक विशिष्ट ऑपरेटिंग सिस्टम और प्रोसेसर के लिए डिज़ाइन की गई हैं। संकलन करते समय स्रोत(निर्देश जिनसे प्रोग्राम बनाया जाता है) में बदल जाता है मशीन कोड, जिसे केवल एक निश्चित प्रकार के उपकरणों पर ही निष्पादित किया जा सकता है। यह प्रक्रिया "आंतरिक कोड" उत्पन्न करती है जो अविश्वसनीय रूप से तेज़ चलती है।

भाषाएँ अन्य प्रकार की होती हैं - व्याख्या. व्याख्या किया गया कोड पढ़ा जाता है सॉफ़्टवेयर एप्लिकेशन(दुभाषिया), जो कार्य करता है निर्दिष्ट क्रियाएं. व्याख्या किए गए कोड को अक्सर संकलित करने की आवश्यकता नहीं होती है - इसे निष्पादित करते ही इसका अनुवाद किया जाता है। इस वजह से, व्याख्या किया गया कोड काफी धीमी गति से चलता है, लेकिन यह प्रोग्राम को विभिन्न ऑपरेटिंग सिस्टम और विभिन्न आर्किटेक्चर वाले प्रोसेसर के बीच पोर्ट करने की अनुमति देता है।

जावा दोनों तकनीकों से सर्वश्रेष्ठ लेता है। जावा कोड को प्लेटफ़ॉर्म-स्वतंत्र मशीन कोड में संकलित किया जाता है जिसे कहा जाता है जावा बाइटकोड. विशेष दुभाषिया आभासी मशीनजावा या "जावा वर्चुअल मशीन (जेवीएम)" बाइटकोड को पढ़ता है और संसाधित करता है। चित्र में. चित्र 1 एक छोटे जावा एप्लिकेशन का आरेख दिखाता है। तीर से चिह्नित बाइटकोड को टेक्स्ट रूप में प्रस्तुत किया जाता है, लेकिन संकलित होने पर, स्थान बचाने के लिए इसे बाइट्स के रूप में दर्शाया जाता है।



चावल। 1 - "हैलोवर्ल्ड" के लिए बाइटकोड को पार्स करना

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

बहु सूत्रण

यदि आपने कभी C या PERL में जटिल एप्लिकेशन लिखे हैं, तो संभावना है कि आप एकाधिक प्रक्रियाओं की अवधारणा से परिचित हुए होंगे। एक एप्लिकेशन स्वयं को समानांतर में चलने वाली अलग-अलग प्रतियों में विभाजित कर सकता है। प्रत्येक कॉपी कोड और डेटा की नकल करती है, जिसके परिणामस्वरूप मेमोरी की खपत बढ़ जाती है। इन प्रतियों को आपस में जोड़ना काफी कठिन है। प्रत्येक प्रक्रिया के निर्माण के लिए ऑपरेटिंग सिस्टम तक पहुंच की आवश्यकता होती है, जो एक बार फिर सीपीयू समय बर्बाद करता है।

अधिकता सर्वोत्तम विधिएकाधिक निष्पादन योग्य थ्रेड्स का उपयोग है, जिसे सरलता से कहा जाता है धाराओं. थ्रेड्स डेटा और कोड साझा कर सकते हैं, जिससे थ्रेड इंस्टेंस के बीच डेटा ट्रांसफर करना आसान हो जाता है। वे कम मेमोरी और सीपीयू संसाधनों का भी उपयोग करते हैं। कुछ भाषाएँ, जैसे C++, थ्रेड्स का समर्थन करती हैं, लेकिन उन्हें लागू करना बहुत कठिन है। जावा में मल्टीथ्रेडिंग के लिए अंतर्निहित समर्थन है। थ्रेड्स के लिए थोड़े अलग तरीके की सोच की आवश्यकता होती है, लेकिन इन्हें समझना बहुत आसान है। थ्रेड्स के लिए जावा के समर्थन का उपयोग करना बहुत आसान है, और इन्हें एप्लिकेशन और एप्लेट्स में अक्सर उपयोग किया जाता है।

स्वचालित कचरा संग्रहण

नहीं, हम घर से कचरा बाहर निकालने की बात नहीं कर रहे हैं (हालाँकि एक कंप्यूटर होना अच्छा होगा जो इस तरह के कार्य को संभाल सके)। शब्द "कचरा संग्रहण" अप्रयुक्त स्मृति क्षेत्रों के निपटान को संदर्भित करता है। जब एप्लिकेशन ऑब्जेक्ट बनाते हैं, तो JVM उन्हें संग्रहीत करने के लिए मेमोरी क्षेत्र आवंटित करता है। यदि ऑब्जेक्ट की अब आवश्यकता नहीं है (इसका कोई संदर्भ नहीं है), तो इस मेमोरी क्षेत्र को बाद में फिर से उपयोग किया जा सकता है।

C++ जैसी भाषाओं के लिए प्रोग्रामर को डेटा और ऑब्जेक्ट के लिए मैन्युअल रूप से मेमोरी आवंटित करने और खाली करने की आवश्यकता होती है। यह प्रोग्राम को जटिल बनाता है और एक अन्य समस्या को जन्म देता है: मेमोरी लीक। जब प्रोग्रामर मेमोरी साफ़ करना भूल जाते हैं, तो उपयोग के लिए उपलब्ध निःशुल्क मेमोरी की मात्रा कम हो जाती है। प्रोग्राम जो बार-बार ऑब्जेक्ट बनाते और नष्ट करते हैं, अंततः सभी उपलब्ध मेमोरी को भर सकते हैं। में जावा प्रोग्रामरऐसी चीज़ों के बारे में चिंता करने की कोई आवश्यकता नहीं है क्योंकि JVM वस्तुओं के लिए स्वचालित कचरा संग्रहण करता है।

विश्वसनीयता

जावा में सुरक्षा बहुत महत्वपूर्ण भूमिका निभाती है। क्योंकि जावा एप्लेट्सदूरस्थ रूप से डाउनलोड किया गया और ब्राउज़र में निष्पादित किया गया, सुरक्षा पर बहुत अधिक ध्यान दिया गया है। हम नहीं चाहेंगे कि एप्लेट्स हमारे व्यक्तिगत दस्तावेज़ों तक पहुँच प्राप्त करें, हमारी फ़ाइलें हटाएँ, या कोई नुकसान पहुँचाएँ। जब एप्लेट्स तक फ़ाइलों और नेटवर्क तक पहुँचने की बात आती है तो एपीआई स्तर पर सख्त सुरक्षा प्रतिबंध होते हैं। इसके अलावा, डाउनलोड किए गए कोड की अखंडता की जांच के लिए समर्थन है डिजीटल हस्ताक्षर. बाइटकोड स्तर पर, स्टैक हेरफेर या अमान्य बाइटकोड जैसे स्पष्ट हैक की जाँच की जाती है। जावा के शक्तिशाली सुरक्षा तंत्र अनजाने या जानबूझकर किए गए सुरक्षा उल्लंघनों से बचाने में मदद करते हैं, लेकिन यह याद रखना महत्वपूर्ण है कि कोई भी सिस्टम संपूर्ण नहीं होता है। इस श्रृंखला की सबसे कमजोर कड़ी जावा वर्चुअल मशीन है, जिसमें सब कुछ चलता है - जेवीएम हमलों के प्रति संवेदनशील हो सकता है क्योंकि यह ज्ञात है कमजोर पक्ष. यह ध्यान देने योग्य है कि हालांकि जेवीएम में कई कमजोरियां पाई गई हैं, ऐसा बहुत कम होता है और आमतौर पर इसे जल्दी से ठीक कर लिया जाता है।

नेटवर्क और इंटरनेट के साथ काम करने के लिए समर्थन

जावा को इंटरनेट को ध्यान में रखकर और नेटवर्क प्रोग्रामिंग को सपोर्ट करने के लिए बनाया गया था। जावा एपीआई व्यापक समर्थन प्रदान करता है नेटवर्क कार्य, सॉकेट और आईपी पते से लेकर यूआरएल और HTTP तक। जावा में नेटवर्क एप्लिकेशन लिखने से आसान कुछ भी नहीं है। इस स्थिति में, परिणामी कोड को किसी भी प्लेटफ़ॉर्म पर स्थानांतरित किया जा सकता है। C/C++ जैसी भाषाओं में, प्रत्येक ऑपरेटिंग सिस्टम के लिए नेटवर्किंग कोड को फिर से लिखा जाना चाहिए, और आमतौर पर इसकी संरचना अधिक जटिल होती है। जावा का नेटवर्किंग समर्थन बहुत समय और प्रयास बचाता है।

जावा अधिक विदेशी प्रकार की नेटवर्क प्रोग्रामिंग का भी समर्थन करता है, जैसे रिमोट मेथड इनवोकेशन (आरएमआई), कॉमन ऑब्जेक्ट रिक्वेस्ट प्रोसेसर आर्किटेक्चर (कोरबा), और जिनी डिस्ट्रिब्यूटेड सिस्टम आर्किटेक्चर। ये वितरित सिस्टम प्रौद्योगिकियाँ जावा को बड़े पैमाने की परियोजनाओं के लिए एक आकर्षक भाषा बनाती हैं।

सरलता और उपयोग में आसानी

जावा भाषा की जड़ें C++ भाषा में हैं। C++ बहुत लोकप्रिय और व्यापक है। और फिर भी इसे एक जटिल भाषा माना जाता है, जिसमें एकाधिक वंशानुक्रम, टेम्पलेट्स और पॉइंटर्स जैसी विशेषताएं हैं जो प्रतिकूल हैं। बदले में, जावा एक "विशुद्ध" वस्तु-उन्मुख भाषा है। मेमोरी पॉइंटर्स तक कोई पहुंच नहीं है, बल्कि ऑब्जेक्ट संदर्भ हैं। एकाधिक वंशानुक्रम के लिए समर्थन भी हटा दिया गया है। इससे अधिक समझने योग्य और हासिल करना संभव हो गया सरल सर्किटकक्षाएं. I/O और नेटवर्किंग लाइब्रेरी का उपयोग करना बहुत आसान है। जावा एपीआई डेवलपर्स को बड़ी मात्रा में समय बचाने वाले कोड (नेटवर्किंग फ़ंक्शंस और डेटा संरचनाएं) प्रदान करता है। कुछ समय तक जावा के साथ काम करने के बाद, अधिकांश डेवलपर्स जावा की सरलता और सुंदरता के कारण अन्य भाषाओं में वापस जाने के लिए अनिच्छुक हैं।

निष्कर्ष

जावा डेवलपर्स को कई लाभ प्रदान करता है। हालाँकि उनमें से कई अन्य भाषाओं में मौजूद हैं, जावा उन्हें एक साथ लाता है। जावा की तीव्र वृद्धि वास्तव में अभूतपूर्व रही है, और अभी भी इसकी गति धीमी होने का कोई संकेत नहीं दिख रहा है। अगले लेख में हम जावा के दिल - जावा वर्चुअल मशीन के बारे में बात करेंगे।


नमस्ते प्रिय पाठक. मैं लंबे समय से इस तरह का एक लेख लिखना चाहता था, लेकिन या तो मेरे पास पर्याप्त समय नहीं था या विश्वासघाती आलस्य मेरे रास्ते में आ गया। लेकिन, जो भी हो, मैं अभी भी कुछ लिखने के लिए अपने विचारों को इकट्ठा करने में कामयाब रहा, मुझे आशा है कि, इससे आपको कुछ लाभ होगा। मुझे अपना ज्ञान और अनुभव साझा करने में खुशी होगी, बदले में आपको समय और ध्यान मिलेगा। मेरी राय में, यह प्रकाशन उन लोगों के लिए उपयुक्त है जो अपने हितों पर निर्णय लेने के लिए तैयार हैं और अपने जीवन को किसी न किसी तरह से आईटी से जोड़ना चाहते हैं। तो चलते हैं!

एक प्रोग्रामिंग भाषा चुनना

प्रकाशन कई समान सामग्रियों जैसा दिखने लगा है। शैली के नियम के अनुसार, मुझे कुछ तीन प्रोग्रामिंग भाषाओं के नाम लिखने होंगे, कुछ फायदे और नुकसान के नाम बताने होंगे और अंत में, प्रश्न का उत्तर दिए बिना, अगले भाग पर आगे बढ़ना होगा। आंशिक रूप से, इसमें कुछ सच्चाई है, क्योंकि हर कोई उस भाषा को चुनता है जो उनके करीब है, इस आधार पर कि वे भविष्य में किस प्रकार के उत्पाद विकसित करना चाहते हैं। आपमें से अधिकांश ने स्कूल में टर्बो पास्कल का अध्ययन किया और यह शायद ही आपके लिए खबर होगी कि अब इस भाषा में लगभग कुछ भी नहीं लिखा जाता है। तो इस मामले में, आपको भाषा का चयन समझदारी से करने की आवश्यकता है, हालाँकि आपके पास कभी भी बहुत अधिक ज्ञान नहीं हो सकता है, लेकिन यदि आप कम समय में प्रभावी ढंग से प्रोग्रामर की श्रेणी में शामिल होना चाहते हैं, तो आपको भाषा का चयन समझदारी से करने की आवश्यकता है। सबसे पहले, याद रखें: एक अच्छा प्रोग्रामर कभी भूखा नहीं रहेगा, और ज्यादातर मामलों में वह अपने लिए ढेर सारा कैवियार खरीदने में सक्षम होगा(यह परिभाषा किसी भी विशेषज्ञता के लिए उपयुक्त है, लेकिन कोई भी विशेषज्ञता आपको यह चुनने की स्वतंत्रता नहीं देगी कि कहां काम करना है, कंपनियों और देशों दोनों के संदर्भ में - वह भारत में एक प्रोग्रामर और एक प्रोग्रामर है)।

यह तर्कसंगत है कि कोई भाषा जितनी अधिक लोकप्रिय और मांग में होगी, भविष्य में नौकरी पाने की संभावना उतनी ही अधिक होगी, और भाषा सीखना आसान होना चाहिए। क्योंकि हालाँकि बड़ी संख्या में गेम C++ में लिखे गए हैं और उन्हें इसके लिए अच्छा पैसा मिलता है, एक शुरुआत करने वाले के लिए, विशेष रूप से OOP (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) से परिचित नहीं होने के लिए, इस भाषा को कुछ समय के लिए अलग रख देना बेहतर है। निम्नलिखित लिंक 2014 की सबसे लोकप्रिय प्रोग्रामिंग भाषाओं की एक सूची प्रदान करता है, और जैसा कि आप देख सकते हैं, जावा पहले स्थान पर है, उसके बाद सी भाषाएं, फिर फाइटन, जावास्क्रिप्ट, पीएचपी, रूबी आदि हैं। यदि आप स्वयं इसी तरह के आँकड़े ढूँढ़ेंगे तो आप देखेंगे कि अलग-अलग स्रोतों में अलग-अलग स्थानों पर कब्जा किया गया है, लेकिन सामान्य तौर पर सामग्री में पहले 10 स्थान हर जगह समान होंगे।

यदि आप किसी अन्य की ओर रुख करते हैं, जो ट्विटर पर पोस्ट की गई रिक्तियों के विश्लेषण पर आधारित है, तो आपको पहले उदाहरण के समान ही स्थिति दिखाई देगी। और हाँ, दोनों लेख अंग्रेजी में हैं, इसकी आदत डालें, यदि आप प्रोग्रामर बनना चाहते हैं, तो याद रखें कि लगभग सभी दस्तावेज़ और स्रोत उपयोगी जानकारीअंग्रेजी में लिखे गए हैं, इसलिए यदि इस भाषा का आपका ज्ञान कमजोर है, तो कल और निकट भविष्य के लिए अपनी कार्य सूची में अंग्रेजी सीखना और अभ्यास करना शामिल करें। मुझे लगता है कि मैं एक विदेशी भाषा सीखने के लिए समर्पित एक अलग लेख भी लिखूंगा।

इन दो स्रोतों के आधार पर, हम पहले से ही कल्पना कर सकते हैं कि कौन सी प्रोग्रामिंग भाषाएँ वर्तमान में "फैशन में" हैं। जैसा कि शीर्षक से पता चलता है, लेख के लेखक ने अपने लिए जावा को चुना। हालाँकि मुझे लगता है कि यह OOP सीखने के लिए सबसे अच्छा है, ऐसे कई लोग हैं जो मुझसे असहमत होंगे, और यह तर्कसंगत है - जितने लोग, उतनी राय। यहां हम एक छोटे से चौराहे पर खड़े हैं: अगर हम प्रोग्राम और एप्लिकेशन (बैक-एंड) की फिलिंग के साथ काम करना चाहते हैं तो जावा, सी# (जावा के समान), फाइटन चुनें या अगर हम करना चाहते हैं तो पीएचपी, जावास्क्रिप्ट, एचटीएमएल चुनें। वेब विकास (फ्रंट-एंड)। पहले मामले में, मैं जावा चुनूंगा, और दूसरे में, PHP, हालांकि फिर भी, यह आपके स्वाद के लिए अधिक है, आपको स्वयं विभिन्न भाषाओं के बारे में जानकारी ढूंढनी होगी और आम तौर पर समझना होगा कि आप क्या करना चाहते हैं। विचार के लिए, यहां उन भाषाओं का चयन दिया गया है जिनका उपयोग दुनिया की सबसे बड़ी इंटरनेट कंपनियों में किया जाता है।

दो मुख्य कारण हैं कि मैं जावा या PHP में से किसी एक को क्यों चुनूंगा। पहला यह कि ये भाषाएँ बहुत लोकप्रिय हैं और उपयुक्त नौकरी ढूंढना मुश्किल नहीं होगा, और दूसरा यह कि किसी अन्य भाषा में आपको इतनी प्रशिक्षण सामग्री नहीं मिलेगी जितनी इन दोनों में, रूसी और अंग्रेजी दोनों में। .


शिक्षा

तो, हम एक ऐसे चरण पर आ गए हैं जहाँ अधिकांश लोग बिना किसी समस्या के पहुँच जाते हैं, लेकिन यह अवधि एक प्रोग्रामर के करियर में सबसे कठिन अवधियों में से एक है। हालाँकि एक प्रोग्रामर जीवन भर सीखता है, वह समय जब वह अपना पहला कदम उठाना शुरू करता है वह काफी हद तक उसके भविष्य के भाग्य को निर्धारित करता है। सामान्य तौर पर, प्रशिक्षण किसी व्यक्ति की ताकत का परीक्षण करता है, कि क्या वह इसे सहन करेगा, क्या वह एक महीने में रुचि नहीं खोएगा (जैसा कि कुछ के साथ होता है), क्या वह अंत तक पहुंचने और मास्टर करने में सक्षम होगा बुनियादी ज्ञान, जिस पर फिर जानकारी की पूरी परतें चढ़ जाएंगी।

सामान्य तौर पर, मेरा अपना सिद्धांत है, जिसकी मैंने व्यवहार में एक से अधिक बार पुष्टि की है: 1 वर्ष में बिल्कुल सब कुछ सीखा जा सकता है।. मेरा विश्वास करो, यह पूर्ण सत्य है, कुछ को कम समय की भी आवश्यकता हो सकती है, लेकिन यदि कोई व्यक्ति हार नहीं मानता है और पूरे वर्ष बुद्धिमानी से सीखने की कोशिश करता है, तो यह लगभग असंभव है कि वह सीख नहीं पाएगा। यह केवल प्रोग्रामिंग में नहीं है, बिल्कुल किसी भी क्षेत्र में: यदि आप गिटार बजाना चाहते हैं - कोई समस्या नहीं (इसमें मुझे इतना समय और प्रयास नहीं लगा), अर्जेंटीना टैंगो सीखें, सर्फ करें - यह सब एक वर्ष के लिए पर्याप्त है। मुख्य बात है पढ़ाई!

इस मामले में, मैं जावा भाषा पर विचार करूंगा, क्योंकि यह अभी भी मेरे करीब है। सौभाग्य से, इंटरनेट ऐसे लोगों से भरा पड़ा है जो दूसरों को मुफ्त में अध्ययन करने में मदद करते हैं, इसलिए आपके लिए उपयुक्त सामग्री ढूंढना मुश्किल नहीं होगा। , जिसे आप अपने आरामदायक अपार्टमेंट की दीवारों के भीतर कलम और कागज के साथ देख सकते हैं (अभी के लिए केवल रूसी में)। जो लोग उस सामग्री को पढ़ने के आदी हैं, जिसके माध्यम से वे पढ़ रहे हैं, इंटरनेट फिर से महान अवसर प्रदान करता है और यह जावा पाठों वाली सभी प्रकार की साइटों में से केवल एक है। पर्याप्त से अधिक सिद्धांत हैं, लेकिन मैं coursera.org जैसी प्रशिक्षण साइट के बारे में कुछ नहीं कह सकता, जहां आप विभिन्न भाषाओं और प्रोग्रामिंग सहित विभिन्न क्षेत्रों में प्रशिक्षण पाठ्यक्रम पा सकते हैं - फिर से, सब कुछ बिल्कुल मुफ्त है। ऐसी एक या दो साइटें नहीं हैं, बस आपको सर्च करना है।

लेकिन सिद्धांत कितना भी जानकारीपूर्ण क्यों न हो, अभ्यास के बिना प्रोग्रामिंग अपरिहार्य है। लेकिन यहां भी, हमारा आधा काम पहले ही हो चुका है और हमें अपने कौशल को बेहतर बनाने के लिए विभिन्न कार्यों की तलाश करने की आवश्यकता नहीं है, JavaRush जैसी सेवा इसमें बहुत मदद करेगी। सामान्य तौर पर, यह साइट सिद्धांत और अभ्यास दोनों प्रदान करती है, स्क्रीन से कोड की नकल बनाने से लेकर जटिल कार्यों तक, और ब्रेक के दौरान यह प्रसिद्ध एनिमेटेड श्रृंखला को आराम करने और देखने की भी पेशकश करती है। लेखकों के अनुसार, जो लोग सेवा में 20 के स्तर तक पहुँच चुके हैं, उनके पास आईटी कंपनी में नौकरी पाने के लिए पहले से ही पर्याप्त ज्ञान होगा। .

अभ्यास में सहायता करें

जैसा कि पहले ही उल्लेख किया गया है, अभ्यास किसी भी सीखने का एक अभिन्न अंग है, खासकर प्रोग्रामिंग में। यहां आपको अपनी उंगलियों की मांसपेशियों की मेमोरी तक कोड और कोड करना होगा। बेशक, यह थोड़ा अतिरंजित है, लेकिन सबसे पहले आपको विभिन्न संरचनाओं के अर्थ याद रखने के लिए वास्तव में कुंजियों को बहुत अधिक दबाना होगा ताकि भविष्य में आप उन्हें लगभग स्वचालित रूप से उपयोग कर सकें।

कई नौसिखिया प्रोग्रामर के पास पहले बहुत सारे प्रश्न होते हैं, खासकर जब उन्हें एक स्वतंत्र कार्य पूरा करने की आवश्यकता होती है। यह ठीक है। लेकिन ऐसी स्थितियों में, आपको यह समझने की आवश्यकता है कि आपके लगभग किसी भी प्रश्न का उत्तर इंटरनेट पर दिया जा सकता है। यह संभव नहीं है कि आप इसका सामना करने वाले पहले व्यक्ति हों, इसलिए विभिन्न प्रोग्रामर फ़ोरम (जिसके बारे में मैं थोड़ी देर बाद लिखूंगा) पर तुरंत प्रश्न पूछने में जल्दबाजी न करें। एक मिनट के लिए बैठें, अपने दिमाग में समस्या का सही ढंग से सूत्रीकरण करें और बेझिझक उसे किसी खोज इंजन में खोजें। निश्चित रूप से अधिकांश रूसी में खोजेंगे, लेकिन यह मत भूलो कि प्रोग्रामर की भाषा अंग्रेजी है, इसलिए यदि आपको महान और शक्तिशाली में उत्तर नहीं मिला है, तो यह उस भाषा में देखने लायक है जिसे हर कोई स्कूल में पढ़ता हुआ प्रतीत होता है, लेकिन कभी सीखा नहीं. लेकिन अगर इस मामले में भी यह पता चलता है कि आपके प्रश्न का कहीं भी कोई उत्तर नहीं है, तो सर्वोत्तम इंटरनेट फ़ोरम लड़ाई में प्रवेश करते हैं:
जिस भाषा में वे लिखते हैं उसका दस्तावेज़ीकरण। यह वर्णन करता है कि कुछ वर्ग और इंटरफ़ेस कैसे काम करते हैं; कभी-कभी दस्तावेज़ीकरण ही एकमात्र स्रोत होता है जो समस्याओं को हल करने में मदद कर सकता है, क्योंकि केवल यही है आरंभिक चरणहर किसी के पास समान प्रश्न होते हैं और आप उन्हें बिना किसी समस्या के पा सकते हैं तैयार समाधान, लेकिन जितना अधिक आप जंगल में जाएंगे, उत्तर ढूंढना उतना ही कठिन होता जाएगा, इसलिए आपको अपने, मुझे आशा है, पहले से ही स्मार्ट दिमाग पर भरोसा करना होगा।

कोड संकलित करना

मैंने पहले ही काफी कुछ लिखा है, बेशक, इतने बड़े विषय को एक लेख में शामिल करना मुश्किल है, लेकिन मुझे लगता है कि पहला कदम पहले ही उठाया जा चुका है और उन्हें आपके अंदर उचित विचार पैदा करने चाहिए। मुझे लगता है कि यह "प्रोग्रामर कैसे बनें" श्रृंखला का पहला लेख है और, तदनुसार, "क्यों?" यदि आप एक चौराहे पर हैं और अभी तक नहीं जानते हैं कि कौन सा रास्ता चुनना है। अगली बार मैं और अधिक दिलचस्प चीजों पर बात करूंगा, क्योंकि यह कोई रहस्य नहीं है कि प्रोग्रामर गरीब लोग नहीं हैं, और हम देखेंगे कि अगली बार उन्हें कहां और कितना भुगतान मिलता है।

अंत में, उन लोगों के लिए जो वास्तव में एक प्रोग्रामर बनना चाहते हैं, मैं चाहता हूं कि आप बैल को सींगों से पकड़ें, अपनी सारी इच्छाशक्ति को मुट्ठी में इकट्ठा करें और वही करें जो आपको पसंद है। यह पहले भी हजारों बार कहा जा चुका है, लेकिन मैं दोहराऊंगा, मुख्य चीज इच्छा और काम है। तब सब कुछ आपके लिए ठीक हो जाएगा। सबसे महत्वपूर्ण बात याद रखें: प्रोग्रामिंग भाषाओं और विभिन्न प्रौद्योगिकियों को सीखने को एक लक्ष्य के रूप में नहीं, बल्कि एक साधन के रूप में देखें।जरा कल्पना करें कि आपके लिए क्या अवसर खुल रहे हैं। हो सकता है कि आप उन लोगों में से एक बन जाएं जो वास्तविक समय में दुनिया को बदल देते हैं। बहुत शुभकामनाएँ और आपके ध्यान के लिए धन्यवाद!

वीडियो बोनस

टैग: टैग जोड़ें

लेखक से:यह प्रोग्रामिंग भाषा दुनिया के लगभग 3 बिलियन स्मार्टफ़ोन, 125 मिलियन टेलीविज़न और प्रत्येक ब्लू-रे प्लेयर को शक्ति प्रदान करती है। यह भाषा नियमित रूप से सॉफ़्टवेयर डेवलपर रेटिंग में पुरस्कार लेती है और सबसे बड़ी आईटी कंपनियों में सबसे लोकप्रिय है। यह एक तकनीकी घटना है और बिल्कुल किसी भी डिवाइस पर काम करती है, जो इसके "एक बार लिखें, कहीं भी चलाएं" सिद्धांत (WORA - "एक बार लिखें, कहीं भी चलाएं") से मेल खाती है। किसने अनुमान लगाया, अपने हाथ उठाओ! बेशक, यह जावा भाषा है। और आज मैं आपके सामने अपने सभी कार्ड प्रकट करूंगा और आपको शुरुआत से जावा प्रोग्रामर कैसे बनें, इसके बारे में पूरी सच्चाई बताऊंगा! आपने आप को आरामदेह करलो!

जावा के बारे में कुछ तथ्य

आपको लंबे सैद्धांतिक उपदेशों से बोर न करने के लिए, मैंने जावा के बारे में कुछ जानकारी को एक सूची में समूहीकृत किया है, जिसे पढ़ने के बाद आपको यह जानकारी प्राप्त होगी कि यह किस प्रकार की भाषा है और इसमें इसकी क्या भूमिका है वन्य जीवनप्रोग्रामिंग:

जावा एक "फैशनेबल" और क्रॉस-प्लेटफ़ॉर्म प्रोग्रामिंग भाषा है। यह किसी भी ऑपरेटिंग सिस्टम वाले किसी भी डिवाइस पर काम करता है। इस पर सभी Google और Android एप्लिकेशन लिखे हुए हैं। आपको किसी अन्य भाषा के लिए इतनी जानकारी और प्रशिक्षण सामग्री नहीं मिलेगी;

भाषा की आधिकारिक रिलीज़ तिथि 23 मई, 1995 है। इसका मूल उद्देश्य एक इंटरैक्टिव होना था केबल टेलीविज़न, लेकिन "यह काम नहीं किया।" जावा का आविष्कारक सन माइक्रोसिस्टम्स है, जिसे 2010 में Oracle द्वारा अधिग्रहित किया गया था;

बहुत से लोग जावा और जावास्क्रिप्ट को भ्रमित करते हैं। अगर आप कुछ करना चाहते हैं (वेबसाइट, वेब एप्लिकेशन) तो दूसरा विकल्प चुनें। जावा बैक-एंड है, यानी एप्लिकेशन भरने का विकास;

आधुनिक वेब विकास प्रौद्योगिकियाँ

AngularJS, वेबपैक, NodeJS, ReactJS, टाइपस्क्रिप्ट, गल्प, Git, Github...
सब कुछ पता करें आधुनिक प्रौद्योगिकियाँवेब विकास में

एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है, जिसका कोड एक विशेष द्वारा निष्पादित किया जाता है आभासी जावा मशीन(जेवीएम)। अमेरिका में, लगभग 10 में से 9 कंप्यूटरों में यही JVM स्थापित है;

इस भाषा को इसका नाम कॉफी के एक ब्रांड से मिला है - यही कारण है कि आधिकारिक प्रतीक में एक प्रेरणादायक कप दिखाया गया है।

क्या आप अभी भी यहाँ हैं या आप अपने लिए एक कप सुगंधित कॉफ़ी बनाने के लिए दौड़े हैं? तो फिर आइए जावा प्रोग्रामर कैसे बनें के बारे में बातचीत जारी रखें।

सॉफ़्टवेयर वातावरण की स्थापना

अजीब तरह से, कुछ लोगों को जावा सॉफ़्टवेयर वातावरण स्थापित करने के चरण में ही समस्याएँ होती हैं। ऐसा करने के लिए, आपको डेवलपर कंपनी - Oracle की आधिकारिक वेबसाइट पर जाना होगा। आपको साइट के शीर्ष पर वर्तमान संस्करण का एक लिंक दिखाई देगा। आपको जावा एसई (मानक संस्करण) और जावा डेवलपमेंट किट - विकास उपकरणों का एक सेट - की आवश्यकता है। कृपया ध्यान दें कि अलग-अलग के लिए अलग-अलग वितरण हैं ओएस.

मान लीजिए कि हमारे पास विंडोज़ है। हम "सिस्टम प्रॉपर्टीज़" पर जाते हैं और देखते हैं कि हमारे पास किस प्रकार का सिस्टम है - 32-बिट या 64-बिट। हम वह फ़ाइल डाउनलोड करते हैं जो बिट गहराई के मामले में हमारे लिए उपयुक्त होती है। यदि आप गलत वितरण चुनते हैं, तो कोड संकलित करते समय आपको एक त्रुटि प्राप्त होगी। एक्सेप्ट लाइसेंस एग्रीमेंट की पुष्टि करने के बाद डाउनलोड बटन पर क्लिक करें।

जावा डेवलपर टूलकिट क्या है?

प्रोग्रामर अपना अधिकांश समय IDE (InteliJ IDEA, Eclipse, WebStorm, NetBeans) में बिताता है। आईडीई एक एकीकृत विकास वातावरण है, जो प्रोग्रामिंग के लिए एक विशेष इंटरफ़ेस है। यह न केवल आपको कोड लिखने में मदद करता है, बल्कि अन्य प्रोग्रामिंग टूल का उपयोग करना भी आसान बनाता है। कुछ लोग उन लोगों को सलाह देते हैं जो शुरू से जावा प्रोग्रामर बनना चाहते हैं, वे अपना पहला प्रोग्राम नियमित नोटपैड या नोटपैड++ में लिखें।

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

पर टीम वर्क, जब कई लोग एक साथ एक प्रोग्राम पर काम कर रहे हों, तो तथाकथित संस्करण नियंत्रण प्रणाली (परफोर्स, गिट, सबवर्जन, आदि) का उपयोग करना आवश्यक है। हालाँकि, अकेले काम करते समय संस्करण नियंत्रण प्रणालियाँ बहुत सुविधाजनक होती हैं।

जावा सीखने के लिए अनुमानित एल्गोरिदम

जावा भाषा की मूल बातें सीखना। पहला कदम अपने तार्किक सोच कौशल को विकसित करना और प्रोग्रामिंग भाषा सिंटैक्स की मूलभूत अवधारणाओं को सीखना है। एक किताब, लेख, या अनुदेशात्मक वीडियो से लैस, सीखें कि कैसे बनाएं आईडीई का उपयोग करनाया एक टेक्स्ट एडिटर सरल जावा ऑब्जेक्ट हैं जिनमें शामिल हैं विभिन्न विकल्पइनपुट डेटा के आधार पर व्यवहार।

जावा भाषा की उन्नत विशेषताओं का विश्लेषण। इस स्तर पर, सिंटैक्स, लाइब्रेरी और फ्रेमवर्क सीखें जो व्यावहारिक फोकस के साथ अधिक जटिल एप्लिकेशन बनाते समय आपके लिए उपयोगी होंगे। एक अच्छा प्रोग्रामर न केवल विभिन्न पुस्तकालयों का उपयोग करना जानता है, बल्कि यह भी जानता है कि वे अंदर कैसे काम करते हैं। इसके अलावा, इनपुट/आउटपुट ऑपरेशंस, इनहेरिटेंस और एब्स्ट्रैक्शन, क्रमबद्धता, सामान्य प्रकार जैसी अवधारणाएँ, नियमित अभिव्यक्ति, आपके लिए एक खाली वाक्यांश नहीं होना चाहिए।

प्रोग्रामिंग की सूक्ष्मताएँ। जावा प्रोग्रामिंग के दस्तावेज़ीकरण और शब्दजाल का सावधानीपूर्वक अध्ययन करने में कभी संकोच न करें। इस स्तर पर, आपको पहले से ही एक परिपक्व प्रोग्रामर में "परिवर्तन" करना चाहिए। जावा गुरुओं के साथ चैट करें, जो आपको विषयगत मंचों और अन्य वातावरणों में मिलेगा जहां प्रोग्रामर इकट्ठा होते हैं। उन्हें अपना कोड दिखाएं, दूसरों से सलाह लें और सलाह दें - "कर्म संचित करें।" आप अपना स्वयं का ब्लॉग भी शुरू कर सकते हैं, उस पर अपने स्वयं के कोड के स्निपेट पोस्ट कर सकते हैं और देख सकते हैं कि अधिक अनुभवी प्रोग्रामर को इसके बारे में क्या कहना है।

प्रोग्रामिंग कैसे शुरू करें?

जो लोग शुरू से जावा प्रोग्रामर बनने की योजना बना रहे हैं, उनके लिए मैं आपको बताऊंगा कि अपना पहला प्रोग्राम कैसे लिखें।
तो, कोई भी खोलें पाठ संपादकऔर लिखा:

क्लास हैलोवर्ल्ड (सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग आर्ग्स) ( System.out.println("हैलो वर्ल्ड!"); ) )

फ़ाइल को HelloWorld.java नाम से सहेजें। कृपया ध्यान दें कि जावा केस सेंसिटिव है, इसलिए "हैलोवर्ल्ड" और "हैलोवर्ल्ड" शब्द अलग-अलग हैं। यदि कोड में फ़ाइल और वर्ग के नाम भिन्न हैं, तो प्रोग्राम प्रारंभ ही नहीं होगा। इसके अलावा, यह महत्वपूर्ण है कि एन्कोडिंग एएनएसआई हो।

अब हमें JDK से javac कंपाइलर का उपयोग करके प्रोग्राम को संकलित करना होगा। हालाँकि हमने विकास परिवेश स्थापित नहीं किया है, हम इसका उपयोग करके संकलन करेंगे कमांड लाइनइसे स्टार्ट मेनू से कॉल करके cmd करें। दिखाई देने वाली विंडो में, cmd टाइप करें और Enter दबाएँ।

यदि हमने HelloWorld.java को ड्राइव C पर प्रोग फ़ोल्डर में सहेजा है, तो कमांड दर्ज करें:

सीडी सी:\प्रोगा

और एंटर दबाएँ. इसलिए हमने निर्देशिका को उस निर्देशिका में बदल दिया जहां हमारा प्रोग्राम स्थित है। फिर दर्ज करें:

जावैक हेलोवर्ल्ड.जावा

फिर से Enter दबाएँ. यदि सिस्टम कोई त्रुटि उत्पन्न नहीं करता है, तो संकलन सफल रहा, और प्रोग फ़ोल्डर में आपको HelloWorld.class फ़ाइल मिलेगी। मैं समझाऊंगा कि इसकी आवश्यकता क्यों है। .java एक्सटेंशन वाली फ़ाइल केवल कोड का एक "स्केच" है, जिसमें "तकनीकी भाग" नहीं है, जो कार्यों को नहीं, बल्कि प्रोग्राम के लॉन्च को प्रभावित करता है। और .class फ़ाइल में बाइटकोड होते हैं जो आपको जावा दुभाषिया के माध्यम से लिखित कोड निष्पादित करने की अनुमति देते हैं।

यदि आपने सब कुछ सही ढंग से किया, तो आप स्क्रीन पर अपनी रचना देखेंगे, एक नवजात इलेक्ट्रॉनिक दिमाग जो आपका स्वागत करेगा: "हैलो वर्ल्ड!"


खैर, आज के लिए बस इतना ही, प्यारे दोस्तों। मुझे आशा है कि आप स्वयं समझ गए होंगे कि आप शुरू से ही जावा प्रोग्रामर कैसे बन सकते हैं। अपने अगले लेख में मैं जावा प्रोग्रामर के रूप में पैसे कमाने के तरीके के बारे में बात करूंगा। तो बने रहें, या इससे भी बेहतर, हमारे ब्लॉग अपडेट की सदस्यता लें। नमस्ते!



मित्रों को बताओ