जावा डेव्हलपरचा रोडमॅप
माझा एक मित्र विचार करत होता की विकासक नेहमी इतके आनंदी का असतात. तिने दिलेले उत्तर सोपे आणि आश्चर्यकारक होते: ते त्यांना जे आवडते ते करतात आणि मोठा पैसा कमावतात. सॉफ्टवेअर डेव्हलपरच्या जगात आपले स्वागत आहे.सॉफ्टवेअर डेव्हलपरचा पगार
मी तुम्हाला विकासकांच्या पगाराबद्दल सांगू इच्छितो. पगारासह जमीन कशी आहे, तुम्ही कुठे कामाला जावे आणि कुठे जाऊ नये. तुम्ही डेव्हलपर नसल्यास आणि ते स्वतःच सोडवण्याचा प्रयत्न करत असल्यास, तुम्हाला एक वादग्रस्त डेटा मिळू शकतो. मुख्य मुद्दा असा आहे की विकासकाच्या पगारावर परिणाम करणारा प्रमुख घटक पात्रता नसून नोकरीची जागा आहे. कधीकधी, समान पात्रता पातळी दिल्यास, नोकरीच्या चांगल्या आणि वाईट ठिकाणांमधील फरक 2 ते 10 पट असू शकतो(!) प्रत्येक दिलेल्या क्षणी तुमची पात्रता स्थिर असते. तुम्ही एका महिन्यात दुप्पट पात्र होऊ शकत नाही आणि दुप्पट पगार मिळवू शकत नाही. परंतु तुम्ही एका महिन्यात कामाचे ठिकाण बदलू शकता आणि दुप्पट मोठा पगार मिळवू शकता. एकदा दोन महिन्यांच्या प्रवाहात माझा पगार तीनने गुणाकार झाला (!) - अविस्मरणीय अनुभव. तर, कोणते ठिकाण सर्वोत्तम आहे ते शोधूया.- कंपनीचा मुख्य व्यवसाय सॉफ्टवेअर डेव्हलपमेंट आहे की नाही
- कंपनी जागतिक किंवा स्थानिक बाजारपेठेवर आधारित आहे का
- मुख्य कार्यालय कुठे आहे: विकसित देश किंवा विकसनशील देश
विशिष्ट संख्या
जगाच्या वेगवेगळ्या भागांमध्ये पगार वेगवेगळे असल्याने, मी 5 वर्षांचा अनुभव असलेल्या वरिष्ठ जावा डेव्हलपरचा पगार प्रारंभ बिंदू म्हणून घेण्याचा आणि त्याला “5 वर्ष कमाल” म्हणण्याचा प्रस्ताव देतो. खालील सर्व आकडे या रकमेची टक्केवारी म्हणून दिले जातील. जगातील विविध शहरांमधील “5 वर्षांच्या कमाल” पगाराची काही उदाहरणे येथे आहेत: 5 वर्षांचा अनुभव असलेला Java वरिष्ठ विकसक ज्या कंपनीसाठी काम करतो त्यानुसार किती कमाई करू शकतो हे खाली दर्शविले आहे: सध्याच्या परिस्थितीबद्दल सर्वात विचित्र गोष्ट काय आहे? सर्व प्रोग्रामरपैकी निम्मे 1 आणि 2 स्तरावरील कंपन्यांमध्ये काम करतात. तुम्हाला जाणून घ्यायचे आहे, पकड काय आहे? 3 आणि 4 स्तरावरील कंपन्यांमध्ये शेकडो रिक्त पदे आहेत. या कंपन्या तुम्हाला जास्त पगार आणि सामान्यत: चांगल्या कामाची परिस्थिती देऊ करण्यास इच्छुक आहेत. मला दोन जावा ज्युनियर माहित आहेत, त्यापैकी एकाला "5 वर्षांच्या कमाल" (लेव्हल 1 कंपनी) च्या 3% पगाराची नोकरी मिळाली आहे, आणि दुसर्याला "5 वर्षांच्या कमाल" पगाराच्या (लेव्हल 4) 30% सह नोकरी मिळाली आहे. मग कमी का मिळेल? प्रोग्रामरची मागणी ऑफरपेक्षा जास्त आहे – जिथे तुम्हाला कमी पगार मिळतो तिथे काम करू नका! निष्कर्ष 1: Java विकसकांसाठी सरासरी पगार (कोणत्याही अनुभवासह) "5 वर्षांच्या कमाल" पगाराच्या 40%-50% आहे. निष्कर्ष 2: तुमचा 5 वर्षातील सरासरी पगार "5 वर्षांच्या कमाल" पगाराच्या सुमारे 90%-110% असेल, जर तुम्ही 1 आणि 2 स्तरावरील कंपन्यांमध्ये काम करत नसाल आणि स्तर 3 आणि 4 कंपन्यांसाठी काम करत नसाल.आपण मूर्ख गोष्टी केल्याशिवाय आपण काय साध्य करू शकता
जर तुम्ही आत्ता प्रोग्रामिंगमध्ये तुमच्या स्व-शिक्षणावर काम करण्यास सुरुवात केली, तर तुमचा पगार यासारखा दिसू शकतो:योजना
0-3 महिना (विद्यार्थी)
तुम्हाला प्रोग्रामिंगबद्दल फार कमी माहिती आहे. तुम्ही प्राथमिक स्तरावर शाळेत किंवा महाविद्यालयात याचा अभ्यास केला असेल. तुम्हाला जावा कसा प्रोग्राम करायचा आणि शिकायचा आहे. तुमचे ध्येय जावा ज्युनियर डेव्हलपर म्हणून लेव्हल 3 किंवा वरच्या कंपनीत नोकरी मिळवणे आहे. योजनेच्या पहिल्या तीन महिन्यांसाठी तुम्हाला काहीही मिळणार नाही, कारण तुम्ही फक्त प्रोग्राम कसे करायचे ते शिकत आहात. परंतु आपण जितक्या लवकर प्रारंभ कराल तितके चांगले. सर्वोत्तम वेळ आता आहे. भविष्यात, जेव्हा तुमच्याकडे कुटुंब असेल आणि कर्जाचा भार असेल, तेव्हा पुन्हा पात्र ठरणे खूप कठीण जाईल. तुमची चूक सुधारण्यासाठी तुम्हाला किमान एक वर्षाच्या सामान्य आयुष्यासाठी पैसे बाजूला ठेवावे लागतील. मूर्ख चुका करू नका.3-15 महिना (जावा कनिष्ठ विकसक)
तुम्ही आधीच सॉफ्टवेअर डेव्हलपर म्हणून काम करता आणि तुमचा अनुभव दिवसेंदिवस वाढत जातो. आराम करू नका. ओअर्सवर विश्रांती घेण्यापूर्वी तुम्हाला बरेच काही करायचे आहे. तुम्हाला काय करण्याची आवश्यकता आहे – तुम्हाला मिडल डेव्हलपर म्हणून आवश्यक असलेल्या तंत्रज्ञानाचा अभ्यास करा. हे काय आहे? जग सतत बदलत असते. मी तुम्हाला सल्ले देईन आणि आयुष्य हे सर्व बदलेल. वेबवर काही रिक्त जागा शोधा आणि तुम्हाला काय अर्ज करण्याची आवश्यकता आहे ते पहा. ब्रूस एकेल यांचे “थिंकिंग इन जावा” हे पुस्तक जरूर वाचा. Java ज्युनियर डेव्हलपर म्हणून काम करण्याच्या पहिल्या वर्षातील तुमचे ध्येय जावा मिडल डेव्हलपरच्या पातळीवर पोहोचणे आहे. कोणीही असे म्हणत नाही की ते सोपे आहे, परंतु ध्येय-केंद्रित व्यक्तीसाठी हे शक्य आहे. यामुळे तुमचा पगार "5 वर्षाच्या कमाल" च्या 40% पर्यंत वाढेल (SF आणि लंडनसाठी $50K, बंगलोरसाठी $6K).२-दिवसीय प्रोग्रामिंग (जावा मिडल डेव्हलपर, स्तर १)
तुम्ही गेल्या वर्षी चांगले काम केले आहे आणि आता तुम्ही जावा मिडल डेव्हलपर आहात. वरिष्ठ जावा डेव्हलपरच्या पगाराच्या 50% मिळवून तुम्ही चांगले जगू शकता. तुम्हाला कामावर काही गंभीर कामे दिली जात आहेत आणि तुमचा अनुभव लक्षणीय वाढतो. तुम्ही दोन किंवा तीन वर्षांत Java वरिष्ठ विकसकाच्या पातळीवर पोहोचाल. घाई करण्याची गरज नाही. तरीही तुम्हाला पगारात मोठा वरचा भाग मिळणार नाही. तुम्हाला काय करायचे आहे ते म्हणजे डिझाइन पॅटर्न शिकणे, वाचा – McConnell's Code Complete. तुमच्या कोडची गुणवत्ता आणि कार्यसंघ कौशल्ये परिपूर्ण करा. संगणक प्रोग्रामिंगवर दर महिन्याला 1 पुस्तक वाचण्याचा नियम तयार करा. मग, 4 वर्षात तुम्ही बाकी सर्व पुस्तकांपेक्षा 50 पुस्तके अधिक हुशार व्हाल. ते पुढे ढकलू नका: तुम्हाला जास्त मोकळा वेळ मिळणार नाही, शिवाय, बहुधा तुम्ही कुटुंब सुरू कराल किंवा तुमच्याकडे असेल तर ते मोठे होईल. आपले ध्येयवरिष्ठ जावा डेव्हलपर म्हणून काही तंत्रज्ञानाची निवड करणे. तुम्ही ते सर्व शिकू शकत नाही, तुम्हाला माहिती आहे. आणि एकाच स्पेशलायझेशनमध्ये गुरू बनणे हा नेहमीच चांगला निर्णय असतो.3-डी-वर्ष प्रोग्रामिंग (जावा मिडल डेव्हलपर, स्तर 2)
तुम्ही आता अनुभवी मिडल डेव्हलपर आहात आणि तुम्ही सीनियर डेव्हलपर बनण्याचा विचार करत आहात. हे आनंददायी तसेच प्रतिष्ठित आहे. तुमचा पगार "5 वर्षाच्या कमाल" च्या 60% पेक्षा जास्त आहे (बंगलोरमध्ये $10K, कीवमध्ये $25K, बर्लिनमध्ये $40K, न्यूयॉर्कमध्ये $80K). या क्षणापासून तुमच्यासारख्या व्यावसायिकांच्या मागणीनुसार ऑफर वाढते. तुम्हाला नेहमी दोन दिवसांत नोकरी मिळू शकेल आणि तुम्ही आतापेक्षा कमी कमाई करू शकाल. ते, अर्थातच, आपण मूर्ख काहीही करत नाही तर. आपण काय करणे आवश्यक आहेतुम्ही निवडलेल्या तंत्रज्ञानाचा अभ्यास करत रहा. चांगले काम करा. तुमच्या मालकाच्या फायद्यासाठी नाही, तुमच्या स्वतःसाठी. आशादायक तंत्रज्ञानाचा समावेश असलेल्या प्रकल्पांमध्ये सहभागी होण्यासाठी अर्ज करा (जसे की बिगडेटा, या क्षणी हा लेख लिहिला जात आहे). तरीही तुम्ही दिवसाचे 8 तास ऑफिसमध्ये घालवाल, मग त्यासाठी थोडे अधिक पैसे का मिळवू नयेत, आणि त्याहूनही महत्त्वाचा, सर्वात मौल्यवान अनुभव तुम्हाला भविष्यात हवा आहे. नवीन नोकरी शोधणे हे तुमचे ध्येय आहे . एक चांगला संघ नेहमीच सापडतो. तुम्हाला नवीन प्रकल्प आणि तंत्रज्ञानाचा सामना करावा लागेल. तुम्हाला तुमच्या खुर्चीवर रुजण्याची गरज नाही. तुम्ही अजूनही तिसऱ्या स्तरावरील कंपनीत काम करत असल्यास, चौथ्या स्तरावर नोकरी करण्याचा विचार करा.5-व्या वर्षाचे प्रोग्रामिंग (जावा वरिष्ठ विकसक, स्तर 1
तुम्ही आता वरिष्ठ विकासक आहात. कदाचित, आपण ते पात्र नाही, आणि आपण ते वाटत. तरीही माझे अभिनंदन. तुम्ही आता तुमच्या पदासाठी पात्र आहात की नाही हे महत्त्वाचे नाही, भविष्यात तुम्ही त्यासाठी पात्र आहात हे महत्त्वाचे आहे. मला वाटते की तुम्ही सहमत असाल की चांगली नोकरी मिळवणे चांगले आहे आणि आवश्यक पातळीपर्यंत वाढल्यानंतर उलट. मला आशा आहे की तुम्ही महिन्यातून एक पुस्तक वाचण्याचा माझा सल्ला विसरला नसेल? कोणताही विद्यार्थी आता तुमच्या ज्ञानाचा आणि कौशल्यांचा हेवा करेल. अधिक स्पष्टपणे सांगायचे तर, तो त्यांच्यावर प्रार्थना करत असेल. फक्त याचा विचार करा: तुम्हाला गंभीर कमाई मिळाली आहे, "5 वर्षांच्या कमाल" पगाराच्या जवळपास 90%. तुम्ही कदाचित अजून तरुण आहात. जग तुझ्या पायाशी आहे. आपण काय करणे आवश्यक आहेतुम्ही निवडलेल्या तंत्रज्ञानाचे पुनर्मूल्यांकन करण्यासाठी. कदाचित, तुम्हाला स्पेशलायझेशन बदलण्याची गरज आहे. जग बदलले आहे, तंत्रज्ञान बदलले आहे आणि गेल्या दोन वर्षांत तुम्हाला बरेच ज्ञान मिळाले आहे. तुम्ही आता जे निवडता ते तुमच्यासाठी पुढील काही वर्षांसाठी हेडलाइन बनेल. तुमचे आवडते तंत्रज्ञान निवडण्याची वेळ आली आहे. तुमचे ध्येय तुमच्या वाढीची दिशा निवडणे आहे. ते पुष्कळ आहेत, कोणीही त्या सर्वांना नाव देऊ शकत नाही, परंतु तुमची निवड आत्ताच करावी लागेल. जर तुम्ही आज थोडासा बदल केला तर भविष्यात तुम्हाला मोठा बदल मिळेल.6-व्या वर्षाचे प्रोग्रामिंग (जावा वरिष्ठ विकसक, स्तर2)
तुम्ही तुमच्या भविष्याचा निर्णय घेतला आहे आणि तुमचे स्वप्न साकार करण्यासाठी तुम्ही काम करत आहात. पुढे जाण्याच्या इच्छेसह योग्यरित्या निवडलेली दिशा – आणि परिणाम लांब राहणार नाही. अभिनंदन. आणखी एका व्यक्तीने त्याचे स्वप्न पूर्ण केले हे पाहून मला आनंद झाला. एक गहन सत्य आहे. लोक बर्याचदा ते एका वर्षात काय साध्य करू शकतात याचा जास्त अंदाज घेतात आणि ते पाच वर्षांत काय करू शकतात हे कमी लेखतात. पाच वर्षे मागे पहा. असे आहे. अविचारी निर्णय टाळणे आणि आळशी होऊ नये यासाठी तुम्हाला काय करावे लागेल . दिशा निवडणे आणि पुढे जाणे हे आपले ध्येय आहे. की इथेच संपेल असे तुम्हाला वाटले? तुमची पदवी लक्षात ठेवा. तो शेवट नाही तर फक्त सुरुवात आहे.आपण भविष्यातील विशेषीकरण
तुम्ही तांत्रिक तज्ज्ञ (वरची शाखा), व्यवस्थापन (खालची शाखा) किंवा नियुक्त व्यावसायिक/स्वतंत्र सल्लागार (मध्यम शाखा) म्हणून वाढू शकता. हे सर्व आपण काय प्राधान्य देता यावर अवलंबून आहे.जावा डेव्हलपरची कारकीर्द
विकासकाची कारकीर्द इतरांपेक्षा वेगळी असते. चांगले पैसे कमवण्यासाठी तुम्हाला व्यवस्थापक बनण्याची गरज नाही. असे अनेकदा घडते की वरिष्ठ विकासक त्याच्या व्यवस्थापक-बॉसपेक्षा अधिक कमाई करतो. तुम्हाला जितका अधिक अनुभव मिळेल तितके तुमच्या बॉससोबतचे तुमचे कामकाजाचे नाते "बॉस-सॉर्डिनेट" वरून "स्टार आणि मॅनेजर" मध्ये बदलेल. विकसक प्रकल्प आणि रिक्त पदे निवडतात हे जाणूनदोनशे वर्षांचा विकासक
जर तुम्हाला सर्वात जास्त प्रोग्रामिंग आवडत असेल, तर हा तुमचा मार्ग आहे: वरिष्ठ विकसक, नंतर टेक लीड डेव्हलपर आणि आर्किटेक्ट. अशा प्रकारे तुम्ही डेव्हलपर म्हणून 50 वर्षे आणि त्याहून अधिक काळ काम करू शकता. बर्याच प्रकरणांमध्ये वरिष्ठ विकासक आणि टेक लीड डेव्हलपर्सचे पगार त्यांच्या व्यवस्थापकांपेक्षा जास्त असतात. त्यामुळे तुमच्या पैशाची किंमत मिळवा.व्यवस्थापक. तुम्ही भाग्यवान आहात की तुम्ही इतरांसारखे नाही
तू शत्रूकडे गेलास. फक्त गंमत करतोय. जर तुम्हाला उत्तम संस्था कौशल्ये सापडली, तर तुमचे मार्ग आहेत: टीम लीड आणि नंतर प्रोजेक्ट मॅनेजर. हे तुम्हाला विभागप्रमुख बनण्याची आणि तुमचा स्वतःचा व्यवसाय उघडण्याची संधी देईल. तुम्हाला तेच हवे आहे, नाही का?जिथे मन आहे तिथे घर आहे
जर तुम्ही आधीच कुटुंब सुरू केले असेल , तर, कदाचित, मजबूत अर्थशास्त्र असलेल्या देशात तुम्हाला चांगले आणि शांत जीवन हवे आहे. कदाचित तुम्ही कॅनडा, यूएसए, स्वित्झर्लंड किंवा अगदी ऑस्ट्रेलियाला जाण्याचा विचार कराल. आपल्याकडे उत्कृष्ट कौशल्ये आणि मागणी असलेला व्यवसाय आहे. तुम्हाला भांडी धुण्यापासून सुरुवात करावी लागणार नाही. तुम्ही जावा सीनियर डेव्हलपर म्हणून सुरुवात कराल. कदाचित, भरपूर कमाई. वाईट नाही, हा?नेपल्स पहा आणि मरणार नाही.
तुमचे अद्याप कुटुंब नाही आणि तुम्हाला प्रवास करणे आवडते . oDesk हे तुमचे सर्वस्व आहे. एक क्लायंट शोधा, प्रति तास $20-$50 च्या दराला सहमती द्या, तुमच्यासोबत लॅपटॉप घ्या आणि जा! तुमचा पगार जगात कुठेही राहण्यासाठी पुरेसा असेल. तुमची स्वप्ने लगेचच सत्यात उतरण्यास सुरुवात का करू नये?मला कार्यक्रम करायचा नाही, मी मुलगी आहे..
जर तुम्ही मुलगी असाल तर तुम्हाला प्रसूती रजा घ्यावी लागेल . हे एक लैंगिक विनोदासारखे वाटते, जे ते आहे. तरीही, त्यात बरेच सामान्य ज्ञान आहे. बहुधा, प्रसूती रजा घेतल्यास तुम्हाला प्रसूती रजेचे भरपूर पैसे मिळतील (उच्च सामाजिक संरक्षण असलेल्या देशांमध्ये). अशा काही कंपन्या आहेत ज्या काही पैसे देत नाहीत आणि अशा काही कंपन्या आहेत ज्या चांगले पैसे देतात. माझ्या एका विद्यार्थ्याला प्रसूती रजेवर जाताना वार्षिक पगाराचा एक तृतीयांश मिळाला. आणि हे 2009 च्या वसंत ऋतूमध्ये, रोजगाराच्या टाळेबंदी दरम्यान घडले. आणि दीड वर्षात तुम्ही परत येऊ शकता, किमान मध्यम विकसक म्हणून.स्तर 6
1 एली. ऑब्जेक्ट दृश्यमानता. निरर्थक
- अहो, अमिगो! - हाय, एली! आज मला काहीतरी मनोरंजक सांगाल का? - आज मी तुम्हाला वस्तूच्या आयुष्याविषयी सांगणार आहे . एखादी वस्तू तयार झाल्यानंतर, किमान एक व्हेरिएबल त्याचा पत्ता संग्रहित करेपर्यंत तो अस्तित्वात असतो (जिवंत असतो) (किमान एक ऑब्जेक्ट संदर्भ असतो). यापुढे कोणतेही संदर्भ नसल्यास, वस्तू मरते. उदाहरणे: - "मांजर टॉमी" ही वस्तू तयार झाल्यापासून फक्त एका ओळीत अस्तित्वात आहे. पुढच्या ओळीत, फक्त व्हेरिएबल त्याचा संदर्भ साठवून शून्य वर सेट केला जातो आणि Java आभासी मशीन ऑब्जेक्ट नष्ट करते. - वस्तु «मांजर सॅमी» त्याच्या निर्मिती नंतर व्हेरिएबल cat1 मध्ये संग्रहित आहे. किंवा, त्याऐवजी, cat1 ऑब्जेक्टचा संदर्भ संग्रहित करते. नंतर या संदर्भाच्या खाली काही ओळी कॅट2 व्हेरिएबलवर कॉपी केल्या आहेत. त्यानंतर दुसर्या ऑब्जेक्टचा संदर्भ cat1 मध्ये संग्रहित केला जातो आणि "cat Sammy" चा संदर्भ फक्त cat2 मध्येच राहतो. शेवटी, मेथड मेनच्या शेवटच्या ओळीत, ऑब्जेक्टचा शेवटचा संदर्भ शून्य वर सेट केला आहे. - "मांजर मेसी" ही वस्तू तयार झाल्यापासून फक्त एकाच ओळीत अस्तित्वात आहे. पुढील ओळीत cat2 व्हेरिएबलला दुसरे मूल्य दिले आहे आणि «cat Maisy» चा संदर्भ हरवला आहे. वस्तू अगम्य बनते आणि कचरा (मृत) समजली जाते. - "मांजर अदरक" ही वस्तू तयार केल्यापासून ते पद्धतच्या शेवटी अस्तित्वात आहे. रनटाइमच्या वेळी जेव्हा पद्धत बाहेर पडते तेव्हा कॅट1 व्हेरिएबल नष्ट होईल आणि ऑब्जेक्ट नंतर "मांजर आले" देखील नष्ट होईल. - हे स्पष्ट आहे. - तथापि, जर तुम्ही एखाद्या पद्धतीने Cat हा ऑब्जेक्ट तयार केला आणि त्याचा संदर्भ क्लास व्हेरिएबलमध्ये संग्रहित केला, तर Cat अस्तित्वात असेल जोपर्यंत दुसर्या अस्तित्वात असलेल्या ऑब्जेक्टचा संदर्भ असेल. - सहसा, एखादी वस्तू त्वरित नष्ट होत नाही. जावा व्हर्च्युअल मशीन अधूनमधून न वापरलेल्या वस्तू काढून टाकण्यासाठी कचरा संकलन सक्रिय करते. त्याबद्दल मी नंतर सांगेन. - जर तुम्हाला काही व्हेरिएबलने ऑब्जेक्टचा संदर्भ संग्रहित करणे थांबवायचे असेल, तर तुम्ही त्यास शून्य मूल्य किंवा दुसर्या ऑब्जेक्टचा संदर्भ देऊ शकता.2 प्राध्यापक, कचरा संकलन
- अहो, अमिगो! जावा मधील कचरा संकलनाबद्दल येथे एक उपयुक्त दुवा आहे. हे माझे उत्कृष्ट व्याख्यान नक्कीच नाही, परंतु ते पुरेसे चांगले आहे: Java Garbage Collection Basics3 एली, अंतिम करा
- हॅलो पुन्हा! आता मी तुम्हाला मेथड finalize() ची थोडक्यात ओळख करून देईन . ऑब्जेक्ट नष्ट होण्यापूर्वी ही पद्धत जावा व्हर्च्युअल मशीनद्वारे ऑब्जेक्टवर कॉल केली जाते. खरं तर, ही पद्धत कन्स्ट्रक्टरच्या विरुद्ध आहे. या पद्धतीमध्ये ऑब्जेक्टद्वारे वापरलेली संसाधने सोडणे शक्य आहे. - क्लास ऑब्जेक्टमध्ये ही पद्धत आहे, म्हणून, प्रत्येक क्लासमध्ये ती आहे ( Java मधील सर्व क्लास क्लास ऑब्जेक्ट कडून वारशाने मिळालेले मानले जातात आणि त्यांच्या पद्धतींची एक प्रत असते ). तुम्ही तुमच्या वर्गात finalize() पद्धत लिहिल्यास आणि या वर्गातील वस्तू नष्ट होण्यापूर्वी ती कॉल केली जाईल. उदाहरण: - समजले. - पण एक गोष्ट आहे. जावा व्हर्च्युअल मशीन ही पद्धत कॉल करायची की नाही हे स्वतः ठरवते.बर्याचदा, पद्धतीमध्ये तयार केलेल्या आणि बाहेर पडल्यानंतर कचरा म्हणून घोषित केलेल्या वस्तू, फायनलाइज() पद्धतीच्या कोणत्याही कॉलशिवाय तत्काळ नष्ट केल्या जातात. ही पद्धत बाह्य (JVM मधून) संसाधन वाटपावर नियंत्रण ठेवण्याचे आणखी एक साधन आहे. जेव्हा तुम्हाला ऑब्जेक्ट नष्ट करायचा असेल तेव्हा तुम्ही सर्व वापरलेली बाह्य संसाधने सोडून द्याल आणि संग्रहित संदर्भ रीसेट कराल. मी तुम्हाला या पद्धतीच्या फायद्यांबद्दल आणि 10 किंवा 20 स्तरांमध्ये त्याच्या कार्याचे तपशील सांगेन. दरम्यान, तुम्हाला दोन गोष्टी माहित असाव्यात: अशी पद्धत अस्तित्त्वात आहे, आणि ( आश्चर्यचकित! ) हे नेहमी म्हटले जात नाही.4 एली, ऑब्जेक्ट आजीवन
- मला तुम्हाला ऑब्जेक्ट लाइफटाईमबद्दल काही मनोरंजक गोष्टी सांगायच्या आहेत. Java मध्ये, अपघाताने वस्तू गमावणे खूप कठीण आहे; जर तुमच्याकडे एखाद्या वस्तूचा संदर्भ असेल तर याचा अर्थ ती वस्तू नक्कीच जिवंत आहे. - ऑब्जेक्ट रेफरन्सच्या आत मेमरीमध्ये या ऑब्जेक्टचा नंबर - पत्ता संग्रहित करतो. तुम्ही ती संख्या बदलू शकत नाही, वाढवू किंवा कमी करू शकत नाही. तुमच्याकडे फक्त मेमरीमध्ये पत्ता असेल तेव्हा तुम्ही संदर्भ तयार करू शकत नाही. तुम्ही फक्त नवीन ऑब्जेक्ट तयार करू शकता आणि त्याचा संदर्भ व्हेरिएबलला देऊ शकता. नवीन संदर्भ मिळविण्याचा हा एकमेव मार्ग आहे. - मी पाहतो. म्हणजेच, जर मी सर्व ऑब्जेक्ट संदर्भ शून्य (मिटवा) वर सेट केले, तर मला कधीही ऑब्जेक्ट संदर्भ मिळणार नाही आणि त्यात प्रवेश होणार नाही? - होय. परंतु बर्याचदा उलट सत्य असते - तेथे बर्याच जिवंत वस्तू न वापरलेल्या असतात.बर्याच प्रोग्राम्स डझनभर ऑब्जेक्ट्स तयार करतात आणि रनटाइमच्या वेळी वेगवेगळ्या सूचींमध्ये संग्रहित करतात, परंतु त्या सूची कधीही साफ करत नाहीत. - बहुधा, प्रोग्रामर नको असलेल्या वस्तूंना “हटवलेले” असे लेबल करतात, इतकेच. त्यांना यादीतून काढून टाकण्याची पर्वा कोणीही करत नाही. त्यामुळे मोठ्या जावा प्रोग्राम्स फुगवतात - अधिकाधिक न वापरलेल्या वस्तू मेमरीमध्ये जिवंत राहतात. - एवढेच. भविष्यात मी नेहमी तुमचे लक्ष न वापरलेल्या वस्तू आणि त्यांची योग्य विल्हेवाट याकडे वेधून घेईन. - ओके, धन्यवाद. तुम्ही संदर्भांबद्दल काही गोष्टी स्पष्ट केल्या आहेत.5 डिएगो, आजीवन कार्ये ऑब्जेक्ट करा
- अहो, अमिगो! तुमच्यासाठी ही काही कार्ये आहेत:कार्ये | |
---|---|
१ | 1. मांजर वर्गाची अंतिम () पद्धत मांजर वर्गात फेकता येण्याजोगी पद्धत संरक्षित शून्य अंतिम () फेकणे लिहा |
3 | 2. प्रत्येक वर्गासाठी मांजर आणि कुत्रा वर्ग आणि अंतिम () पद्धत प्रत्येक मांजर आणि कुत्र्याच्या वर्गात फायनलाइज() पद्धत लिहा, जी स्क्रीनवर ऑब्जेक्ट नष्ट झाल्याचा संदेश दाखवते. |
3 | 3. कॅट क्लासचे 50,000 ऑब्जेक्ट्स आणि डॉग क्लासचे 50,000 ऑब्जेक्ट्स लूपमध्ये तयार करा मांजरी क्लासचे 50,000 ऑब्जेक्ट्स आणि डॉग क्लासचे 50,000 ऑब्जेक्ट्स. (जावा व्हर्च्युअल मशीन न वापरलेल्या वस्तू नष्ट करेल, म्हणून मेथड finalize() ला किमान एकदा कॉल केला जाईल). |
4 | 4. कॅट काउंटर कॅट क्लास कन्स्ट्रक्टर [पब्लिक कॅट()] मध्ये, कॅट काउंटर (समान क्लासचे स्टॅटिक व्हेरिएबल कॅटकाउंट) 1 ने वाढवा. मेथड finalize() मध्ये 1 ने कमी करा. |
6 एली, स्थिर वर्ग आणि पद्धती
- येथे एक नवीन मनोरंजक विषय आहे. मला तुम्हाला स्टॅटिक व्हेरिएबल्स आणि पद्धतींबद्दल सांगायचे आहे. - अरे, मी आधीच स्टॅटिक व्हेरिएबल्सबद्दल ऐकले आहे. स्टॅटिक पद्धतींबद्दलही, मला वाटते. पण मला अधिक तपशील हवा आहे. - क्लासमध्ये व्हेरिएबल्स घोषित करताना, हे व्हेरिएबल्स एकाच सामायिक उदाहरणामध्ये तयार केले आहेत की नाही किंवा प्रत्येक ऑब्जेक्टसाठी त्यांच्या प्रती तयार करणे आवश्यक आहे की नाही हे आम्ही निर्दिष्ट करतो. डीफॉल्टनुसार, या वर्गाच्या प्रत्येक ऑब्जेक्टसाठी क्लास व्हेरिएबलची नवीन प्रत तयार केली जाते. ते कसे दिसते ते येथे आहे: - जरी cat1.name आणि cat2.name हे व्हेरिएबल्स एकाच वर्गात घोषित केले गेले असले तरी - Cat, ते भिन्न मूल्ये साठवतात, कारण ते वेगवेगळ्या वस्तूंना बांधलेले असतात. - हे स्पष्ट आहे. - एक स्टॅटिक व्हेरिएबल एकाच प्रसंगात अस्तित्वात आहे; तुम्हाला वर्गाचे नाव वापरून त्यात प्रवेश करणे आवश्यक आहे: - हे देखील स्पष्ट आहे. - वर्ग पद्धती देखील दोन श्रेणींमध्ये विभागल्या आहेत. ऑब्जेक्टवर सामान्य पद्धती कॉल केल्या जातात आणि या ऑब्जेक्टच्या डेटामध्ये प्रवेश असतो. स्थिर पद्धतींना असा प्रवेश नाही , कारण त्यांच्याकडे फक्त ऑब्जेक्ट संदर्भ नाही. स्टॅटिक पद्धती या वर्गाच्या स्टॅटिक व्हेरिएबल किंवा इतर स्टॅटिक पद्धतींमध्ये प्रवेश करू शकतात. - स्टॅटिक पद्धती नॉन-स्टॅटिक पद्धती किंवा नॉन-स्टॅटिक व्हेरिएबल्समध्ये प्रवेश करू शकत नाहीत! - असे का? - प्रत्येक सामान्य वर्ग व्हेरिएबल ऑब्जेक्टच्या आत ठेवलेले असते. कोणतीही पद्धत अशा व्हेरिएबलमध्ये फक्त त्या ऑब्जेक्टचा संदर्भ असेल तेव्हाच प्रवेश करू शकते. असा संदर्भ स्टॅटिक पद्धतीकडे पाठवला जात नाही. - सामान्य पद्धतींचे काय? - सामान्य पद्धतीला ऑब्जेक्टचा छुपा संदर्भ पास केला जातो ज्याला ही पद्धत म्हणतात. हा संदर्भ संचयित करणार्या व्हेरिएबलला हे म्हणतात . अशा प्रकारे, पद्धत नेहमी स्वतःच्या ऑब्जेक्टचा डेटा मिळवू शकते किंवा त्याच ऑब्जेक्टची दुसरी नॉन-स्टॅटिक पद्धत कॉल करू शकते. - ऑब्जेक्ट संदर्भाऐवजी एक शून्य स्थिर पद्धतीवर पास केला जातो. म्हणून, एक स्थिर पद्धत नॉन-स्टॅटिक व्हेरिएबल्स आणि पद्धतींमध्ये प्रवेश करू शकत नाही - त्यास ते बांधील असलेल्या ऑब्जेक्टचा संदर्भ नाही. - मी पाहतो. - अशा प्रकारे सामान्य नॉन-स्टॅटिक पद्धती कार्य करतात: - आणि अशा प्रकारे स्टॅटिक पद्धती कार्य करतात: - व्हेरिएबल किंवा पद्धत स्थिर असते जर ते स्थिर कीवर्डसह घोषित केले गेले. - आणि अशा पद्धतींचा फायदा काय आहे, जर ते इतके मर्यादित असतील तर? - या दृष्टिकोनाचे त्याचे फायदे देखील आहेत. - प्रथम, तुम्हाला स्टॅटिक पद्धती आणि व्हेरिएबल्समध्ये प्रवेश करण्यासाठी कोणताही ऑब्जेक्ट संदर्भ पास करण्याची आवश्यकता नाही . - दुसरे, काहीवेळा हे आवश्यक असते की व्हेरिएबल एक-एक-प्रकारचे आहे . जसे, उदाहरणार्थ, व्हेरिएबल System.out (वर्ग प्रणालीच्या बाहेरील स्थिर चल). - आणि तिसरे, काहीवेळा तुम्ही कोणतीही वस्तू तयार करण्यास सक्षम होण्यापूर्वी पद्धत कॉल करणे आवश्यक आहे . - कोणत्या प्रसंगी? - तुम्हाला मुख्य पद्धत स्थिर का घोषित केली आहे असे वाटते? कोणतीही वस्तू तयार करणे शक्य होण्यापूर्वी क्लास मेमरीमध्ये लोड झाल्यानंतर लगेच कॉल करण्यासाठी .7 रिशा, स्थिर वर्ग आणि पद्धती
- स्थिर पद्धतींव्यतिरिक्त स्थिर वर्ग देखील आहेत . आम्ही या प्रकरणाचा नंतर विचार करू, मी तुम्हाला त्याचे एक उदाहरण दाखवणार आहे: - तुम्ही तुमच्या इच्छेनुसार कॅटच्या वर्गातील अनेक वस्तू तयार करू शकता. स्टॅटिक व्हेरिएबलच्या विपरीत, जे एकाच प्रसंगात अस्तित्वात आहे. - क्लास डिक्लेरेशनच्या आधी मॉडिफायर स्टॅटिकचा मुख्य उद्देश वर्ग Cat आणि क्लास StaticClassExample यांच्यातील संबंध राखणे हा आहे . सर्वसाधारणपणे, क्लास कॅट StaticClassExample ऑब्जेक्टशी बांधील नाही (लपलेला संदर्भ नाही) आणि सामान्य (नॉन-स्टॅटिक) StaticClassExample व्हेरिएबल्समध्ये प्रवेश करू शकत नाही. - तर मी इतर वर्गांमध्ये वर्ग तयार करू शकतो? - होय. Java हे शक्य करते. आता याचा जास्त विचार करू नका. नंतर मी इतर काही गोष्टी समजावून सांगेन, आणि सर्व काही थोडे सोपे होईल. - मला अशी आशा आहे.8 डिएगो, स्टॅटिक पद्धतीवर कार्ये
- अहो, अमिगो! येथे स्थिर पद्धतींवरील काही मनोरंजक कार्ये आहेत:कार्ये | |
१ | 1. क्लास कॅट आणि स्टॅटिक व्हेरिएबल catCount कॅट क्लासमध्ये स्टॅटिक व्हेरिएबल int catCount लिहा. कन्स्ट्रक्टर [ सार्वजनिक कॅट() ] तयार करा, ज्यामध्ये दिलेले व्हेरिएबल 1 ने वाढवले पाहिजे. |
2 | 2. स्थिर पद्धती: int getCatCount() आणि setCatCount(int) Cat या वर्गात दोन स्थिर पद्धती जोडा: int getCatCount( ) आणि setCatCount(int) ज्याचा वापर करून तुम्ही मांजरींची संख्या मिळवू/बदलू शकता (व्हेरिएबल catCount) |
3 | 3. क्लास Util एक स्थिर पद्धत लागू करा दुहेरी getDistance(x1, y1, x2, y2) . त्याने बिंदूंमधील अंतर मोजले पाहिजे. उत्तीर्ण केलेल्या पॅरामीटरचे वर्गमूळ काढण्यासाठी दुहेरी Math.sqrt(डबल ए) पद्धत वापरा |
4 | 4. Class ConsoleReader क्लास ConsoleReader लिहा, ज्यामध्ये 4 स्टॅटिक पद्धती असतील: - कीबोर्डवरील स्ट्रिंग्स वाचण्यासाठी स्ट्रिंग readString() - कीबोर्डवरून संख्या वाचण्यासाठी int readInt() - कीबोर्डवरील अपूर्णांक वाचण्यासाठी दुहेरी readDouble() - void readLn () एंटर दाबण्याची प्रतीक्षा करण्यासाठी [वापरवा readString()] |
५ | 5. क्लास स्ट्रिंगहेल्पर क्लास स्ट्रिंगहेल्पर लिहा, ज्यामध्ये 2 स्टॅटिक पद्धती असतील: - स्ट्रिंग गुणाकार (स्ट्रिंग s, इंट काउंट) स्ट्रिंगच्या पुनरावृत्ती झालेल्या मोजणी वेळा परत करा. - स्ट्रिंग गुणाकार (स्ट्रिंग s) ने स्ट्रिंग 5 वेळा पुनरावृत्ती केली पाहिजे. उदाहरण: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 प्रोफेसर, ऑब्जेक्ट स्टॅटिक स्कोप आणि आजीवन
- तो मी पुन्हा आहे. दुर्दैवाने, आज मी तुम्हाला कोणतीही लिंक देऊ शकत नाही. ती उत्तम व्याख्याने कुठेतरी हरवली आहेत. मला आज भीती वाटते की तुला स्वतःहून करावे लागेल. पण तुम्ही एली आणि रिशाचे अधिक ऐका, ते तुम्हाला नेहमी काहीतरी शिकवू शकतात. तरीही हे करून पहा: ऑब्जेक्ट लाइफसायकल10 ज्युलिओ
- अहो, अमिगो! तुम्ही आज खूप छान काम केले. म्हणूनच मी तुम्हाला अधिक देऊ शकत नाही. चला, बसा, शो सुरू होतो:11 कॅप्टन गिलहरी
- हॅलो, सैनिक! - शुभ प्रभात गुरूजी! - माझ्याकडे तुमच्यासाठी काही चांगली बातमी आहे. तुमची कौशल्ये बळकट करण्यासाठी येथे एक द्रुत तपासणी आहे. ते दररोज करा आणि तुम्ही तुमची कौशल्ये झटपट वाढवाल. Intellij IDEA मध्ये कार्ये विशेषत: करण्यासाठी डिझाइन केलेली आहेत.Intellij Idea मध्ये करायची अतिरिक्त कामे | |
---|---|
१ | क्लास कॅट आणि स्टॅटिक व्हेरिएबल catCount क्लास कॅटमध्ये स्टॅटिक व्हेरिएबल पब्लिक इंट catCount लिहा. कन्स्ट्रक्टर [सार्वजनिक मांजर()] तयार करा. प्रत्येक वेळी तुम्ही मांजर (नवीन ऑब्जेक्ट कॅट) तयार करता तेव्हा स्टॅटिक व्हेरिएबल catCount 1 ने वाढू द्या. 10 ऑब्जेक्ट्स Cat तयार करा आणि catCount व्हेरिएबलचे मूल्य प्रदर्शित करा . |
2 | 2. स्थिर मांजरी
व्हेरिएबल तयार करण्यासाठी कोड लाइन वापरा: सार्वजनिक स्थिर ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. एक स्थिर सुधारक हलवा एक स्थिर सुधारक हलवा जेणेकरून कोड संकलित होईल. |
4 | 4. स्थिर कीवर्डची किमान संख्या कोड संकलित करण्यासाठी आणि प्रोग्राम यशस्वीरित्या पूर्ण करण्यासाठी स्थिर कीवर्डची किमान संख्या जोडा . |
५ | 5. काही नवीन कल्पना? चला विचार करूया...
|
6 | 6. KissMyShinyMetalAss KissMyShinyMetalAss नावाचा वर्ग लिहा. या वर्गाचा एक ऑब्जेक्ट तयार करा, नंतर तो स्क्रीनवर प्रदर्शित करा. |
७ | 7. तीन स्टॅटिक व्हेरिएबल्सचे नाव 3 सार्वजनिक स्टॅटिक व्हेरिएबल्स लिहा: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION