जावा प्रोग्रामिंग. ऑब्जेक्ट चर, ऑब्जेक्ट, संदर्भ और पॉइंटर्स। जावा और इंटरनेट

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

मेरी उम्र 22 साल है, मैंने आर्थिक शिक्षा प्राप्त की है। ठीक एक साल पहले (फरवरी-मार्च) मेरे पास कोई प्रोग्रामिंग कौशल नहीं था, और मुझे केवल पुराने सीमेंस पर गेम में जावा का सामना करना पड़ा (गेम शुरू करते समय "जावा द्वारा संचालित" स्वागत विंडो के रूप में)।

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

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

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

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

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

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

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

मेरा पहला कदम कुछ नया सीखने का पारंपरिक प्रयास था - अपने आप को किताबों से लैस करें, सिद्धांत में महारत हासिल करें और आगे बढ़ें! इस तरह मुझे हॉर्स्टमैन और कॉर्नेल - जावा की पुस्तक मिली। मूल बातें। यह मार्च 2014 था.

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

समूह शिक्षण - 4 से 8 छात्रों तक छात्र स्कूल द्वारा उपलब्ध कराए गए निजी लैपटॉप या कंप्यूटर का उपयोग कर सकते हैं। प्रमाणपत्र उन छात्रों को प्रदान किया जाता है जो सभी कक्षाओं में भाग लेते हैं और पाठ्यक्रम सामग्री में सफलतापूर्वक महारत हासिल कर लेते हैं। कक्षाओं के लिए दिन सोमवार और बुधवार या मंगलवार और गुरुवार 30 से 30 तक पाठ्यक्रम की अवधि - सप्ताह। कंप्यूटर प्रशिक्षण पर छूट: - "एक मित्र लाओ" के लिए 10%। छूट का उपयोग दोनों पक्षों द्वारा किया जाता है। - "अगले कोर्स के लिए बिलिंग" के लिए 10%।

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

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

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

बुनियादी प्रोग्रामिंग प्रतिमानों का अवलोकन

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

तीन महीने बीत गए, इस दौरान मैं 20 के स्तर पर पहुंच गया। मुझे ऐसा लगा कि यदि आपको पहले से ही एक प्रोग्रामर के रूप में नौकरी मिल गई है तो आगे की भाषा सीखना बहुत तेजी से होगा - तब आप दिन में 8 घंटे, सप्ताह में 5 दिन इस माहौल में रहेंगे और आपका विकास बहुत तेजी से होगा।

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

वस्तु-उन्मुख प्रतिमान

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

जो भी हो, सितम्बर में मुझे पहले साक्षात्कार के लिए बुलाया गया। रिक्ति में लगभग निम्नलिखित शामिल हैं - किसी भी स्तर के डेवलपर को हम कौशल के अनुरूप वेतन की पेशकश करेंगे।
इस साक्षात्कार में, कार्य लगभग इस प्रकार थे - एक कोड खंड दिया गया था। क्या यह सही ढंग से लिखा गया है, और इसमें क्या समस्याएँ हो सकती हैं?
मुझे याद नहीं कि मैंने उनमें से कितने को सही पाया। सामान्य तौर पर, नल के बारे में याद रखना आवश्यक था, लगभग सभी प्रश्न इसके बारे में थे - कि आपको पहले इसकी जांच किए बिना किसी विधि पैरामीटर तक नहीं पहुंचना चाहिए (यदि परम! = शून्य)।

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

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

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

मैं अच्छी तरह से समझ गया कि मुझे अद्भुत प्रस्तावों की उम्मीद नहीं करनी चाहिए, क्योंकि मैं बहुत कम सिद्धांत जानता था, केवल JavaRush में अभ्यास करता था, शून्य अनुभव, इत्यादि। इसलिए, मैं इस बात पर सहमत हुआ कि मैं 2 सप्ताह में निकल जाऊंगा (अपनी पुरानी जगह पर नौकरी छोड़ने का सही समय)।

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

उसी समय, मैंने अपना बायोडाटा दूसरी कंपनी में जमा कर दिया। इस कंपनी ने निम्नलिखित पेशकश की:
- जावा ईई प्रशिक्षण के 2 महीने (सप्ताह में 2 बार 4 घंटे के लिए)
- यदि आप अच्छे परिणाम दिखाते हैं (आप अपने प्रोजेक्ट का सफलतापूर्वक बचाव करते हैं, जिसे आप इन दो महीनों से लिख रहे हैं), तो आपको नौकरी की पेशकश की जाती है।

कंपनी बहुत अच्छी है, विदेशी है, जानी-मानी है, और काम करने की स्थितियाँ उत्कृष्ट हैं - संक्षेप में, मैं उस जगह से कहीं अधिक वहाँ जाना चाहता था जहाँ उन्होंने मुझे पहले ही प्रस्ताव दिया था।
उसके साथ प्रशिक्षण के लिए चयन में 3 चरण शामिल हैं:
1. घर पर व्यावहारिक कार्य करना।
2. सफल होने पर आपको कार्यालय में कंप्यूटर परीक्षण के लिए आमंत्रित किया जाता है।
3. यदि परीक्षण सफल रहा तो उसी दिन आपका साक्षात्कार लिया जाएगा।

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

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

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

अंत में, पाठ्यक्रम जैसे मुद्दों पर चर्चा करता है

संग्रह - पत्र कार्ड और संग्रह और भी बहुत कुछ!

  • ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग, विधियाँ, कक्षाएं, ऑब्जेक्ट।
  • सशर्त अनुरोध.
  • बहुरूपता, एनकैप्सुलेशन, वंशानुक्रम।
  • परीक्षण संचालित विकास।
यह उन शुरुआती लोगों के लिए ज्ञान का एक उत्कृष्ट स्रोत होगा जो अभी तक अपने स्वयं के कार्यक्रम बनाने के संपर्क में नहीं आए हैं।

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

मैंने क्विज़फुल वेबसाइट (http://www.quizful.net/job-role/junior-java-developer) का उपयोग करके परीक्षण की तैयारी की। इन परीक्षणों से बहुत मदद मिली, कुछ प्रश्न तो आपस में उलझ भी गए। मैंने परीक्षा सफलतापूर्वक उत्तीर्ण कर ली और उन्होंने मेरा साक्षात्कार लेना शुरू कर दिया।

यह इंटरव्यू मैं शायद अपने जीवन में कभी नहीं भूलूंगा.

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

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

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

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

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

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

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

मुझे बस अपनी पहली भावनाएँ याद हैं जब मैं पहले व्याख्यान में था। मैंने इस प्रोजेक्ट के लिए असाइनमेंट देखा (यह पहले व्याख्यान में ही दिया गया था) और यह भी समझ नहीं आया कि कहां से शुरू करूं और कैसे करूं।

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

स्नातक स्तर पर मैंने अपना प्रोजेक्ट प्रस्तुत किया। मैंने इसका वास्तव में अच्छी तरह से बचाव किया, जाहिर तौर पर अपेक्षा से कहीं बेहतर, और एक अपवाद के रूप में, मुझे प्रारंभिक पद के लिए नहीं, बल्कि तुरंत मध्य जावा डेवलपर के पद के लिए नियुक्त किया गया था। वह 9 दिसंबर 2014 था। मुझे विश्वास नहीं हो रहा था, लेकिन मेरे मॉनिटर पर नौकरी का प्रस्ताव मेरे सामने था। सॉफ्टवेयर इंजीनियर। ये हुआ।

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

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

और आप निश्चित रूप से कर सकते हैं.

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

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

रूसी भाषा में उच्चारण के संबंध में, कई अन्य भाषाओं की तरह, दो अलग-अलग मानदंड उभरे हैं - उधार ली गई अंग्रेजी भाषा ("dʒɑːvə" - "जावा") और पारंपरिक राष्ट्रीय "जावा", जो कि पारंपरिक उच्चारण के अनुरूप है। जावा द्वीप का नाम. सन दुनिया के सभी देशों में अंग्रेजी उच्चारण का पालन करता है। कभी-कभी कठबोली शब्द "टॉड" का उपयोग रोजमर्रा की जिंदगी में भी किया जाता है (उदाहरण के लिए, टॉड की एक छवि रूसी जावा उपयोगकर्ता समूह के कैलेंडर कार्ड पर है)।

जावा ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा

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

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

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

वर्चुअल मशीन का उपयोग करने की अवधारणा के नुकसान में प्रदर्शन में कमी शामिल है, जिसका मुकाबला विभिन्न तरीकों से किया जा सकता है:

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

जावा संस्करण

जावा 1.0

जावा का विकास 1990 में शुरू हुआ। पहला 1996 में रिलीज़ हुआ था आधिकारिक संस्करण- जावा 1.0.

जावा 1.2

अद्यतन JDK 1.2 विनिर्देश 1998 में विकसित किया गया था और इसे Java 2 नाम से जारी किया गया था। भाषा वस्तुतः अपरिवर्तित रही, लेकिन प्लेटफ़ॉर्म को कई अतिरिक्त प्राप्त हुए:
  • उपयोगकर्ता इंटरफ़ेस विकास के लिए स्विंग लाइब्रेरी;
  • संग्रह का सेट;
  • नीति फ़ाइलों के लिए समर्थन और डिजिटल प्रमाणपत्रउपयोगकर्ता;
  • अभिगम्यता पुस्तकालय;
  • जावा 2डी;
  • ड्रैग-एंड-ड्रॉप तकनीक के लिए समर्थन;
  • जापानी, चीनी और कोरियाई सहित पूर्ण यूनिकोड समर्थन;
  • कई प्रारूपों की ऑडियो फ़ाइलें चलाने के लिए समर्थन;
  • जेआईटी कंपाइलर.

जावा 5.0

2004 में, जावा 5.0 विनिर्देश जारी किया गया था। इस संस्करण के विकास के बाद से, आधिकारिक अनुक्रमणिका बदल दी गई है; इसे Java 1.5 के बजाय Java 5.0 कहना ज्यादा सही है. सूर्य का आंतरिक अनुक्रमण अपरिवर्तित रहा - 1.x.

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

संस्करण में जावा 5.0कई मूलभूत परिवर्धन किए गए:

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

जावा 6

दिसंबर 2006 में एक और रिलीज़ रिलीज़ हुई जावा 6. इस रिलीज़ के साथ, आधिकारिक अनुक्रमण में परिवर्तन किए गए - जावा 6.0 के बजाय, संस्करण को जावा 6 के रूप में सूचीबद्ध किया गया है। पिछला संस्करण, नियमित संस्करण अपडेट में शामिल हैं, जैसे जावा मानक संस्करण विकास किट 6 अपडेट 25।

संस्करण में जावा 6डेवलपर्स द्वारा "नोट" किए गए निम्नलिखित प्रमुख परिवर्तन किए गए हैं:

  • स्विंग में ओपनजीएल और डायरेक्टएक्स के प्रदर्शन में सुधार किया गया है;
  • .gif फ़ाइलों के साथ काम करने के लिए GifWriter जोड़ा गया;
  • संपीड़ित डेटा को पढ़ने और संचारित करने के लिए स्ट्रीम कक्षाएं उपलब्ध हो गईं, उन्हें नेटवर्क पर प्रसारित करने की क्षमता के साथ;
  • संग्रह - संग्रह में फ़ाइलों की संख्या पर प्रतिबंध हटा दिया गया है (पहले 64 KB), फ़ाइल नाम की लंबाई बढ़ा दी गई है (पहले 256 अक्षर)
  • एक समय में लोगों की संख्या पर प्रतिबंध हटा दिया गया है खुली फ़ाइलें(पहले यह 2000 था)।
  • एक कैश प्रबंधन प्रणाली व्यवस्थित की गई है और HTTP अनुरोध में "नो-कैश" पैरामीटर के लिए समर्थन जोड़ा गया है;
  • पहले से मौजूद ग्रेगोरियन और बौद्ध कैलेंडर के साथ, जापानी शाही कैलेंडर के लिए समर्थन जोड़ा गया है;
  • संपूर्ण बनाने के लिए आप जावा HTTP सर्वर का उपयोग कर सकते हैं HTTP सर्वरन्यूनतम आवश्यक कार्यात्मक गुणों के साथ;
  • गणना की गति और I/O संचालन की गति बढ़ा दी गई है।

जावा 7

संस्करण रिलीज़ रिलीज़ जावा 7जुलाई 2011 में हुआ. दुर्भाग्य से अंतिम संस्करण में जावा मानक संस्करण 7पहले से नियोजित कई परिवर्तन शामिल नहीं थे, जिन्हें जोड़ने का निर्णय लिया गया जावा मानक संस्करण 8.

में नया संस्करण, बुलाया जावा मानक संस्करण 7बग फिक्स के अलावा, कई नवाचार पेश किए गए:

  • एक नया प्रकार का सत्यापनकर्ता जोड़ा गया है जो कुछ हद तक तेजी से काम करता है, जिसे "टाइपचेकिंग सत्यापनकर्ता" कहा जाता है;
  • कतार को व्यवस्थित करने के लिए इंटरफेस को संग्रह (डेटा सेट) में जोड़ा गया है;
  • क्लास लोडर (क्लास-लोडर) का संशोधन;
  • URLClassLoader - क्लोज़() विधि का उपयोग करके क्लासलोडर द्वारा रखे गए संसाधनों को जारी करना;
  • जेडीबीसी को 4.1 जारी करने के लिए अद्यतन किया गया, रोसेट को संस्करण 1.1 में;
  • अगली पीढ़ी का नया रूप और अनुभव जोड़ा गया;
  • nio.2 - फाइल सिस्टम एक्सेस के लिए नए इंटरफेस, स्केलेबल एसिंक्रोनस IO इंटरैक्शन, पूर्ण कार्यज़िप/जार अभिलेखागार के साथ फाइल सिस्टम;
  • यूनिकोड 6.0 संस्करण के लिए समर्थन;
  • सामान्य - ऑब्जेक्ट बनाते समय प्रकार का अनुमान बदलें;
  • लोकेल - उपयोगकर्ता और जीयूआई लोकेल अलग हो गए हैं; स्क्रीन पर टेक्स्ट फ़ॉर्मेटिंग और संदेश डिस्प्ले में स्वतंत्र "स्थान" होते हैं।

जावा 8

संस्करण रिलीज़ रिलीज़ जावा 8मार्च 2014 में हुआ था. नवाचारों की सूची:

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

जावा टेक्नोलॉजीज

जावा प्रौद्योगिकियों के कई मुख्य परिवार हैं:

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

एंड्रॉइड डेवलपमेंट टूल्स, एंड्रॉइड के लिए जावा

जावाबनाने में सक्रिय रूप से उपयोग किया जाता है मोबाइल एप्लीकेशनऑपरेटिंग वातावरण के लिए एंड्रॉयड. इस मामले में, प्रोग्रामों को उपयोग के लिए गैर-मानक बाइटकोड में संकलित किया जाता है आभासी मशीनदलविक। ऐसे संकलन के लिए इसका प्रयोग किया जाता है अतिरिक्त उपकरण, Google द्वारा विकसित - सॉफ़्टवेयर डेवलपमेंट किट (एसडीके).

आप प्लगइन का उपयोग करके एंड्रॉइड स्टूडियो, नेटबीन्स या एक्लिप्स में भी एप्लिकेशन विकसित कर सकते हैं Android विकास उपकरण (ADT)या IntelliJ IDEA में। JDK संस्करण कम से कम 5.0 होना चाहिए.



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