CodeGym /Java Blog /यादृच्छिक /शीर्ष 21 जावा मुलाखत प्रश्न
John Squirrels
पातळी 41
San Francisco

शीर्ष 21 जावा मुलाखत प्रश्न

यादृच्छिक या ग्रुपमध्ये प्रकाशित केले
जावा मुलाखतीचे असंख्य प्रश्न आहेत आणि आम्ही ते सर्व एका लेखात गोळा करू शकत नाही. तथापि, IT कंपन्यांच्या HR-व्यवस्थापकांच्या मते, येथे तुम्हाला Java मुलाखतीचे काही सामान्य प्रश्न सापडतील. जावा मुलाखतीचे शीर्ष २१ प्रश्न - १
  1. "डिससेम्बल" public static void main(String args[]).

    फ्रेशर्ससाठी लोकप्रिय जावा मुलाखत प्रश्नांपैकी एक आणि अतिशय सोपा प्रश्न.

    • publicप्रवेश सुधारक आहे. आम्ही या पद्धतीचा प्रवेश निर्दिष्ट करण्यासाठी वापरतो. येथे सुधारक "सार्वजनिक" आहे, त्यामुळे कोणत्याही वर्गाला या पद्धतीचा प्रवेश आहे.

    • static. या Java कीवर्डचा अर्थ असा आहे की आपण क्लासचे नवीन ऑब्जेक्ट न बनवता ही पद्धत वापरतो.

    • Voidपद्धतीचा परतावा प्रकार आहे. याचा अर्थ असा की पद्धत कोणतेही मूल्य परत करत नाही.

    • mainपद्धतीचे नाव आहे. JVM हे अर्जाचा प्रवेश बिंदू म्हणून "माहित" आहे (त्यावर विशिष्ट स्वाक्षरी असावी). Mainही एक पद्धत आहे जिथे मुख्य अंमलबजावणी होते.

    • String args[]. हे मुख्य पद्धतीकडे दिलेले पॅरामीटर आहे. येथे आमच्याकडे स्ट्रिंग प्रकाराचे युक्तिवाद आहेत जे तुम्ही चालवल्यावर तुमचा Java अनुप्रयोग स्वीकारतो. तुम्ही त्यांना टर्मिनलवर टाइप करू शकता.

  2. equals()आणि मध्ये काय फरक आहे ==?

    प्रथम, " ==" एक ऑपरेटर आहे तर equals()एक पद्धत आहे. आम्ही ==संदर्भ तुलना (किंवा पत्त्याची तुलना) आणि equals()सामग्री तुलनासाठी पद्धत यासाठी ऑपरेटर वापरतो. याचा अर्थ ऑब्जेक्ट्समधील मूल्यांची तुलना करताना ==दोन्ही ऑब्जेक्ट्स एकाच मेमरी स्थानाकडे निर्देशित करतात का ते तपासते .equals()

  3. आपण पद्धतीशिवाय प्रोग्राम कार्यान्वित करू शकतो main()?

    अनेक जावा मूलभूत मुलाखत प्रश्न खरोखर सोपे आहेत. हे एक आवडले. तर लहान उत्तर आहे: होय, आम्ही करू शकतो. उदाहरणार्थ आपण स्टॅटिक ब्लॉक वापरून करू शकतो.

    स्टॅटिक डेटा सदस्य सुरू करण्यासाठी तुम्ही स्टॅटिक ब्लॉक वापरू शकता. हे mainक्लास लोडिंगच्या वेळी पद्धतीपूर्वी कार्यान्वित केले जाते.

    
    class Example{  
     Static{
    System.out.println("static block is invoked");
    }  
      public static void main(String args[]){  
       System.out.println("Now main method");  
      }  
    }
    

    आउटपुट आहे:

    
    static block is invoked
    Now main method
    
  4. एकूण मुख्य पद्धतीच्या अनुपस्थितीबद्दल काय? जर तुम्ही मुख्य पद्धतीशिवाय सामान्य वर्ग चालवण्याचा प्रयत्न केला तर तुम्हाला पुढील त्रुटी आली: मुख्य पद्धत वर्ग चाचणीमध्ये आढळली नाही, कृपया मुख्य पद्धत अशी परिभाषित करा: सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) किंवा JavaFX अनुप्रयोग वर्ग javafx.application.Application वाढवणे आवश्यक आहे. त्रुटी स्वतः सांगते की जर हे JavaFX ऍप्लिकेशन असेल आणि क्लास javafx.application.Application वरून वारसा मिळाला असेल तर ते शक्य आहे.
  5. ऑब्जेक्ट म्हणजे काय immutable? आपण immutableऑब्जेक्ट तयार करू शकता?

    immutableतुम्ही वर्गातील वस्तू त्यांच्या निर्मितीनंतर बदलू शकत नाही . त्यामुळे एकदा तुम्ही ते तयार केल्यावर तुम्ही ते बदलू शकत नाही. जर तुम्ही ऑब्जेक्टमध्ये बदल करण्याचा प्रयत्न केला तर Immutableतुम्हाला एक नवीन ऑब्जेक्ट (क्लोन) मिळेल आणि निर्मिती करताना हा क्लोन बदला.

    एक चांगले उदाहरण आहे String, ते immutableजावा मध्ये आहे. याचा अर्थ तुम्ही ऑब्जेक्ट स्वतः बदलू शकत नाही, परंतु आपण ऑब्जेक्टचा संदर्भ बदलू शकता.

  6. खालील कोडमध्ये किती वस्तू तयार केल्या आहेत?

    जावा तांत्रिक मुलाखत प्रश्नांपैकी एक जो #4 च्या जागी बदलतो.

    
    String s1="Hello";  
    String s2="Hello";  
    String s3="Hello";  
    

    उत्तर "फक्त एक" आहे कारण जावामध्ये स्ट्रिंग पूल आहे. जेव्हा आपण new() ऑपरेटर वापरून स्ट्रिंग ऑब्जेक्ट तयार करतो, तेव्हा ते हीप मेमरीमध्ये नवीन ऑब्जेक्ट तयार करते. जर आपण स्ट्रिंग शाब्दिक वाक्यरचना वापरतो, जसे की आमच्या उदाहरणात, ते आधीपासून अस्तित्वात असल्यास, ते स्ट्रिंग पूलमधून विद्यमान ऑब्जेक्ट परत करू शकते.

  7. खालील कोडमध्ये किती वस्तू तयार केल्या आहेत?

    
    String s = new String("Hello");
    

    2 वस्तू आहेत. एक स्ट्रिंग कॉन्स्टंट पूलमध्ये आहे (जर आधीच उपस्थित नसेल) आणि दुसरा ढीगमध्ये आहे.

  8. Stringजावा मधील वर्ग आणि वर्ग StringBuilderयांच्यात काय फरक आहे StringBuffer?

    शीर्ष जावा मुलाखत प्रश्नांमध्ये एक नेता आहे.

    सर्व प्रथम Stringएक अपरिवर्तनीय वर्ग आहे. याचा अर्थ असा आहे की एकदा तयार केल्यावर तुम्ही त्याची सामग्री सुधारू शकत नाही. असताना StringBufferआणि StringBuilderबदलण्यायोग्य वर्ग आहेत, त्यामुळे तुम्ही ते नंतर बदलू शकता. जर आपण Stringऑब्जेक्टची सामग्री बदलली तर ती नवीन स्ट्रिंग तयार करते म्हणून ती मूळ स्ट्रिंग बदलत नाही. म्हणूनच सोबतची कामगिरी StringBufferसहापेक्षा चांगली आहे String.

    मधील मुख्य फरक StringBufferआणि StringBuilderत्या StringBufferपद्धती सिंक्रोनाइझ केल्या जातात तर StringBuilder's नसतात.

  9. Stringशाब्दिक आणि ऑपरेटर वापरून तयार केले गेले त्यात काही फरक आहे का new()?

    तेथे आहे. जर आपण ऑपरेटरसह स्ट्रिंग तयार केली new(), तर ती ढीग आणि स्ट्रिंग पूलमध्ये दिसते (जर आधीपासून नसेल). तुम्ही Stringशाब्दिक वापरून एखादे तयार केल्यास, ते स्ट्रिंग पूलमध्ये तयार केले जाईल (जर आधीपासून नसेल). स्ट्रिंग पूल हे हिपमधील एक स्टोरेज एरिया आहे, जे स्ट्रिंग लिटरल्स साठवते.

  10. आपण जावा मध्ये अधिलिखित privateकिंवा पद्धत करू शकता?static

    rookies साठी जावा अवघड मुलाखत प्रश्नांपैकी एक. आपण जावा मध्ये खरोखर ओव्हरराइड privateकिंवा पद्धत करू शकत नाही .static

    तुम्ही पद्धती ओव्हरराइड करू शकत नाही privateकारण खाजगी ऍक्सेस स्पेसिफायरची व्याप्ती फक्त वर्गात आहे. जेव्हा तुम्ही काहीतरी ओव्हरराइड करणार असाल, तेव्हा आमच्याकडे पालक आणि मुलांचा वर्ग असावा. जर सुपरक्लासची पद्धत असेल तर private, बाल वर्ग तिचा वापर करू शकत नाही, आणि बाल वर्गातील पद्धती नवीन पद्धती मानल्या जातील (ओव्हरराइड केल्या जाणार नाहीत).

    Staticपद्धती देखील अधिलिखित केल्या जाऊ शकत नाहीत, कारण staticपद्धती हा वर्गाचाच भाग आहे, आणि वर्गाच्या कोणत्याही ऑब्जेक्टचा भाग नाही. निश्चितपणे तुम्ही staticबाल वर्गात समान स्वाक्षरीसह समान पद्धत घोषित करू शकता, परंतु पुन्हा, त्यांना नवीन पद्धती मानल्या जातील.

  11. Abstract Classआणि मधील फरकInterface

    OOP तत्त्वांवर आधारित जावा विकसक मुलाखतीतील लोकप्रिय प्रश्नांपैकी एक. सर्व प्रथम, Java मध्ये interfaceवर्तन परिभाषित करते आणि abstract classपदानुक्रम तयार करते.

    अमूर्त वर्ग इंटरफेस
    अमूर्त वर्गात मेथड बॉडी (गैर-अमूर्त पद्धती) असणे शक्य आहे इंटरफेसमध्ये फक्त अमूर्त पद्धती असू शकतात. Java 8 किंवा नवीन मध्ये, डीफॉल्ट पद्धती परिभाषित करणे आणि त्यांना थेट इंटरफेसमध्ये लागू करणे शक्य झाले. तसेच, Java 8 मधील इंटरफेसमध्ये स्थिर पद्धती असू शकतात.
    उदाहरण व्हेरिएबल्स अमूर्त वर्गात असू शकतात इंटरफेसमध्ये उदाहरण व्हेरिएबल्स असू शकत नाहीत.
    बांधकाम करणाऱ्यांना परवानगी आहे इंटरफेसमध्ये कोणताही कन्स्ट्रक्टर असू शकत नाही.
    स्थिर पद्धतींना परवानगी आहे स्थिर पद्धतींना परवानगी नाही
    वर्गात फक्त एक अमूर्त पालक असू शकतात एक इंटरफेस विविध वर्ग लागू करू शकतो
    अमूर्त वर्ग इंटरफेसची अंमलबजावणी प्रदान करू शकतो. इंटरफेस अमूर्त वर्गाची अंमलबजावणी प्रदान करू शकत नाही.
    अ‍ॅबस्ट्रॅक्ट क्लासला इतर Java क्लास वाढवण्याची आणि एकाधिक Java इंटरफेस लागू करण्याची परवानगी आहे. इंटरफेसला इतर Java इंटरफेसचा विस्तार करण्याची परवानगी आहे.
    Java अमूर्त वर्गात खाजगी आणि संरक्षित वर्ग सदस्य असू शकतात Java इंटरफेसचे सदस्य डीफॉल्टनुसार सार्वजनिक असतात
  12. आपण staticवर्गात व्हेरिएबल्स आणि पद्धती घोषित करू शकतो का abstract?

    staticहोय, पद्धतीमध्ये चल आणि पद्धती घोषित करणे शक्य आहे abstract. स्थिर संदर्भामध्ये प्रवेश करण्यासाठी ऑब्जेक्ट बनविण्याची आवश्यकता नाही. abstractम्हणून आम्हाला वर्गाच्या नावाचा वापर करून वर्गामध्ये घोषित केलेल्या स्थिर संदर्भामध्ये प्रवेश करण्याची परवानगी आहे abstract.

  13. JVM द्वारे कोणत्या प्रकारच्या मेमरी क्षेत्रांचे वाटप केले जाते?

    क्लास एरिया पर्क्लास स्ट्रक्चर्स स्टोअर करते, उदाहरणार्थ, रनटाइम कॉन्स्टंट पूल, फील्ड, मेथड डेटा आणि पद्धतींसाठी सर्व कोड.

    हीप एक रनटाइम डेटा क्षेत्र आहे जिथे मेमरी ऑब्जेक्ट्सना वाटप केली जाते.

    स्टॅक स्टोअर्स फ्रेम. यात स्थानिक चल आणि आंशिक परिणाम आहेत आणि ते पद्धत आवाहन आणि रिटर्नमध्ये भाग घेते. प्रत्येक थ्रेडमध्ये खाजगी JVM स्टॅक असतो, थ्रेड प्रमाणेच तयार केला जातो. प्रत्‍येक वेळी एखादी पद्धत लागू केल्‍यावर एक नवीन फ्रेम तयार केली जाते. जेव्हा फ्रेमची पद्धत पूर्ण होते तेव्हा ती नष्ट होते.

    प्रोग्राम काउंटर रजिस्टरमध्ये सध्या कार्यान्वित होत असलेल्या Java व्हर्च्युअल मशीन निर्देशांचा पत्ता आहे.

    नेटिव्ह मेथड स्टॅकमध्ये ऍप्लिकेशनमध्ये वापरल्या जाणार्‍या सर्व मूळ पद्धतींचा समावेश आहे.

  14. जावा मध्ये एकाधिक वारसा का परवानगी नाही?

    हे खरोखर क्लिष्ट असेल. तीन वर्गांची कल्पना करा A, Bआणि Cआणि Cवारसा Aआणि B. आता, Aआणि Bक्लासेसची पद्धत सारखीच आहे आणि तुम्ही त्याला चाइल्ड क्लास ऑब्जेक्टवरून कॉल करता... कोणता? Aचे किंवा Bचे? येथे आपल्याकडे संदिग्धता आहे.

    जर तुम्ही दोन क्लासेस इनहेरिट करण्याचा प्रयत्न केला तर जावा रेंडर्स कंपाइल टाइम एरर.

  15. आम्ही main()पद्धत ओव्हरलोड करू शकतो?

    mainनिश्चितच, मेथड ओव्हरलोडिंग वापरून आम्हाला Java प्रोग्राममध्ये अनेक पद्धती वापरण्याची परवानगी आहे . प्रयत्न कर!

  16. आपण कन्स्ट्रक्टर म्हणून घोषित करू शकतो का final?

    नाही. कन्स्ट्रक्टर म्हणून घोषित केले जाऊ शकत नाही finalकारण तो वारसा मिळू शकत नाही. त्यामुळे कन्स्ट्रक्टर म्हणून घोषित करणे मूर्खपणाचे आहे final. तथापि, आपण ते करण्याचा प्रयत्न केल्यास, Java कंपाइलर आपल्याला एक त्रुटी देईल.

  17. आपण इंटरफेस म्हणून घोषित करू शकतो का final?

    नाही, आम्ही हे करू शकत नाही. इंटरफेस असू शकत नाही finalकारण इंटरफेस त्याच्या व्याख्येनुसार काही वर्गाने लागू केला पाहिजे. म्हणून, इंटरफेस बनवण्यात काही अर्थ नाही final. तथापि, आपण असे करण्याचा प्रयत्न केल्यास, कंपाइलर त्रुटी दर्शवेल.

  18. static bindingआणि मध्ये काय फरक आहे dynamic binding?

    bindingकंपाइलरद्वारे कंपाइलच्या वेळी ज्याचे निराकरण केले जाऊ शकते त्याला किंवा staticअर्ली बाइंडिंग म्हणतात. Bindingसर्व static, privateआणि finalपद्धती कंपाइल-टाइममध्ये केल्या जातात.

    कंपाइलरमध्ये Dynamic bindingकॉल करण्यासाठी पद्धत निवडू शकत नाही. ओव्हरराइडिंग हे एक उत्तम उदाहरण आहे dynamic binding. ओव्हरराइड करताना पालक आणि बाल वर्ग दोघांची पद्धत समान आहे.

    
    Static Binding
    class Cat{  
     private void talk()
    {System.out.println("cat is mewing...");
    }  
      
     public static void main(String args[]){  
      Cat cat=new Cat();  
      cat.talk();  
     }  
    }  
    Dynamic Binding
    class Animal{  
     void talk(){
    System.out.println("animal is talking...");
    }  
    }  
      
    class Cat extends Animal{  
     void talk(){
    System.out.println("cat is talking...");
    }    
     public static void main(String args[]){  
      Animal animal=new Cat();  
      animal.talk();  
     }  
    }
    
  19. Java मध्ये केवळ वाचनीय वर्ग कसा तयार करायचा?

    तुम्ही वर्गाची सर्व फील्ड खाजगी करून हे करू शकता. केवळ-वाचनीय वर्गामध्ये फक्त गेटर पद्धती आहेत ज्या वर्गाची खाजगी मालमत्ता पद्धतकडे परत करतात main. तुम्ही या मालमत्तेत बदल करू शकत नाही, याचे कारण सेटर पद्धतीचा अभाव आहे.

    
    public class HockeyPlayer{    
    private String team ="Maple leaf";    
    public String getTeam(){    
    return team;    
    }    
    }
    
  20. Java मध्ये फक्त लेखन वर्ग कसा तयार करायचा?

    पुन्हा, तुम्ही वर्गाची सर्व फील्ड बनवावीत private. आता, तुमच्या फक्त लिहिणाऱ्या वर्गात फक्त सेटर पद्धती असाव्यात आणि गेटर्स नाहीत. म्हणून, आम्ही वर्गाचे गुणधर्म वाचू शकत नाही.

    
    public class HockeyPlayer{       
    private String team;    
    public void setTeam(String college){    
    this.team = team;    
    }    
    }    
    
  21. प्रत्येक tryब्लॉकच्या मागे एक ब्लॉक आलाच पाहिजे catch, नाही का?

    नाही. ती गरज नाही. प्रत्येक tryब्लॉक ब्लॉकशिवाय असू शकतो catch. हे एकतर कॅचब्लॉक किंवा शेवटी ब्लॉक किंवा त्यांच्याशिवाय देखील असू शकते.

    
    public class Main{  
         public static void main(String []args){  
            try{  
                int variable = 1;   
                System.out.println(variable/0);  
            }  
            finally  
            {  
                System.out.println("the other part of the program...");  
            }  
         }  
    }
    

    आउटपुट:

    
    Exception in thread main java.lang.ArithmeticException:/ by zero
    the other part of the program...
    

    आणखी एक उदाहरण:
    
    class Main {
            public static void main(String[] args) throws IOException {
                try(InputStreamReader inputStreamReader = new InputStreamReader(System.in);
                    BufferedReader reader = new BufferedReader(inputStreamReader)){
                    System.out.println("test");
                }
            }
        }
    

    आउटपुट:

    
    test
    

    PS: Java 8 पूर्वी इंटरफेसमधील पद्धती केवळ अमूर्त असू शकतात. Java 8 किंवा नवीन मध्ये, डीफॉल्ट पद्धती परिभाषित करणे आणि त्यांना थेट इंटरफेसमध्ये लागू करणे शक्य झाले.
  22. throwआणि कीवर्डमध्ये काय फरक आहे throws?

    Throwsअपवाद घोषित करण्यासाठी वापरले जाते, म्हणून ते try-catchब्लॉक प्रमाणेच कार्य करते. Throwकीवर्डचा वापर पद्धत किंवा कोडच्या इतर कोणत्याही ब्लॉकमधून स्पष्टपणे अपवाद फेकण्यासाठी केला जातो.

    Throwत्यानंतर Exceptionवर्गाचे उदाहरण दिले जाते आणि अपवाद वर्गाच्या नावांनंतर थ्रो.

    Throwपद्धत बॉडी मध्ये अपवाद टाकण्यासाठी वापरली जाते. Throwsपद्धतीमध्ये उपस्थित असलेल्या विधानांमध्ये येऊ शकणारे अपवाद घोषित करण्यासाठी पद्धत स्वाक्षरीमध्ये वापरले जाते.

    एका वेळी एक अपवाद टाकण्याची परवानगी आहे परंतु आपण throwकीवर्ड वापरून अनेक अपवाद घोषित करून हाताळू शकता. आपण एकाधिक अपवाद घोषित करू शकता, उदा., public void method()throws IOException, SQLException.

येथे आमच्याकडे जावा मुलाखतीचे काही प्रश्न आणि उत्तरे होती. हा लेख मुलाखत मालिकेतील पहिला आहे. पुढील (लवकरच येत आहे) डेटा संरचना प्रश्नांबद्दल आहे.
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION