CodeGym/Java Blog/अनियमित/पुराना स्तर 06
John Squirrels
स्तर 41
San Francisco

पुराना स्तर 06

अनियमित ग्रुप में प्रकाशित
सदस्य

जावा डेवलपर का रोडमैप

मेरा एक दोस्त सोच रहा था कि डेवलपर्स हमेशा इतने खुश क्यों रहते हैं। वह जो उत्तर लेकर आई वह सरल और आश्चर्यजनक था: वे वही करते हैं जो उन्हें पसंद है और मोटी कमाई करते हैं। सॉफ्टवेयर डेवलपर्स की दुनिया में आपका स्वागत है। पुराना स्तर 06 - 1

सॉफ्टवेयर डेवलपर का वेतन

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

विशिष्ट संख्याएँ

चूंकि दुनिया के विभिन्न हिस्सों में वेतन अलग-अलग हैं, मैं 5 साल के अनुभव वाले वरिष्ठ जावा डेवलपर के वेतन को शुरुआती बिंदु के रूप में लेने का प्रस्ताव करता हूं और इसे "अधिकतम 5 वर्ष" कहता हूं। नीचे दिए गए सभी आंकड़े इस राशि के प्रतिशत के रूप में दिए जाएंगे। यहां दुनिया के विभिन्न शहरों में "5 साल के अधिकतम" वेतन के कुछ उदाहरण दिए गए हैं: पुराना स्तर 06 - 2नीचे यह दिखाया गया है कि 5 साल के अनुभव वाला एक जावा सीनियर डेवलपर जिस कंपनी के लिए काम करता है, उसके आधार पर वह कितना कमा सकता है: पुराना स्तर 06 - 3पुराना स्तर 06 - 4वर्तमान स्थिति के बारे में सबसे अजीब बात क्या है? सभी प्रोग्रामर के आधे 1 और 2 स्तर की कंपनियों में काम करते हैं। क्या आप जानना चाहते हैं, क्या पकड़ है? 3 और 4 स्तर की कंपनियों में सैकड़ों खुली रिक्तियां हैं। ये कंपनियां आपको उच्च वेतन और आमतौर पर बेहतर काम करने की स्थिति की पेशकश करने को तैयार हैं। मैं दो जावा जूनियर को जानता हूं, उनमें से एक को "5 साल अधिकतम" (स्तर 1 कंपनी) का लगभग 3% भुगतान करने वाली नौकरी मिली, और दूसरे को "5 साल अधिकतम" वेतन (स्तर 4) के 30% के साथ नौकरी मिली। तो कम क्यों मिलता है? प्रोग्रामर्स की मांग ऑफ़र से अधिक है - जहां आपको कम भुगतान किया जाता है वहां काम पर न जाएं! निष्कर्ष 1: जावा डेवलपर्स (किसी भी अनुभव के साथ) के लिए औसत वेतन "5 वर्ष अधिकतम" वेतन का 40% -50% है। निष्कर्ष 2: यदि आप 1 और 2 स्तर की कंपनियों के लिए काम नहीं करते हैं, और कंपनियों के स्तर 3 और 4 के लिए काम करते हैं, तो 5 साल में आपका औसत वेतन "5 साल के अधिकतम" वेतन का लगभग 90% -110% होगा।

आप तब तक क्या हासिल कर सकते हैं जब तक आप बेवकूफी भरे काम नहीं करते

यदि आप अभी प्रोग्रामिंग में अपनी स्व-शिक्षा पर काम करना शुरू करते हैं, तो आपका वेतन इस तरह दिख सकता है: पुराना स्तर 06 - 5

योजना

0-3 माह (छात्र)

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

3-15 महीने (जावा जूनियर डेवलपर)

आप पहले से ही एक सॉफ्टवेयर डेवलपर के रूप में काम करते हैं और आपका अनुभव प्रतिदिन बढ़ता है। आराम मत करो। ऊरों पर आराम करने से पहले आपको बहुत कुछ करना है। आपको क्या करने की आवश्यकता है - उन तकनीकों का अध्ययन करें जिनकी आपको एक मध्य डेवलपर के रूप में आवश्यकता होगी। यह क्या हैं? दुनिया लगातार बदल रही है। मैं आपको सलाह से भर दूंगा और जीवन इसे बदल देगा। वेब पर कुछ रिक्तियों का पता लगाएं और देखें कि आपको आवेदन करने के लिए क्या चाहिए। ब्रूस एकेल की पुस्तक "थिंकिंग इन जावा" अवश्य पढ़ें। जावा जूनियर डेवलपर के रूप में काम करने के पहले वर्ष में आपका लक्ष्य जावा मध्य डेवलपर के स्तर तक पहुंचना है। कोई नहीं कहता कि यह आसान होगा, लेकिन एक लक्ष्य-उन्मुख व्यक्ति के लिए यह संभव है। यह आपके वेतन को तुरंत "5 साल के अधिकतम" (एसएफ और लंदन के लिए $50K, बैंगलोर के लिए $6K) के 40% तक बढ़ा देगा।

2-डी वर्ष प्रोग्रामिंग (जावा मध्य डेवलपर, स्तर 1)

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

3-डी वर्ष प्रोग्रामिंग (जावा मध्य डेवलपर, स्तर 2)

अब आप एक अनुभवी मिडिल डेवलपर हैं और आप सीनियर डेवलपर बनने के बारे में सोच रहे हैं। यह सुखद होने के साथ-साथ प्रतिष्ठित भी है। आपका वेतन "5 साल के अधिकतम" (बैंगलोर में $10K, कीव में $25K, बर्लिन में $40K, न्यूयॉर्क में $80K) के 60% से अधिक है। इस क्षण से आप जैसे पेशेवरों की मांग पर प्रस्ताव बढ़ जाता है। आप हमेशा एक दो दिनों में नौकरी पा सकेंगे और आप शायद ही कभी कम कमा पाएंगे जितना आप अभी कमाते हैं। बेशक, अगर आप कुछ भी बेवकूफी नहीं करते हैं। आपको क्या करना हैआपके द्वारा चुनी गई तकनीकों का अध्ययन करते रहें। अच्छा कार्य करता है। अपने मालिक के लिए नहीं, अपने लिए। होनहार तकनीकों से जुड़ी परियोजनाओं में भाग लेने के लिए आवेदन करें (जैसे बिगडाटा, इस समय यह लेख लिखा जा रहा है)। आप वैसे भी कार्यालय में दिन में 8 घंटे बिताएंगे, तो क्यों न इसके लिए थोड़ा और पैसा लिया जाए, और इससे भी महत्वपूर्ण, सबसे मूल्यवान अनुभव जिसकी आपको भविष्य में आवश्यकता होगी। आपका लक्ष्य एक नई नौकरी खोजना है। एक अच्छी टीम हमेशा मिलनी चाहिए। आप नई परियोजनाओं और तकनीकों का सामना करेंगे। आपको अपनी कुर्सी पर जड़ जमाने की जरूरत नहीं है। यदि आप अभी भी तीसरे स्तर की कंपनी में काम कर रहे हैं, तो चौथे स्तर की कंपनी में काम करने के बारे में सोचें।

5-वें वर्ष की प्रोग्रामिंग (जावा वरिष्ठ डेवलपर, स्तर 1

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

6-वें वर्ष की प्रोग्रामिंग (जावा वरिष्ठ डेवलपर, स्तर 2)

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

आप भविष्य की विशेषज्ञता

पुराना स्तर 06 - 7आप तकनीकी विशेषज्ञ (ऊपरी शाखा), प्रबंधन (निचली शाखा) या नियुक्त पेशेवर/स्वतंत्र सलाहकार (मध्यम शाखा) के रूप में विकसित हो सकते हैं। यह सब इस बात पर निर्भर करता है कि आप क्या पसंद करते हैं।

जावा डेवलपर का करियर

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

दो सौ वर्षीय डेवलपर

यदि आप प्रोग्रामिंग का सबसे अधिक आनंद लेते हैं, तो यह आपका तरीका है: वरिष्ठ डेवलपर, फिर टेक लीड डेवलपर और एक वास्तुकार। इस तरह आप एक डेवलपर के रूप में 50 साल या उससे अधिक समय तक काम कर सकते हैं। ज्यादातर मामलों में वरिष्ठ डेवलपर्स और टेक लीड डेवलपर्स का वेतन उनके प्रबंधकों से अधिक होता है। तो अपने पैसे का मूल्य प्राप्त करें।

प्रबंधक। आप भाग्यशाली हैं कि आप दूसरों की तरह नहीं हैं

आप दुश्मन के पास गए। मजाक था। यदि आप महान संगठन कौशल खोजते हैं, तो आपके तरीके हैं: टीम लीड, और फिर प्रोजेक्ट मैनेजर। यह आपको विभाग प्रमुख बनने और अपना खुद का व्यवसाय खोलने का मौका देगा। आप यही चाहते हैं, है ना?

घर वहां होता है जहां दिल होता है

पुराना स्तर 06 - 9यदि आपने पहले ही एक परिवार शुरू कर दिया है , तो, शायद, आप मजबूत अर्थव्यवस्था वाले देश में एक अच्छा और शांत जीवन चाहते हैं। शायद आप कनाडा, यूएसए, स्विट्जरलैंड या यहां तक ​​कि ऑस्ट्रेलिया जाने पर विचार करें। आपके पास उत्कृष्ट कौशल और मांग में पेशा है। आपको बर्तन धोने से शुरुआत नहीं करनी पड़ेगी। आप जावा वरिष्ठ डेवलपर के रूप में शुरुआत करेंगे। शायद खूब कमा रहे हैं। बुरा नहीं है, हा?

नेपल्स देखें और मरें नहीं।

आपका अभी तक कोई परिवार नहीं है और आप यात्रा करना पसंद करते हैं । ओडेस्क आपका सब कुछ है। एक ग्राहक खोजें, $20-$50 प्रति घंटे की दर से सहमत हों, अपने साथ एक लैपटॉप लें और जाएं! आपका वेतन दुनिया में कहीं भी रहने के लिए पर्याप्त होगा। क्यों न अपने सपनों को तुरंत साकार करना शुरू कर दें?

मैं प्रोग्राम नहीं करना चाहती, मैं एक लड़की हूं..

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

लेवल 6

पुराना स्तर 06 - 10

1 एली। वस्तु दृश्यता। व्यर्थ

- अरे, अमीगो! - हाय, एली! क्या आप आज मुझे कुछ दिलचस्प बताएंगे? - आज मैं आपको एक वस्तु के जीवनकाल के बारे में बताता हूँ । किसी वस्तु के बनने के बाद, यह तब तक मौजूद रहता है (रहता है) जब तक कि कम से कम एक चर अपने पते को संग्रहीत नहीं करता है (कम से कम एक वस्तु संदर्भ है)। यदि अब कोई संदर्भ नहीं है, तो वस्तु मर जाती है। उदाहरण: पुराना स्तर 06 - 11- वस्तु «बिल्ली टॉमी» केवल एक ही पंक्ति में मौजूद है जब से इसे बनाया गया है। अगली पंक्ति में, इसके संदर्भ को संग्रहीत करने वाले केवल वेरिएबल को शून्य पर सेट किया गया है और जावा वर्चुअल मशीन ऑब्जेक्ट को नष्ट कर देती है। - ऑब्जेक्ट «बिल्ली सैमी» इसके निर्माण के बाद चर कैट 1 में संग्रहीत किया जाता है। या, बल्कि, cat1 ऑब्जेक्ट के संदर्भ को संग्रहीत करता है। फिर इस संदर्भ के नीचे की कुछ पंक्तियों को वेरिएबल cat2 में कॉपी किया जाता है। उसके बाद किसी अन्य वस्तु का संदर्भ कैट 1 में संग्रहीत किया जाता है, और «कैट सैमी» का संदर्भ केवल कैट 2 में रहता है। अंत में, मुख्य विधि की अंतिम पंक्ति में, वस्तु का अंतिम संदर्भ शून्य पर सेट है। - वस्तु «बिल्ली मासी» केवल एक ही पंक्ति में मौजूद है जब से इसे बनाया गया है। अगली पंक्ति में चर cat2 को एक और मान दिया गया है और «cat Maisy» का संदर्भ खो गया है। वस्तु अगम्य हो जाती है और उसे कचरा (मृत) माना जाता है। - वस्तु «बिल्ली अदरक» उस क्षण से मौजूद है जब इसे विधि के अंत में बनाया गया है। रनटाइम पर जब विधि समाप्त हो जाती है, तो चर कैट 1 नष्ट हो जाएगा, और ऑब्जेक्ट «बिल्ली अदरक» के बाद भी नष्ट हो जाएगा। - यह स्पष्ट है। - हालाँकि, यदि आप किसी विधि में कैट ऑब्जेक्ट बनाते हैं और इसके संदर्भ को एक क्लास वेरिएबल में स्टोर करते हैं, तो कैट तब तक मौजूद रहेगा जब तक कि किसी अन्य मौजूदा ऑब्जेक्ट से इसका संदर्भ है। - आमतौर पर, कोई वस्तु तुरंत नष्ट नहीं होती है। अप्रयुक्त वस्तुओं को हटाने के लिए जावा वर्चुअल मशीन कभी-कभी कचरा संग्रह को सक्रिय करती है। मैं आपको उसके बारे में बाद में बताऊंगा। - यदि आप चाहते हैं कि कुछ चर किसी वस्तु संदर्भ को संग्रहीत करना बंद कर दें, तो आप इसे शून्य मान या किसी अन्य वस्तु के संदर्भ में निर्दिष्ट कर सकते हैं।

2 प्रोफेसर, कचरा संग्रह

पुराना स्तर 06 - 12- अरे, अमीगो! जावा में कचरा संग्रहण के बारे में यहां एक उपयोगी लिंक दिया गया है। यह निश्चित रूप से मेरा उत्कृष्ट व्याख्यान नहीं है, लेकिन यह काफी अच्छा है: Java Garbage Collection Basics

3 एली, अंतिम रूप दें

- फिर से हैलो! अब मैं आपको finalize() मेथड का एक संक्षिप्त परिचय देता हूँ । ऑब्जेक्ट नष्ट होने से पहले इस विधि को जावा वर्चुअल मशीन द्वारा ऑब्जेक्ट पर कॉल किया जाता है। वास्तव में, यह विधि कंस्ट्रक्टर के विपरीत है। इस पद्धति में किसी वस्तु द्वारा उपयोग किए गए संसाधनों को जारी करना संभव है। - क्लास ऑब्जेक्ट में यह विधि है, इसलिए, प्रत्येक वर्ग में यह है ( जावा में सभी वर्गों को क्लास ऑब्जेक्ट से विरासत में माना जाता है और इसकी विधियों की एक प्रति होती है )। यदि आप अपनी कक्षा में अंतिम रूप () विधि लिखते हैं और इस वर्ग की वस्तुओं के नष्ट होने से पहले इसे कॉल किया जाएगा। उदाहरण : पुराना स्तर 06 - 13- समझ गया। - लेकिन एक बात है। जावा वर्चुअल मशीन खुद तय करती है कि इस पद्धति को कॉल करना है या नहीं।अक्सर, विधि में बनाई गई वस्तुओं और इसके बाहर निकलने के बाद कचरा घोषित किया जाता है, तुरंत नष्ट कर दिया जाता है और अंतिम रूप से () विधि को कॉल किए बिना। यह विधि बाह्य (जेवीएम से बाहर) संसाधन आवंटन पर नियंत्रण का एक और साधन है। जब आप वस्तु को नष्ट करना चाहते हैं तो आप सभी उपयोग किए गए बाहरी संसाधनों को बेहतर ढंग से जारी कर सकते हैं और संग्रहीत संदर्भों को रीसेट कर सकते हैं। मैं आपको 10 या 20 स्तरों में इस पद्धति के फायदों और इसके कार्य के विवरण के बारे में बताऊंगा। इस बीच, आपको दो बातें पता होनी चाहिए: ऐसी विधि मौजूद है, और ( आश्चर्य! ) इसे हमेशा नहीं कहा जाता है।

4 एली, ऑब्जेक्ट लाइफटाइम

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

5 डिएगो, आजीवन कार्य वस्तु

- अरे, अमीगो! यहां आपके लिए कुछ कार्य दिए गए हैं:
कार्य
1 1. अंतिम रूप () बिल्ली वर्ग की विधि
एक विधि लिखें संरक्षित शून्य अंतिम रूप दें () कक्षा बिल्ली में थ्रोएबल फेंकता है
3 2. प्रत्येक वर्ग के लिए कैट एंड डॉग और फाइनलाइज () विधि
प्रत्येक कैट और डॉग क्लास में एक फाइनलाइज () विधि लिखती है, जो स्क्रीन पर एक संदेश प्रदर्शित करती है कि वस्तु नष्ट हो गई है।
3 3. कैट क्लास के 50,000 ऑब्जेक्ट और डॉग क्लास के 50,000 ऑब्जेक्ट
एक लूप में कैट क्लास के 50,000 ऑब्जेक्ट और डॉग क्लास के 50,000 ऑब्जेक्ट बनाएं। (जावा वर्चुअल मशीन अप्रयुक्त वस्तुओं को नष्ट कर देगी, इसलिए अंतिम विधि () को कम से कम एक बार बुलाया जाएगा)।
4 4. कैट क्लास कंस्ट्रक्टर [पब्लिक कैट ()] में कैट काउंटर
, कैट काउंटर (उसी क्लास का स्टैटिक वेरिएबल कैटकाउंट) को 1 से बढ़ाएं। मेथड फाइनलाइज () में 1 से घटाएं।

6 एली, स्टेटिक कक्षाएं और विधियां

- यहाँ एक नया दिलचस्प विषय है। मैं आपको स्टैटिक वेरिएबल्स और मेथड्स के बारे में बताना चाहता हूं। - ओह, मैंने पहले ही स्थैतिक चर के बारे में सुना है। मुझे लगता है कि स्थिर तरीकों के बारे में भी। लेकिन मैं और अधिक विवरण प्राप्त करना चाहता हूं। - एक वर्ग में चर घोषित करते समय, हम निर्दिष्ट करते हैं कि क्या ये चर एक ही साझा किए गए उदाहरण में बनाए गए हैं, या क्या प्रत्येक वस्तु के लिए उनकी प्रतियां बनाना आवश्यक है। डिफ़ॉल्ट रूप से, इस वर्ग के प्रत्येक ऑब्जेक्ट के लिए वर्ग चर की एक नई प्रति बनाई जाती है। यहाँ यह कैसा दिखता है: पुराना स्तर 06 - 14- हालांकि चर cat1.name और cat2.name एक ही वर्ग में घोषित किए गए हैं - बिल्ली, वे अलग-अलग मान संग्रहीत करते हैं, क्योंकि वे अलग-अलग वस्तुओं से बंधे होते हैं। - यह स्पष्ट है। - एक स्थिर चर एक उदाहरण में मौजूद है; आपको कक्षा के नाम का उपयोग करके इसे एक्सेस करने की आवश्यकता है: पुराना स्तर 06 - 15- यह भी स्पष्ट है। - क्लास मेथड्स को भी दो कैटेगरी में बांटा गया है। साधारण तरीकों को ऑब्जेक्ट पर कॉल किया जाता है और इस ऑब्जेक्ट के डेटा तक उनकी पहुंच होती है। स्टेटिक विधियों में ऐसी पहुंच नहीं है , क्योंकि उनके पास ऑब्जेक्ट संदर्भ नहीं है। स्थैतिक विधियाँ इस वर्ग के स्थिर चर या अन्य स्थिर विधियों तक पहुँचने में सक्षम हैं। - स्थैतिक विधियाँ गैर-स्थैतिक विधियों या गैर-स्थैतिक चरों तक नहीं पहुँच सकती हैं! - ऐसा किस लिए? - प्रत्येक साधारण वर्ग चर को एक वस्तु के अंदर रखा जाता है। कोई भी विधि ऐसे चर का उपयोग तभी कर सकती है जब उसके पास उस वस्तु का संदर्भ हो। इस तरह के संदर्भ स्थैतिक विधि को पारित नहीं किए जाते हैं। - साधारण तरीकों के बारे में क्या? - साधारण विधि के लिए वस्तु के छिपे हुए संदर्भ को पारित किया जाता है, इस विधि को कहा जाता है। इस संदर्भ को संग्रहीत करने वाले चर को यह कहा जाता है । इस प्रकार, विधि हमेशा अपनी वस्तु का डेटा प्राप्त कर सकती है या उसी वस्तु की दूसरी गैर-स्थैतिक विधि को कॉल कर सकती है। - ऑब्जेक्ट रेफरेंस के बजाय एक नल को स्टैटिक मेथड में पास किया जाता है। इसलिए, एक स्थैतिक विधि गैर स्थैतिक चर और विधियों तक नहीं पहुंच सकती है - इसमें केवल उस वस्तु का कोई संदर्भ नहीं है जिसके लिए वे बाध्य हैं। - अच्छा ऐसा है। - इस तरह सामान्य गैर-स्थैतिक तरीके काम करते हैं: पुराना स्तर 06 - 16- और इसी तरह स्थैतिक तरीके काम करते हैं: पुराना स्तर 06 - 17- एक चर या एक विधि स्थिर है यदि उन्हें कीवर्ड स्थिर के साथ घोषित किया जाता है। - और ऐसे तरीकों का क्या फायदा, अगर वे इतने सीमित हैं? - इस तरीके के अपने फायदे भी हैं। - सबसे पहले, आपको स्थैतिक विधियों और चरों तक पहुँचने के लिए किसी वस्तु संदर्भ को पारित करने की आवश्यकता नहीं है । - दूसरा, कभी-कभी यह आवश्यक होता है कि चर एक प्रकार का हो । जैसे, उदाहरण के लिए, वेरिएबल System.out (स्टेटिक वेरिएबल आउट ऑफ़ क्लास सिस्टम)। - और तीसरा, कभी-कभी इससे पहले कि आप कोई ऑब्जेक्ट बना सकें, किसी विधि को कॉल करना आवश्यक है- किस ख़ुशी में? - आपको क्यों लगता है कि विधि मुख्य को स्थिर घोषित किया गया है? किसी ऑब्जेक्ट को बनाने से पहले कक्षा को स्मृति में लोड करने के तुरंत बाद इसे कॉल करने के लिए ।

7 ऋषि, स्थिर वर्ग और विधियाँ

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

8 डिएगो, स्थिर विधि पर कार्य

- अरे, अमीगो! यहाँ स्थैतिक तरीकों पर कुछ दिलचस्प कार्य दिए गए हैं:
कार्य
1 1. क्लास कैट और स्टैटिक वेरिएबल कैटकाउंट क्लास कैट में एक स्टैटिक वेरिएबल इंट कैटकाउंट
लिखें । एक कंस्ट्रक्टर [ पब्लिक कैट () ] बनाएं, जिसमें दिए गए वेरिएबल को 1 से बढ़ाया जाना चाहिए।
2 2. स्टेटिक विधियाँ: int getCatCount() और setCatCount(int)
क्लास कैट में दो स्थिर विधियाँ जोड़ें: int getCatCount( ) और setCatCount(int) जिसके उपयोग से आप बिल्लियों की संख्या प्राप्त / बदल सकते हैं (चर कैटकाउंट)
3
3. एक स्थिर विधि डबल getDistance(X1, y1, x2, y2) को लागू करने के लिए उपयोग की जाने वाली कक्षा । इसे बिंदुओं के बीच की दूरी की गणना करनी चाहिए। पास किए गए पैरामीटर के वर्गमूल की गणना करने के लिए विधि डबल Math.sqrt(double a) का उपयोग करें
4 4. क्लास कंसोलरीडर
एक क्लास कंसोलरीडर लिखें, जिसमें 4 स्थिर विधियाँ होंगी:
- स्ट्रिंग रीडस्ट्रिंग () कीबोर्ड से स्ट्रिंग पढ़ने के लिए
- int readInt () कीबोर्ड से संख्याएँ पढ़ने के लिए
- डबल रीडडबल () कीबोर्ड से भिन्नात्मक संख्याएँ पढ़ने के लिए
- शून्य रीडएलएन () एंटर दबाने के लिए प्रतीक्षा करने के लिए [रीडस्ट्रिंग () का उपयोग करें]
5 5. वर्ग StringHelper
एक वर्ग StringHelper लिखें, जिसमें 2 स्थिर विधियाँ होंगी:
- स्ट्रिंग गुणा (स्ट्रिंग एस, इंट काउंट) को स्ट्रिंग के बार-बार गिनती के समय को वापस करना चाहिए।
- स्ट्रिंग गुणा (स्ट्रिंग एस) को स्ट्रिंग को 5 बार दोहराया जाना चाहिए।

उदाहरण:
एमिगो → एमिगोएमिगोएमिगोएमिगोएमिगोएमिगो

9 प्रोफेसर, ऑब्जेक्ट स्टेटिक स्कोप और लाइफटाइम

पुराना स्तर 06 - 19- मैं फिर से आ गया। दुर्भाग्य से, आज मैं आपको कोई लिंक नहीं दे सकता। वो महान व्याख्यान कहीं खो गए हैं। मुझे डर है कि आज आपको अपने दम पर करना होगा। लेकिन बेहतर होगा कि आप एली और रिशा की बात सुनें, वे आपको हमेशा कुछ न कुछ सिखा सकते हैं। फिर भी इसे आजमाएं: वस्तु जीवनचक्र

10 जूलियो

- अरे, अमीगो! आपने आज बहुत अच्छा काम किया। इसलिए मैं आपको और अधिक नहीं दे सकता। चलो, बैठो, शो शुरू होता है:

11 कप्तान गिलहरी

- हैलो, सिपाही! - सुप्रभात सर! - मेरे पास आपके लिए कुछ शानदार खबरें हैं। अपने कौशल को सुदृढ़ करने के लिए यहां एक त्वरित जांच है। इसे हर दिन करें, और आप अपने कौशल में तेजी से वृद्धि करेंगे। कार्य विशेष रूप से Intellij IDEA में करने के लिए डिज़ाइन किए गए हैं।
Intellij Idea में करने के लिए अतिरिक्त कार्य
1 क्लास कैट और स्टेटिक वेरिएबल कैटकाउंट क्लास कैट में एक स्टेटिक वेरिएबल पब्लिक इंट कैटकाउंट
लिखें । एक कंस्ट्रक्टर बनाएं [पब्लिक कैट ()]। हर बार जब आप एक बिल्ली (एक नई वस्तु बिल्ली) बनाते हैं, तो स्थिर चर कैटकाउंट को 1 से बढ़ने दें। 10 ऑब्जेक्ट बनाएं Cat और वेरिएबल catCount का मान प्रदर्शित करें ।
2 2. स्थिर बिल्लियाँ
  1. कैट क्लास में एक पब्लिक स्टैटिक वेरिएबल कैट्स (ArrayList<Cat>) जोड़ें।
  2. हर बार जब आप एक बिल्ली (एक नई वस्तु बिल्ली) बनाते हैं, तो इस नई बिल्ली को चर बिल्लियों में जोड़ दें । 10 वस्तुएँ बनाएँ बिल्ली।
  3. विधि PrintCats() को सभी बिल्लियों को प्रदर्शित करना चाहिए। आपको विधि में चर बिल्लियों का उपयोग करने की आवश्यकता है।
टिप: कैट
वैरिएबल बनाने के लिए कोड लाइन का उपयोग करें: public static ArrayList<Cat>cats = new ArrayList<Cat>();
3 3. एक स्टैटिक मॉडिफ़ायर ले जाएँ
एक स्टैटिक मॉडिफ़ायर ले जाएँ ताकि कोड कंपाइल हो जाए।
4 4. स्थिर खोजशब्दों की न्यूनतम संख्या कोड को संकलित करने और कार्यक्रम को सफलतापूर्वक पूरा करने के लिए स्थिर
खोजशब्दों की न्यूनतम संख्या जोड़ें ।
5 5. कोई नया विचार? हमें सोचना चाहिए...
  1. क्लास सॉल्यूशन में पब्लिक स्टैटिक क्लास आइडिया लिखें
  2. किसी भी गैर-खाली संदेश को वापस करने के लिए क्लास आइडिया में सार्वजनिक स्ट्रिंग getDescription () विधि लिखें
  3. क्लास सॉल्यूशन में विचार का विवरण प्रदर्शित करने के लिए एक स्थिर विधि public void PrintIdea(Idea Idea) बनाएं - यही विधि getDescription() रिटर्न देती है
6 6. KissMyShinyMetalAss
KissMyShinyMetalAss नामक एक वर्ग लिखें। इस वर्ग का एक ऑब्जेक्ट बनाएँ, फिर उसे स्क्रीन पर प्रदर्शित करें।
7 7. तीन स्थैतिक चर नाम
3 सार्वजनिक स्थिर चर लिखें: स्ट्रिंग Solution.name , स्ट्रिंग Cat.name , स्ट्रिंग Dog.name
टिप्पणियां
  • लोकप्रिय
  • नया
  • पुराना
टिप्पणी लिखने के लिए आपको साइन इन करना होगा
इस पेज पर अभी तक कोई टिप्पणियां नहीं हैं