जावा में, क्या प्रयोजन कीवर्ड करना final
, finally
और finalize
पूरा?
जावा में, क्या प्रयोजन कीवर्ड करना final
, finally
और finalize
पूरा?
जवाबों:
final
एक चर "अपरिवर्तनीय" को चिह्नित करने के लिए इस्तेमाल किया जा सकता है
private final String name = "foo"; //the reference name can never change
final
एक विधि भी नहीं बना सकते हैं "overrideable"
public final String toString() { return "NULL"; }
final
एक वर्ग को "अंतर्निहित" भी नहीं बना सकता है। अर्थात वर्ग को उपवर्गित नहीं किया जा सकता है।
public final class finalClass {...}
public class classNotAllowed extends finalClass {...} // Not allowed
finally
कोड "हमेशा" निष्पादित करने के लिए एक कोशिश / पकड़ने के बयान में प्रयोग किया जाता है
lock.lock();
try {
//do stuff
} catch (SomeException se) {
//handle se
} finally {
lock.unlock(); //always executed, even if Exception or Error or se
}
जावा 7 में संसाधनों के बयान के साथ एक नया प्रयास है जिसे आप स्वचालित रूप से संसाधनों को बंद करने के लिए उपयोग कर सकते हैं जो स्पष्ट रूप से या स्पष्ट रूप से java.io.Closeable या java.lang.AutoCloseable को लागू कर सकते हैं
finalize
कहा जाता है जब एक वस्तु कचरा एकत्र किया जाता है। आपको शायद ही कभी इसे ओवरराइड करने की आवश्यकता है। एक उदाहरण:
protected void finalize() {
//free resources (e.g. unallocate memory)
super.finalize();
}
Object#finalize()
विधि जावा 9 (में पदावनत किया गया था JDK-8,165,641 )।
अंतिम कीवर्ड का उपयोग स्थिरांक घोषित करने के लिए किया जाता है।
final int FILE_TYPE = 3;
अंततः कीवर्ड का उपयोग कोड के एक खंड को निर्दिष्ट करने के लिए एक फेक कैच स्टेटमेंट में किया जाता है, भले ही फेक अपवादों की परवाह किए बिना निष्पादित करने के लिए।
try
{
//stuff
}
catch(Exception e)
{
//do stuff
}
finally
{
//this is always run
}
और अंत में (हाहा), अंतिम रूप से पूरी तरह सुनिश्चित नहीं है कि एक कीवर्ड है, लेकिन ऑब्जेक्ट क्लास में एक अंतिम रूप () फ़ंक्शन है।
http://allu.wordpress.com/2006/11/08/difference-between-final-finally-and-finalize/
अंतिम - निरंतर घोषणा।
अंत में - अंततः ब्लॉक हमेशा निष्पादित होता है जब सिस्टम ब्लॉक बाहर निकलता है, सिवाय System.exit (0) कॉल के। यह सुनिश्चित करता है कि अंत में ब्लॉक निष्पादित किया जाता है भले ही एक अप्रत्याशित अपवाद हो। लेकिन अंत में अपवाद अपवाद से अधिक के लिए उपयोगी है - यह प्रोग्रामर को गलती से वापसी, जारी रखने या तोड़ने के द्वारा बाईपास किए गए सफाई कोड से बचने की अनुमति देता है। अंत में ब्लॉक में सफाई कोड डालना हमेशा एक अच्छा अभ्यास होता है, तब भी जब कोई अपवाद प्रत्याशित न हो।
अंतिम रूप () - विधि कचरा संग्रहण में मदद करती है। कचरा कलेक्टर द्वारा किसी वस्तु को त्यागने से पहले एक विधि को लागू किया जाता है, जिससे वह अपने राज्य को साफ कर सकता है। गैर-स्मृति संसाधनों जैसे फ़ाइल हैंडल, सॉकेट, डेटाबेस कनेक्शन आदि को जारी करने के लिए उपयोग नहीं किया जाना चाहिए क्योंकि जावा में इन संसाधनों की केवल एक सीमित संख्या है और आपको पता नहीं है कि इन गैर-स्मृति संसाधनों को जारी करने के लिए कचरा संग्रह कब किक करने जा रहा है अंतिम रूप () विधि के माध्यम से।
क्या आपने Google पर खोज करने का प्रयास किया, और स्पष्टीकरण के लिए स्पष्टीकरण की आवश्यकता है?
अंतिम: अंतिम एक कीवर्ड है। अंतिम रूप में घोषित चर को केवल एक बार आरंभ किया जाना चाहिए और इसे बदला नहीं जा सकता है। अंतिम के रूप में घोषित जावा कक्षाओं को बढ़ाया नहीं जा सकता। अंतिम घोषित की गई विधियों को ओवरराइड नहीं किया जा सकता है।
अंत में: अंत में एक ब्लॉक है। अंततः ब्लॉक हमेशा निष्पादित होता है जब कोशिश ब्लॉक से बाहर निकलता है। यह सुनिश्चित करता है कि अंत में ब्लॉक को निष्पादित किया जाता है, भले ही एक अप्रत्याशित अपवाद हो। लेकिन अंत में अपवाद अपवाद से अधिक के लिए उपयोगी है - यह प्रोग्रामर को गलती से वापसी, जारी रखने या तोड़ने के द्वारा बाईपास किए गए सफाई कोड से बचने की अनुमति देता है। अंत में ब्लॉक में सफाई कोड डालना हमेशा एक अच्छा अभ्यास होता है, तब भी जब कोई अपवाद प्रत्याशित न हो।
अंतिम रूप देना: अंतिम रूप देना एक विधि है। किसी वस्तु को कचरा एकत्र करने से पहले, रनटाइम सिस्टम उसकी अंतिम () विधि कहता है। कचरा एकत्र होने से पहले आप सिस्टम रिसोर्स रिलीज़ कोड को अंतिम रूप () विधि में लिख सकते हैं।
1. फाइनल • फाइनल का इस्तेमाल क्लास, मेथड और वेरिएबल पर प्रतिबंध लगाने के लिए किया जाता है। • अंतिम वर्ग को विरासत में नहीं दिया जा सकता है, अंतिम विधि को ओवरराइड नहीं किया जा सकता है और अंतिम चर मूल्य को नहीं बदला जा सकता है। • अंतिम चर को निर्माण के समय प्रारंभिक अंतिम चर के मामले में छोड़ दिया जाता है जो कंस्ट्रक्टर में आरंभीकृत होता है। • फाइनल एक कीवर्ड है।
2. अंत में - अंत में कोशिश और पकड़ने के साथ अपवाद हैंडलिंग के लिए उपयोग किया जाता है। • यह निष्पादित किया जाएगा कि अपवाद को संभाला गया है या नहीं। • इस ब्लॉक का उपयोग डेटाबेस कनेक्शन, I / O संसाधनों जैसे संसाधनों को बंद करने के लिए किया जाता है। • अंत में एक ब्लॉक है।
3. अंतिम रूप • सफाई प्रक्रिया को पूरा करने के लिए पात्र वस्तुओं को इकट्ठा करने से पहले कचरा संग्रह थ्रेड द्वारा अंतिम रूप दिया जाता है। • किसी भी सफाई को करने के लिए वस्तु के लिए यह अंतिम मौका है, लेकिन चूंकि यह गारंटी नहीं है कि अंतिम रूप से () कहा जाएगा, अंतिम कॉल तक संसाधन रखने के लिए इसका बुरा अभ्यास। • अंतिम रूप एक विधि है।
जावा में अंतिम का अर्थ है: -एक चर के लिए लागू का मतलब है कि संबंधित चर एक बार शुरू होने के बाद अब संशोधित नहीं किया जा सकता है
private final double numer = 12;
यदि आप इस मान को संशोधित करने का प्रयास करते हैं, तो आपको एक त्रुटि मिलेगी।
-एक विधि के लिए लागू का मतलब है कि संबंधित विधि को ओवरराइड नहीं किया जा सकता है
public final void displayMsg()
{
System.out.println("I'm in Base class - displayMsg()");
}
लेकिन अंतिम विधि विरासत में मिल सकती है क्योंकि अंतिम कीवर्ड विधि के पुनर्निर्धारण को प्रतिबंधित करता है।
एक वर्ग के लिए लागू का मतलब है कि संबंधित वर्ग को बढ़ाया नहीं जा सकता है।
class Base
{
public void displayMsg()
{
System.out.println("I'm in Base class - displayMsg()");
}
}
अंत में अर्थ है:
class TestFinallyBlock{
public static void main(String args[]){
try{
int data=25/5;
System.out.println(data);
}
catch(NullPointerException e){System.out.println(e);}
finally{System.out.println("finally block is always executed");}
System.out.println("rest of the code...");
}
}
इस छूट में भले ही ट्राइ-कैच निष्पादित हो या न हो, आखिर अंदर क्या है हमेशा निष्पादित किया जाएगा। अंतिम अर्थ:
class FinalizeExample{
public void finalize(){System.out.println("finalize called");}
public static void main(String[] args){
FinalizeExample f1=new FinalizeExample();
FinalizeExample f2=new FinalizeExample();
f1=null;
f2=null;
System.gc();
}}
कचरा उठाने वाले को बुलाने से पहले।