-
"डिससेम्बल"
public static void main(String args[])
.फ्रेशर्ससाठी लोकप्रिय जावा मुलाखत प्रश्नांपैकी एक आणि अतिशय सोपा प्रश्न.
-
public
प्रवेश सुधारक आहे. आम्ही या पद्धतीचा प्रवेश निर्दिष्ट करण्यासाठी वापरतो. येथे सुधारक "सार्वजनिक" आहे, त्यामुळे कोणत्याही वर्गाला या पद्धतीचा प्रवेश आहे. -
static
. या Java कीवर्डचा अर्थ असा आहे की आपण क्लासचे नवीन ऑब्जेक्ट न बनवता ही पद्धत वापरतो. -
Void
पद्धतीचा परतावा प्रकार आहे. याचा अर्थ असा की पद्धत कोणतेही मूल्य परत करत नाही. -
main
पद्धतीचे नाव आहे. JVM हे अर्जाचा प्रवेश बिंदू म्हणून "माहित" आहे (त्यावर विशिष्ट स्वाक्षरी असावी).Main
ही एक पद्धत आहे जिथे मुख्य अंमलबजावणी होते. -
String args[]
. हे मुख्य पद्धतीकडे दिलेले पॅरामीटर आहे. येथे आमच्याकडे स्ट्रिंग प्रकाराचे युक्तिवाद आहेत जे तुम्ही चालवल्यावर तुमचा Java अनुप्रयोग स्वीकारतो. तुम्ही त्यांना टर्मिनलवर टाइप करू शकता.
-
-
equals()
आणि मध्ये काय फरक आहे==
?प्रथम, "
==
" एक ऑपरेटर आहे तरequals()
एक पद्धत आहे. आम्ही==
संदर्भ तुलना (किंवा पत्त्याची तुलना) आणिequals()
सामग्री तुलनासाठी पद्धत यासाठी ऑपरेटर वापरतो. याचा अर्थ ऑब्जेक्ट्समधील मूल्यांची तुलना करताना==
दोन्ही ऑब्जेक्ट्स एकाच मेमरी स्थानाकडे निर्देशित करतात का ते तपासते .equals()
-
आपण पद्धतीशिवाय प्रोग्राम कार्यान्वित करू शकतो
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
एकूण मुख्य पद्धतीच्या अनुपस्थितीबद्दल काय? जर तुम्ही मुख्य पद्धतीशिवाय सामान्य वर्ग चालवण्याचा प्रयत्न केला तर तुम्हाला पुढील त्रुटी आली: मुख्य पद्धत वर्ग चाचणीमध्ये आढळली नाही, कृपया मुख्य पद्धत अशी परिभाषित करा: सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) किंवा JavaFX अनुप्रयोग वर्ग javafx.application.Application वाढवणे आवश्यक आहे. त्रुटी स्वतः सांगते की जर हे JavaFX ऍप्लिकेशन असेल आणि क्लास javafx.application.Application वरून वारसा मिळाला असेल तर ते शक्य आहे.
-
ऑब्जेक्ट म्हणजे काय
immutable
? आपणimmutable
ऑब्जेक्ट तयार करू शकता?immutable
तुम्ही वर्गातील वस्तू त्यांच्या निर्मितीनंतर बदलू शकत नाही . त्यामुळे एकदा तुम्ही ते तयार केल्यावर तुम्ही ते बदलू शकत नाही. जर तुम्ही ऑब्जेक्टमध्ये बदल करण्याचा प्रयत्न केला तरImmutable
तुम्हाला एक नवीन ऑब्जेक्ट (क्लोन) मिळेल आणि निर्मिती करताना हा क्लोन बदला.एक चांगले उदाहरण आहे
String
, तेimmutable
जावा मध्ये आहे. याचा अर्थ तुम्ही ऑब्जेक्ट स्वतः बदलू शकत नाही, परंतु आपण ऑब्जेक्टचा संदर्भ बदलू शकता. -
खालील कोडमध्ये किती वस्तू तयार केल्या आहेत?
जावा तांत्रिक मुलाखत प्रश्नांपैकी एक जो #4 च्या जागी बदलतो.
String s1="Hello"; String s2="Hello"; String s3="Hello";
उत्तर "फक्त एक" आहे कारण जावामध्ये स्ट्रिंग पूल आहे. जेव्हा आपण new() ऑपरेटर वापरून स्ट्रिंग ऑब्जेक्ट तयार करतो, तेव्हा ते हीप मेमरीमध्ये नवीन ऑब्जेक्ट तयार करते. जर आपण स्ट्रिंग शाब्दिक वाक्यरचना वापरतो, जसे की आमच्या उदाहरणात, ते आधीपासून अस्तित्वात असल्यास, ते स्ट्रिंग पूलमधून विद्यमान ऑब्जेक्ट परत करू शकते.
-
खालील कोडमध्ये किती वस्तू तयार केल्या आहेत?
String s = new String("Hello");
2 वस्तू आहेत. एक स्ट्रिंग कॉन्स्टंट पूलमध्ये आहे (जर आधीच उपस्थित नसेल) आणि दुसरा ढीगमध्ये आहे.
-
String
जावा मधील वर्ग आणि वर्गStringBuilder
यांच्यात काय फरक आहेStringBuffer
?शीर्ष जावा मुलाखत प्रश्नांमध्ये एक नेता आहे.
सर्व प्रथम
String
एक अपरिवर्तनीय वर्ग आहे. याचा अर्थ असा आहे की एकदा तयार केल्यावर तुम्ही त्याची सामग्री सुधारू शकत नाही. असतानाStringBuffer
आणिStringBuilder
बदलण्यायोग्य वर्ग आहेत, त्यामुळे तुम्ही ते नंतर बदलू शकता. जर आपणString
ऑब्जेक्टची सामग्री बदलली तर ती नवीन स्ट्रिंग तयार करते म्हणून ती मूळ स्ट्रिंग बदलत नाही. म्हणूनच सोबतची कामगिरीStringBuffer
सहापेक्षा चांगली आहेString
.मधील मुख्य फरक
StringBuffer
आणिStringBuilder
त्याStringBuffer
पद्धती सिंक्रोनाइझ केल्या जातात तरStringBuilder
's नसतात. -
String
शाब्दिक आणि ऑपरेटर वापरून तयार केले गेले त्यात काही फरक आहे काnew()
?तेथे आहे. जर आपण ऑपरेटरसह स्ट्रिंग तयार केली
new()
, तर ती ढीग आणि स्ट्रिंग पूलमध्ये दिसते (जर आधीपासून नसेल). तुम्हीString
शाब्दिक वापरून एखादे तयार केल्यास, ते स्ट्रिंग पूलमध्ये तयार केले जाईल (जर आधीपासून नसेल). स्ट्रिंग पूल हे हिपमधील एक स्टोरेज एरिया आहे, जे स्ट्रिंग लिटरल्स साठवते. -
आपण जावा मध्ये अधिलिखित
private
किंवा पद्धत करू शकता?static
rookies साठी जावा अवघड मुलाखत प्रश्नांपैकी एक. आपण जावा मध्ये खरोखर ओव्हरराइड
private
किंवा पद्धत करू शकत नाही .static
तुम्ही पद्धती ओव्हरराइड करू शकत नाही
private
कारण खाजगी ऍक्सेस स्पेसिफायरची व्याप्ती फक्त वर्गात आहे. जेव्हा तुम्ही काहीतरी ओव्हरराइड करणार असाल, तेव्हा आमच्याकडे पालक आणि मुलांचा वर्ग असावा. जर सुपरक्लासची पद्धत असेल तरprivate
, बाल वर्ग तिचा वापर करू शकत नाही, आणि बाल वर्गातील पद्धती नवीन पद्धती मानल्या जातील (ओव्हरराइड केल्या जाणार नाहीत).Static
पद्धती देखील अधिलिखित केल्या जाऊ शकत नाहीत, कारणstatic
पद्धती हा वर्गाचाच भाग आहे, आणि वर्गाच्या कोणत्याही ऑब्जेक्टचा भाग नाही. निश्चितपणे तुम्हीstatic
बाल वर्गात समान स्वाक्षरीसह समान पद्धत घोषित करू शकता, परंतु पुन्हा, त्यांना नवीन पद्धती मानल्या जातील. -
Abstract Class
आणि मधील फरकInterface
OOP तत्त्वांवर आधारित जावा विकसक मुलाखतीतील लोकप्रिय प्रश्नांपैकी एक. सर्व प्रथम, Java मध्ये
interface
वर्तन परिभाषित करते आणिabstract class
पदानुक्रम तयार करते.अमूर्त वर्ग इंटरफेस अमूर्त वर्गात मेथड बॉडी (गैर-अमूर्त पद्धती) असणे शक्य आहे इंटरफेसमध्ये फक्त अमूर्त पद्धती असू शकतात. Java 8 किंवा नवीन मध्ये, डीफॉल्ट पद्धती परिभाषित करणे आणि त्यांना थेट इंटरफेसमध्ये लागू करणे शक्य झाले. तसेच, Java 8 मधील इंटरफेसमध्ये स्थिर पद्धती असू शकतात. उदाहरण व्हेरिएबल्स अमूर्त वर्गात असू शकतात इंटरफेसमध्ये उदाहरण व्हेरिएबल्स असू शकत नाहीत. बांधकाम करणाऱ्यांना परवानगी आहे इंटरफेसमध्ये कोणताही कन्स्ट्रक्टर असू शकत नाही. स्थिर पद्धतींना परवानगी आहे स्थिर पद्धतींना परवानगी नाही वर्गात फक्त एक अमूर्त पालक असू शकतात एक इंटरफेस विविध वर्ग लागू करू शकतो अमूर्त वर्ग इंटरफेसची अंमलबजावणी प्रदान करू शकतो. इंटरफेस अमूर्त वर्गाची अंमलबजावणी प्रदान करू शकत नाही. अॅबस्ट्रॅक्ट क्लासला इतर Java क्लास वाढवण्याची आणि एकाधिक Java इंटरफेस लागू करण्याची परवानगी आहे. इंटरफेसला इतर Java इंटरफेसचा विस्तार करण्याची परवानगी आहे. Java अमूर्त वर्गात खाजगी आणि संरक्षित वर्ग सदस्य असू शकतात Java इंटरफेसचे सदस्य डीफॉल्टनुसार सार्वजनिक असतात -
आपण
static
वर्गात व्हेरिएबल्स आणि पद्धती घोषित करू शकतो काabstract
?static
होय, पद्धतीमध्ये चल आणि पद्धती घोषित करणे शक्य आहेabstract
. स्थिर संदर्भामध्ये प्रवेश करण्यासाठी ऑब्जेक्ट बनविण्याची आवश्यकता नाही.abstract
म्हणून आम्हाला वर्गाच्या नावाचा वापर करून वर्गामध्ये घोषित केलेल्या स्थिर संदर्भामध्ये प्रवेश करण्याची परवानगी आहेabstract
. -
JVM द्वारे कोणत्या प्रकारच्या मेमरी क्षेत्रांचे वाटप केले जाते?
क्लास एरिया पर्क्लास स्ट्रक्चर्स स्टोअर करते, उदाहरणार्थ, रनटाइम कॉन्स्टंट पूल, फील्ड, मेथड डेटा आणि पद्धतींसाठी सर्व कोड.
हीप एक रनटाइम डेटा क्षेत्र आहे जिथे मेमरी ऑब्जेक्ट्सना वाटप केली जाते.
स्टॅक स्टोअर्स फ्रेम. यात स्थानिक चल आणि आंशिक परिणाम आहेत आणि ते पद्धत आवाहन आणि रिटर्नमध्ये भाग घेते. प्रत्येक थ्रेडमध्ये खाजगी JVM स्टॅक असतो, थ्रेड प्रमाणेच तयार केला जातो. प्रत्येक वेळी एखादी पद्धत लागू केल्यावर एक नवीन फ्रेम तयार केली जाते. जेव्हा फ्रेमची पद्धत पूर्ण होते तेव्हा ती नष्ट होते.
प्रोग्राम काउंटर रजिस्टरमध्ये सध्या कार्यान्वित होत असलेल्या Java व्हर्च्युअल मशीन निर्देशांचा पत्ता आहे.
नेटिव्ह मेथड स्टॅकमध्ये ऍप्लिकेशनमध्ये वापरल्या जाणार्या सर्व मूळ पद्धतींचा समावेश आहे.
-
जावा मध्ये एकाधिक वारसा का परवानगी नाही?
हे खरोखर क्लिष्ट असेल. तीन वर्गांची कल्पना करा
A
,B
आणिC
आणिC
वारसाA
आणिB
. आता,A
आणिB
क्लासेसची पद्धत सारखीच आहे आणि तुम्ही त्याला चाइल्ड क्लास ऑब्जेक्टवरून कॉल करता... कोणता?A
चे किंवाB
चे? येथे आपल्याकडे संदिग्धता आहे.जर तुम्ही दोन क्लासेस इनहेरिट करण्याचा प्रयत्न केला तर जावा रेंडर्स कंपाइल टाइम एरर.
-
आम्ही
main()
पद्धत ओव्हरलोड करू शकतो?main
निश्चितच, मेथड ओव्हरलोडिंग वापरून आम्हाला Java प्रोग्राममध्ये अनेक पद्धती वापरण्याची परवानगी आहे . प्रयत्न कर! -
आपण कन्स्ट्रक्टर म्हणून घोषित करू शकतो का
final
?नाही. कन्स्ट्रक्टर म्हणून घोषित केले जाऊ शकत नाही
final
कारण तो वारसा मिळू शकत नाही. त्यामुळे कन्स्ट्रक्टर म्हणून घोषित करणे मूर्खपणाचे आहेfinal
. तथापि, आपण ते करण्याचा प्रयत्न केल्यास, Java कंपाइलर आपल्याला एक त्रुटी देईल. -
आपण इंटरफेस म्हणून घोषित करू शकतो का
final
?नाही, आम्ही हे करू शकत नाही. इंटरफेस असू शकत नाही
final
कारण इंटरफेस त्याच्या व्याख्येनुसार काही वर्गाने लागू केला पाहिजे. म्हणून, इंटरफेस बनवण्यात काही अर्थ नाहीfinal
. तथापि, आपण असे करण्याचा प्रयत्न केल्यास, कंपाइलर त्रुटी दर्शवेल. -
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(); } }
-
Java मध्ये केवळ वाचनीय वर्ग कसा तयार करायचा?
तुम्ही वर्गाची सर्व फील्ड खाजगी करून हे करू शकता. केवळ-वाचनीय वर्गामध्ये फक्त गेटर पद्धती आहेत ज्या वर्गाची खाजगी मालमत्ता पद्धतकडे परत करतात
main
. तुम्ही या मालमत्तेत बदल करू शकत नाही, याचे कारण सेटर पद्धतीचा अभाव आहे.public class HockeyPlayer{ private String team ="Maple leaf"; public String getTeam(){ return team; } }
-
Java मध्ये फक्त लेखन वर्ग कसा तयार करायचा?
पुन्हा, तुम्ही वर्गाची सर्व फील्ड बनवावीत
private
. आता, तुमच्या फक्त लिहिणाऱ्या वर्गात फक्त सेटर पद्धती असाव्यात आणि गेटर्स नाहीत. म्हणून, आम्ही वर्गाचे गुणधर्म वाचू शकत नाही.public class HockeyPlayer{ private String team; public void setTeam(String college){ this.team = team; } }
-
प्रत्येक
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 किंवा नवीन मध्ये, डीफॉल्ट पद्धती परिभाषित करणे आणि त्यांना थेट इंटरफेसमध्ये लागू करणे शक्य झाले. -
throw
आणि कीवर्डमध्ये काय फरक आहेthrows
?Throws
अपवाद घोषित करण्यासाठी वापरले जाते, म्हणून तेtry-catch
ब्लॉक प्रमाणेच कार्य करते.Throw
कीवर्डचा वापर पद्धत किंवा कोडच्या इतर कोणत्याही ब्लॉकमधून स्पष्टपणे अपवाद फेकण्यासाठी केला जातो.Throw
त्यानंतरException
वर्गाचे उदाहरण दिले जाते आणि अपवाद वर्गाच्या नावांनंतर थ्रो.Throw
पद्धत बॉडी मध्ये अपवाद टाकण्यासाठी वापरली जाते.Throws
पद्धतीमध्ये उपस्थित असलेल्या विधानांमध्ये येऊ शकणारे अपवाद घोषित करण्यासाठी पद्धत स्वाक्षरीमध्ये वापरले जाते.एका वेळी एक अपवाद टाकण्याची परवानगी आहे परंतु आपण
throw
कीवर्ड वापरून अनेक अपवाद घोषित करून हाताळू शकता. आपण एकाधिक अपवाद घोषित करू शकता, उदा.,public void method()throws IOException
,SQLException
.
शीर्ष 21 जावा मुलाखत प्रश्न
जावा मुलाखतीचे असंख्य प्रश्न आहेत आणि आम्ही ते सर्व एका लेखात गोळा करू शकत नाही. तथापि, IT कंपन्यांच्या HR-व्यवस्थापकांच्या मते, येथे तुम्हाला Java मुलाखतीचे काही सामान्य प्रश्न सापडतील.
GO TO FULL VERSION