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

एआरएम-जावा मध्ये स्वयंचलित संसाधन व्यवस्थापन

पूर्वी या गोष्टी किंवा संसाधन व्यवस्थापन प्राप्त आहे शेवटी}} पकडण्याचा {} प्रयत्न करत आहे आम्हाला ट्राय ब्लॉक և कॅचच्या बाहेर रिसोर्स व्हेरिएबल घोषित करावे लागेल किंवा शेवटी आम्ही या व्हेरिएबल्सचा वापर प्रोग्रामच्या सामान्य अंमलबजावणीसाठी करतो.


हे जेडीके 7 ट्यूटोरियल माझ्या मागील ट्यूटोरियलची सुरूवात आहे एकाधिक कॅशे वगळता JDK7 कूटबद्ध कसे करावे आणि JDK7 स्विचच्या बाबतीत स्ट्रिंग कसे वापरावे

JVK7 च्या आधी जावा मध्ये संसाधन व्यवस्थापनाचे उदाहरण

आम्ही कसे वागलो याचे एक उदाहरण येथे आहे संसाधन व्यवस्थापन आधी स्वयंचलित संसाधन व्यवस्थापन (एआरएम) कार्य उपलब्ध झाले आहे.

FileInputStream: stockQuoteReader:=: रिक्त;

FileOutputStream stockQuoteWriter =: रिक्त;

प्रयत्न {

stockQuoteReader =: नवीन: FileInputStream (“StockQuotes.txt”);

stockQuoteWriter =: नवीन: FileOutputStream (“StockQuotes.txt”);

s: कुठे;

दरम्यान: (var = stockQuoteReader.read ())! = -1)

stockQuoteWriter.write (var);

} शेवटी {

तर: (stockQuoteReader:! = =: रिक्त)

stockQuoteReader:.बंद ();

तर: (stockQuoteWriter:! = =: रिक्त)

stockQuoteWriter:.बंद ();

}

परंतु जावा 1.7 सह, आम्ही हे अगदी सहजपणे व्यवस्थापित करतो संसाधने रोखण्याचा प्रयत्न करतो जिथे आम्ही ही बाह्य संसाधने व्यवस्थापित करण्याचा प्रयत्न करतो.

स्वयंचलित संसाधन व्यवस्थापन (एआरएम) स्वाक्षरी

स्वाक्षरी: आहे: प्रयत्न करा (संसाधन 1; संसाधन 2) {अंतिम स्त्रोत नंतर; स्वल्पविरामाने परवानगी नाही ուրս स्त्रोत असे दिसले पाहिजे: var = अभिव्यक्ती प्रकार default सर्व डीफॉल्ट संसाधने अंतिम आहेत.

स्वयंचलित संसाधन व्यवस्थापनासाठी API मध्ये काय जोडले गेले आहे

java.lang.AutoCloseable:, इंटरफेस एका API मध्ये जोडला गेला आहे ज्यात एक पद्धत आहे बंद () थ्रो अपवाद हा इंटरफेस पालक आहे java.io.closeable: इंटरफेस, म्हणून सर्व इनपुट-आउटपुट साधने हे वैशिष्ट्य मिळवतात.

JDK7 मधील स्वयंचलित संसाधन व्यवस्थापन (ARM) चे उदाहरण

येथे एक आहे JDK 1.7 सह स्वयंचलित संसाधन व्यवस्थापनाचे उदाहरण स्रोत डेटाबेस: कृपया तुम्ही हे जावा सोर्स 1.7 सह चालवत असल्याची खात्री करा, अन्यथा तुम्हाला कॉन्फिगरेशन एरर मिळेल.

FileInputStream stockQuoteReader =: नवीन: FileInputStream (“StockQuotes.txt”);

FileOutputStream stockQuoteWriter =: नवीन: FileOutputStream (“StockQuotes.txt”)

) {

s: कुठे;

दरम्यान:((var = stockQuoteReader.read ())! = -1)

stockQuoteWriter.write ();

}

प्रयोगासाठी या कोडमध्ये, आम्ही दोन फाईल स्ट्रीम घोषित केले, त्यापैकी एक इनपुट फाइल आहे, जी आम्ही एका फाईलमधून वाचतो आणि दुसऱ्यावर लिहितो. संपूर्ण प्रक्रियेनंतर, दोन्ही प्रवाह आपोआप बंद होतील किंवा संकेतशब्द सामान्यपणे कार्यान्वित केला जाईल किंवा नाही, याचा अर्थ stockQuoteReader.close () և stockQuoteWriter.close () आपोआप म्हटले जाते, जे ARM चा सर्वोत्तम भाग आहे.


जर आपण याची तुलना पूर्वीच्या उदाहरणाशी केली तर इनपुट फाईल बंद करताना काही अपवाद उद्भवल्यास, म्हणजे stockQuoteReader.close () , stockQuoteWriter.close () आमचा कोड असामान्यपणे थांबवण्यासाठी कधीही अंमलात आणला जाणार नाही.

ARM वापरताना विचारात घेण्यासारखे काही महत्वाचे मुद्दे

संसाधन आम्ही वापरत असलेले कोणतेही संसाधन उपप्रकार असणे आवश्यक आहे ऑटोक्लोजेबल अन्यथा कॉन्फिगरेशन एरर मिळेल.

आम्ही वापरत असलेली संसाधने उलट क्रमाने बंद केली जातात, याचा अर्थ stockQuoteWriter.close () प्रथम कॉल केला जाईल, नंतर stockQuoteReader.close ().

एवढेच आहे जावा मध्ये एक नवीन स्वयंचलित संसाधन व्यवस्थापन (ARM) वैशिष्ट्य अपवादांची हाताळणी आणि कॅशे ब्लॉकवरील अनेक अपवादांच्या डुप्लीकेशनमुळे हे कोड गोंधळाचे निराकरण करते.

जावा मध्ये संबंधित शिकवण्या