Showing posts with label java in hindi. Show all posts
Showing posts with label java in hindi. Show all posts

Tuesday, March 9, 2021

difference between spring mvc and spring boot in hindi

What Is Spring Boot in Hindi ?

स्प्रिंग बूट स्प्रिंग फ्रेमवर्क का एक विस्तार है जो डेवलपर्स को ऑटो-कॉन्फ़िगरेशन का उपयोग करके वेब एप्लिकेशन बनाने के लिए आवश्यक प्रक्रिया को छोटा करने की अनुमति देता है। 

आप एक स्वसंपूर्ण अनुप्रयोग बना सकते हैं जो जावा का उपयोग करता है और इसे अलग वेब सर्वर पर स्थापित करने की आवश्यकता के बिना इसे प्राप्त करना और चलाना। 

स्प्रिंग बूट का उपयोग करें कभी भी आपको जल्दी से उत्पादन-तैयार एप्लिकेशन की आवश्यकता होती है।


What Is Spring MVC in Hindi?

स्प्रिंग एमवीसी वसंत ढांचे के भीतर एक पुस्तकालय है जो HTTP अनुरोधों और प्रतिक्रियाओं को संभालने को सरल करता है। 

यह सर्वलेट एपीआई पर बनाया गया है और यह स्प्रिंग फ्रेमवर्क का एक अनिवार्य घटक है। 

एमवीसी मॉडल-व्यू-कंट्रोलर के लिए खड़ा है, जो इसका मुख्य कार्य है, जो व्यापार तर्क, प्रस्तुति तर्क और नेविगेशन तर्क को अलग करने की अनुमति देता है।

 पूरी तरह कार्यात्मक जावा वेब अनुप्रयोगों के निर्माण के लिए स्प्रिंग एमवीसी के तैयार किए गए घटकों का उपयोग करें।


Difference Between Spring MVC and Spring Boot in Hindi

जबकि स्प्रिंग एमवीसी एक आवश्यक ढांचा है जो स्प्रिंग के भीतर एक पूरे के रूप में मौजूद है, स्प्रिंग बूट एक वैकल्पिक मॉड्यूल है जिसका उपयोग विकास प्रक्रिया को कारगर बनाने के लिए किया जाता है,जिसमें बिल्ड प्रक्रिया के दौरान स्प्रिंग एमवीसी को एकीकृत करना शामिल हो सकता है। 

स्प्रिंग बूट के बिना, स्प्रिंग एमवीसी को उपयोग करने के लिए अधिक समय लगता है और मैन्युअल कॉन्फ़िगरेशन और अलग-अलग तैनाती विवरणों की आवश्यकता होती है।

difference between spring boot and spring mvc on the bases of work : -

How Spring MVC Works in Hindi:-

स्प्रिंग MVC वेब अनुप्रयोगों को लेआउट और डिज़ाइन करने के लिए तीन घटकों का उपयोग करता है, जैसा कि इसके नाम का अर्थ है: मॉडल, दृश्य और नियंत्रक। मॉडल घटक में एप्लिकेशन का डेटा और संरचना शामिल है और नियम और तर्क का उपयोग करने में भूमिका निभाता है। 

व्यू कंपोनेंट UI लॉजिक से संबंधित है और ब्राउजर के लिए HTML आउटपुट तैयार करता है। 

नियंत्रक तब इनपुट का अनुवाद और सत्यापन करता है और इसे प्रस्तुत करने के लिए मॉडल या दृश्य में भेजता है।

 स्प्रिंग एमवीसी ग्राहक अनुरोध के लिए प्रविष्टि के एकल बिंदु के रूप में फ्रंट नियंत्रक का उपयोग करता है और वास्तविक प्रसंस्करण के लिए आवेदन में अन्य नियंत्रकों के अनुरोध को आगे बढ़ाता है।

How Spring Boot Works in Hindi

स्प्रिंग बूट का उपयोग करने के लिए, शुरू करने के लिए एक अच्छी जगह स्प्रिंग इनिशियलाइज़र है, जो आपको किसी भी निर्भरता को जल्दी से खींचने और प्रोजेक्ट मेटाडेटा में भरने की अनुमति देता है। 

अगला कदम जेनरेट प्रेस करना है, जो आपके कंप्यूटर पर डाउनलोड किया गया एक ज़िप फ़ोल्डर बनाता है। 

यह फ़ोल्डर विशिष्ट कोड के साथ आपके IDE पर लोड किया गया है। चरण-दर-चरण स्पष्टीकरण के लिए इस गाइड को पढ़ें। 

स्प्रिंग बूट स्वत: प्रत्येक व्यक्तिगत निर्भरता के लिए कोड दर्ज करने की आवश्यकता के बिना इनिशियलाइज़र पर जोड़े गए निर्भरता को कॉन्फ़िगर करता है। कई निर्भरताएँ हैं जो पहले से ही स्प्रिंग MVC सहित स्प्रिंग बूट स्टार्टर वेब में पैक हैं।

Read more article : - difference between throw and throws in java


difference between spring mvc and spring boot on the bases of Uses :-

Why Use Spring Boot

चाहे आप नए हों या अनुभवी हों, नया एप्लिकेशन बनाते समय स्प्रिंग बूट आपके जीवन को आसान बनाता है। 

आसानी से सेटअप करें और अपने एप्लिकेशन को कॉन्फ़िगर करें और निर्भरताएं जोड़ें जो अन्य डेटाबेस और सेवाओं को एक साथ एकीकृत करते हैं।

Why Use Spring Boot in Hindi :-

ऐसी स्थितियों में जहां अधिक लचीलेपन की आवश्यकता होती है, स्प्रिंग एमवीसी आदर्श है क्योंकि इसे आपकी विशिष्ट आवश्यकताओं के लिए कॉन्फ़िगर किया जा सकता है। 

यह स्प्रिंग बूट के विरोध में है, जो ऑटो-कॉन्फ़िगरेशन पर निर्भर करता है जो प्रकृति में बहुत ही स्पष्ट है। सामान्य तौर पर, MVC का उपयोग डेवलपर को पूर्ण HTML नियंत्रण की पेशकश करने, आसान परीक्षण की अनुमति देने, एसईओ-अनुकूल URL रूटिंग उत्पन्न करने और फ्रेमवर्क में एक्सटेंशन को एकीकृत करने के लिए किया जाता है। 

इसके अलावा, स्प्रिंग MVC आपको अपने वेब एप्लिकेशन का समर्थन करने के लिए उपयोगिता कोड लिखने से बचने की अनुमति देता है क्योंकि यह HTTP अनुरोधों और प्रतिक्रियाओं को आसान बनाता है।


difference between spring and spring mvc on the bases of Benefits

Spring Boot Benefits in Hindi :-


  •     स्प्रिंग बूट का उपयोग करने के कई लाभ हैं:
  •     एक्सएमएल और एनोटेशन कॉन्फ़िगरेशन का उपयोग करने की आवश्यकता को हटाकर एप्लिकेशन बनाते समय समय की बचत और कम प्रयास बर्बाद हो गया
  •     जावा-आधारित ऐप्स के परीक्षण की प्रक्रिया को सरल करता है
  •     निगरानी, ​​रेखांकन और चेतावनी के लिए समर्थन
  •     स्प्रिंग बूट उपयोगकर्ताओं का बड़ा समुदाय, जो कई प्रकार के समर्थन और संसाधन खोलता है


Spring MVC Benefits in Hindi


स्प्रिंग MVC चमकता है जब यह आता है:

  •     चिंताओं को अलग करने को बढ़ावा देना - यह मॉड्यूलर वेब एप्लिकेशन विकसित करने का एक शानदार तरीका है
  •     HTTP अनुरोधों को संभालने के थकाऊ और बॉयलरप्लेट कार्यों को सार
  •     रेस्टफुल वेब सेवाओं को विकसित करने के लिए उत्कृष्ट समर्थन
  • स्प्रिंग बूट और स्प्रिंग एमवीसी दोनों ही अनोखे फायदे लाते हैं, फिर भी तेज, अधिक कुशल विकास का एक ही लक्ष्य है। अपने वेब एप्लिकेशन के लिए उन्हें एक साथ उपयोग करने पर विचार करें।

difference between final finally and finalize in Hindi

 1) Final का इस्तेमाल क्लास, मेथड और वेरिएबल पर प्रतिबंध लगाने के लिए किया जाता है। अंतिम वर्ग को विरासत में नहीं दिया जा सकता है, अंतिम विधि को ओवरराइड नहीं किया जा सकता है और अंतिम चर मूल्य को नहीं बदला जा सकता है।

Read more : - difference between 3nf and bcnf in dbms

Finally में महत्वपूर्ण कोड रखने के लिए उपयोग किया जाता है, यह निष्पादित किया जाएगा कि अपवाद को संभाला गया है या नहीं।

Finalize रूप से ऑब्जेक्ट को एकत्र किए जाने से पहले साफ प्रसंस्करण करने के लिए उपयोग किया जाता है।

2)
Final एक कीवर्ड है।

Finally में एक ब्लॉक है।

Finalize रूप एक विधि है।

Difference between final finally finalize on the bases of Program example :-

Java final example Program

  1. class FinalExample{  
  2. public static void main(String[] args){  
  3. final int x=100;  
  4. x=200;//Compile Time Error  
  5. }} 

 Java finally example

  1. class FinallyExample{  
  2. public static void main(String[] args){  
  3. try{  
  4. int x=300;  
  5. }catch(Exception e){System.out.println(e);}  
  6. finally{System.out.println("finally block is executed");}  
  7. }} 

Read also :- difference between comparable and comparator in hindi

Java finalize example

 

  1. class FinalizeExample{  
  2. public void finalize(){System.out.println("finalize called");}  
  3. public static void main(String[] args){  
  4. FinalizeExample f1=new FinalizeExample();  
  5. FinalizeExample f2=new FinalizeExample();  
  6. f1=null;  
  7. f2=null;  
  8. System.gc();  
  9. }}

Monday, March 8, 2021

Difference between eclipselink vs hibernate

eclipselink vs hibernate :-  हाइबरनेट और एक्लिप्स लिंक दोनों ऑब्जेक्ट रिलेशनल मैपिंग टूल हैं। वे दोनों जेपीए के कार्यान्वयन हैं।

हाइबरनेट लाल टोपी द्वारा निर्मित जेपीए का बहुत लोकप्रिय कार्यान्वयन है। इसमें कुछ अतिरिक्त विशेषताएं भी हैं जो JPA प्रदान नहीं करता है।

Read also : - What is jpa vs hibernate in Hindi


ग्रहण ग्रहण फाउंडेशन द्वारा निर्मित जेपीए का एक खुला स्रोत कार्यान्वयन है। यह 'EE4J का हिस्सा बनी पहली परियोजना में से एक है। यह दो रूपों में उपलब्ध है -

  •      Eclipse link jar file format − यह पूर्ण पैकेज है। इसमें वह सब कुछ है जो किसी भी Eclipse link कार्यक्षमता को चलाने की आवश्यकता है।
  •      eclipse link component में से प्रत्येक के लिए OSGI बंडल।

Difference between eclipselink vs hibernate :-

Basic :- 

यह जेपीए का बहुत लोकप्रिय implementation है। यह JPA2.2 को लागू नहीं करता है, लेकिन इसकी लगभग सभी विशेषताएं हैं।

ग्रहण लिंक JPA 2.2 का एक open source implementation है।

Native SQL function

We can't call native function directly in JPQL queries 


हम
native SQL function को सीधे JPQl queries में कह सकते हैं

Batch size For eclipselink vs hibernate

हाइबरनेट में बैच आकार @batchSize के लिए एनोटेशन हैं

इसके लिए एनोटेशन नहीं है बैच आकार @batchSize

Boolean

हाइबरनेट JPQL कार्यान्वयन बूलियन मूल्य को नहीं समझता है

Eclipse link implementation बूलियन को समझ सकता है

User case For eclipselink vs hibernate in Hindi

हाइबरनेट बहुत परिपक्व और अच्छी तरह से documented है।

ग्रहण लिंक बहुत परिपक्व और अच्छी तरह से documented नहीं है।

 

What is jpa vs hibernate in Hindi

difference between hibernate and jpa:-

What is JPA in Hindi?


एक जेपीए (जावा पर्सिस्टेंस एपीआई) जावा का एक विनिर्देश है जिसका उपयोग जावा ऑब्जेक्ट और रिलेशनल डेटाबेस के बीच डेटा को एक्सेस करने, प्रबंधित करने और बनाए रखने के लिए किया जाता है। 

इसे ऑब्जेक्ट रिलेशनल मैपिंग के लिए एक मानक दृष्टिकोण माना जाता है।

JPA को ऑब्जेक्ट-ओरिएंटेड डोमेन मॉडल और रिलेशनल डेटाबेस सिस्टम के बीच एक पुल के रूप में देखा जा सकता है।

 एक विनिर्देशन होने के नाते, जेपीए अपने आप से कोई ऑपरेशन नहीं करता है। 

इस प्रकार, इसे लागू करने की आवश्यकता है। तो, ओबीएम उपकरण जैसे हाइबरनेट, टॉपलिंक और आईबैटिस डेटा दृढ़ता के लिए जेपीए विनिर्देशों को लागू करते हैं।

Read also:- difference between final finally and finalize in Hindi

What is Hibernate in Hindi?


एक हाइबरनेट एक जावा फ्रेमवर्क है जिसका उपयोग रिलेशनल डेटाबेस सिस्टम में जावा ऑब्जेक्ट्स को स्टोर करने के लिए किया जाता है। यह एक ओपन-सोर्स, लाइटवेट, ओआरएम (ऑब्जेक्ट रिलेशनल मैपिंग) टूल है।

हाइबरनेट JPA का एक कार्यान्वयन है। तो, यह जेपीए द्वारा प्रदान किए गए सामान्य मानकों का पालन करता है।

Need of JPA

जैसा कि हमने अब तक देखा है कि जेपीए एक विनिर्देश है। यह ओआरएम टूल्स को सामान्य प्रोटोटाइप और कार्यक्षमता प्रदान करता है। समान विनिर्देश लागू करने से, सभी ORM उपकरण (जैसे हाइबरनेट, टॉपलिंक, आईबैटिस) सामान्य मानकों का अनुसरण करते हैं। 

भविष्य में, यदि हम अपने एप्लिकेशन को एक ORM टूल से दूसरे में बदलना चाहते हैं, तो हम इसे आसानी से कर सकते हैं।

jpa vs hibernate in Hindi

JPA
जावा पर्सिस्टेंस एपीआई (जेपीए) जावा अनुप्रयोगों में रिलेशनल डेटा के प्रबंधन को परिभाषित करता है।

यह सिर्फ एक विनिर्देश है। विभिन्न ओआरएम उपकरण डेटा दृढ़ता के लिए इसे लागू करते हैं।

इसे javax.persistence पैकेज में परिभाषित किया गया है।

EntityManagerFactory इंटरफ़ेस का उपयोग इकाई प्रबंधक कारखाने के साथ दृढ़ता इकाई के लिए बातचीत करने के लिए किया जाता है। इस प्रकार, यह एक इकाई प्रबंधक प्रदान करता है।

यह मैप किए गए निकाय वर्गों के उदाहरणों के लिए संचालन बनाने, पढ़ने और हटाने के लिए EntityManager इंटरफ़ेस का उपयोग करता है। यह इंटरफ़ेस दृढ़ता के संदर्भ में बातचीत करता है।

यह डेटाबेस संचालन करने के लिए ऑब्जेक्ट-ओरिएंटेड क्वेरी लैंग्वेज के रूप में जावा पर्सिस्टेंस क्वेरी लैंग्वेज (JPQL) का उपयोग करता है।


Hibernate

हाइबरनेट एक ऑब्जेक्ट-रिलेशनल मैपिंग (ओआरएम) उपकरण है जो डेटाबेस में जावा ऑब्जेक्ट की स्थिति को बचाने के लिए उपयोग किया जाता है।

यह सबसे अधिक उपयोग किए जाने वाले जेपीए कार्यान्वयन में से एक है।

यह org.hibernate पैकेज में परिभाषित किया गया है।

यह सत्र उदाहरण बनाने के लिए SessionFactory इंटरफ़ेस का उपयोग करता है।

यह मैप किए गए इकाई वर्गों के उदाहरणों के लिए संचालन बनाने, पढ़ने और हटाने के लिए सत्र इंटरफ़ेस का उपयोग करता है। यह जावा एप्लिकेशन और हाइबरनेट के बीच एक रनटाइम इंटरफ़ेस के रूप में व्यवहार करता है।

यह डेटाबेस ऑपरेशन करने के लिए ऑब्जेक्ट-ओरिएंटेड क्वेरी लैंग्वेज के रूप में हाइबरनेट क्वेरी लैंग्वेज (HQL) का उपयोग करता है।

Tuesday, February 23, 2021

Difference between CountDownLatch and CyclicBarrier in Java in Hindi

दोनों CyclicBarrier और CountDownLatch का उपयोग एक ऐसे परिदृश्य को कार्यान्वित करने के लिए किया जाता है जहां एक thread प्रसंस्करण शुरू करने से पहले एक या अधिक थ्रेड के लिए अपनी job पूरी करने का इंतजार करता है,

 लेकिन difference between CountDownLatch and CyclicBarrier in Java है कि उन्हें अलग करता है और वह यह है कि, आप पुन: उपयोग नहीं कर सकते एक ही CountDownLatch उदाहरण एक बार गिनती शून्य तक पहुंच जाता है और कुंडी खुली रहती है, 

दूसरी CyclicBarrier को रीसेट करने के बाद CyclicBarrier को फिर से इस्तेमाल किया जा सकता है, एक बार बैरियर टूट जाने के बाद।


CountDownLatch की एक उपयोगी संपत्ति यह है कि इसके लिए यह आवश्यक नहीं है कि थ्रेड्स को CountDownLatch कहा जाए क्योंकि countDown प्रतीक्षा कर रहा है कि गिनती आगे बढ़ने से पहले शून्य तक पहुंच जाए, 

यह किसी भी thread को आगे बढ़ने से रोकता है और तब तक इंतजार करता है जब तक कि सभी थ्रेड्स पास नहीं हो जाते।

एक CyclicBarrier एक वैकल्पिक Runnable कमांड का समर्थन करता है, जो एक बार बाधा बिंदु के बाद चलाया जाता है, पार्टी में अंतिम धागा आने के बाद, लेकिन किसी भी थ्रेड को जारी करने से पहले। 

यह बाधा कार्रवाई किसी भी पक्ष के जारी रहने से पहले साझा-स्थिति को अपडेट करने के लिए उपयोगी है।

CyclicBarrier विफल सिंक्रनाइज़ेशन प्रयासों के लिए एक fast-fail all-or-none breakage model का उपयोग करता है: यदि कोई थ्रेड बाधा, interruption, failure, or timeout,अन्य सभी थ्रेड्स, यहां तक ​​कि उन सभी को समय से पहले एक अवरोध बिंदु छोड़ देता है, 

जो अभी तक एक पिछले से फिर से शुरू नहीं हुए हैं await (),BrokenBarrierException (या InterruptedException के माध्यम से असामान्य रूप से छोड़ देंगे यदि वे भी एक ही समय में बाधित हो गए थे)।

यह आरेख अच्छी तरह से जावा समरूपता में काउंटडाउनचैच और साइक्लिक बैरियर के बीच के अंतर को स्पष्ट करता है:


difference between CountDownLatch and CyclicBarrier
 difference between CountDownLatch and CyclicBarrier

यह सब जावा में काउंटडाउनचैच और साइक्लिक बैरियर के बीच अंतर के बारे में है। जैसा कि मैंने कहा, महत्वपूर्ण अंतर यह है कि आप CyclicBarrier का पुन: उपयोग कर सकते हैं लेकिन एक बार काउंट डाउन शून्य तक पहुंचने पर CountDownLatch का पुन: उपयोग नहीं किया जा सकता है।

इसलिए CyclicBarrier का उपयोग अक्सर तब किया जाता है जब कार्य को दोहराया जाता है जबकि CountDownLatch का उपयोग क्लाइंट कनेक्शन स्वीकार करने से पहले प्रारंभिक कैश लोड करने जैसे एक बार के कार्य के लिए किया जाता है।

How to pause Thread in Java with the help of Sleep() and TimeUnit Example

 वर्तमान में चल रहे थ्रेड को रोकने या निष्पादित करने के कई तरीके हैं, लेकिन थ्रेड को स्लीप स्टेट में Thread.sleep() method का उपयोग करके पॉज़ को पेश करने का सही तरीका है।

 कुछ लोग कहेंगे,  why not use wait and notify?. सिर्फ थ्रेडिंग के लिए उन तरीकों का उपयोग करना अच्छा नहीं है। 

वे सशर्त प्रतीक्षा के उपकरण हैं और वे समय पर निर्भर नहीं करते हैं। wait() का उपयोग करते हुए अवरुद्ध एक thread wait तक रहेगा जिस पर वह प्रतीक्षा कर रहा है उस स्थिति को बदल दिया जाता है। 

 हां, आप वहां टाइमआउट कर सकते हैं लेकिन  wait() method अलग है, वे जावा में इंटर-थ्रेड संचार के लिए डिज़ाइन किए गए हैं।

 sleep () method का उपयोग करके, आप कुछ समय के लिए करंट को रोकते हैं।
 

आपको wait() and notify()और इसके विपरीत में sleep () का उपयोग कभी नहीं करना चाहिए। 

एक और कारण है कि थ्रेड को रोकने के लिए प्रतीक्षा और सूचना का उपयोग नहीं किया जाना चाहिए, उन्हें लॉक की आवश्यकता है। 

आप उन्हें केवल एक सिंक्रनाइज़ विधि या ब्लॉक से कॉल कर सकते हैं और प्राप्त कर सकते हैं और एक lock releaseकर सकते हैं सस्ता नहीं है।

इससे भी महत्वपूर्ण बात, आपको केवल थ्रेडिंग के लिए ताला लगाने की आवश्यकता क्यों है? wait () और sleep() method के बीच एक महत्वपूर्ण अंतर यह है कि, Thread.sleep () वर्तमान थ्रेड को प्रतीक्षा पर रखता है, लेकिन इसे पकड़े हुए किसी भी लॉक को रिलीज़ नहीं करता है,

 लेकिन प्रतीक्षा जारी होने से पहले होने वाले लॉक को रिलीज़ करता है अवरुद्ध अवस्था में।

संक्षेप में, multi-threading आसान नहीं है, यहां तक ​​कि एक साधारण कार्य जैसे कि एक
thread बनाना, एक thread को रोकना या एक thread रोकना जावा एपीआई के अच्छे ज्ञान की आवश्यकता है। 

आपको सही जगह पर सही विधि का उपयोग करने की आवश्यकता है।

How to pause Thread using Sleep in Java in Hindi

यहाँ जावा में Thread.sleep () और TimeUnit.sleep () पद्धति का उपयोग करके एक रनिंग थ्रेड को रोकने के लिए हमारा नमूना जावा प्रोग्राम है। 

इस सरल कार्यक्रम में, हमारे पास दो धागे हैं, मुख्य धागा जो जेवीएम द्वारा शुरू किया गया है और public static void main(String args[]) method को लागू करके आपके जावा प्रोग्राम को निष्पादित करता है।

 second thread "T 1" है, जिसे हमने बनाया है और इसका उपयोग हमारे गेम लूप को चलाने के लिए किया जाता है। 

इस थ्रेड के लिए हमने जो रनवेबल टास्क पास किया, उसमें लूप रहते हुए अनंत है, जो रुकने तक चलता है। 

यदि आप बारीकी से देखते हैं, तो हमने जावा में एक धागा को रोकने के लिए एक अस्थिर संशोधक का उपयोग किया है।

मुख्य थ्रेड पहले थ्रेड शुरू करता है और फिर हमारे गेम क्लास में स्टॉप () पद्धति का उपयोग करके इसे रोकता है जो रननेबल का विस्तार करता है। जब T1 शुरू होता है तो यह गेम लूप में चला जाता है और फिर 200 मिलीसेकंड के लिए रुक जाता है। 

बीच में हमने TimeUnit.sleep () method का उपयोग करके सोने के लिए मुख्य धागा भी रखा है। 

तो main thread कुछ समय के लिए इंतजार कर सकता है और इस बीच, टी 1 फिर से शुरू और समाप्त हो जाएगा। यदि आपने पहले से नहीं पढ़ा है, तो आपको जावा में मल्टीथ्रेडिंग की व्यापक समझ हासिल करने के लिए जावा कंसीलर प्रैक्टिस में पढ़ना चाहिए।

एक उदाहरण में, हमने thread in Java को रोकने के दो तरीके सीखे हैं। Thread.sleep () method और TimeUnit.sleep () method का उपयोग करके। आपके पास  using Thread.sleep()  एक मिलीसेकंड में sleep का समय है लेकिन यह कोड से स्पष्ट नहीं है। यह वह जगह है जहाँ TimeUnit वर्ग मदद करता है।

आपको एक विशिष्ट समय इकाई के लिए टाइम यूनाइट उदाहरण मिलता है। उस पर sleep से पहले  TimeUnit.SECONDS or TimeUnit.MICROSECOND

आप इसके बहुत अधिक स्पष्ट रूप से देख सकते हैं कि एक thread अब कितने समय तक इंतजार करेगा। 

संक्षेप में, टाइम यूनाइट क्लास 'sleep () विधि का उपयोग किसी थ्रेड को रोकने के लिए करें क्योंकि यह अधिक पठनीय है।


Thread.sleep() and TimeUnit Example in JAVA in Hindi

import static java.lang.Thread.currentThread;

import java.util.concurrent.TimeUnit;

/**
* Java Program to demonstrate how to pause a thread in Java.
* There is no pause method, but there are multiple way to pause
* a thread for short period of time. Two popular way is either
* by using Thread.sleep() method or TimeUnit.sleep() method.
*
* @author java67
*/


public class ThreadPauseDemo {

public static void main(String args[]) throws InterruptedException {
Game game = new Game();

Thread t1 = new Thread(game, "T1");
t1.start();

//Now, let's stop our Game thread
System.out.println(currentThread().getName() + " is stopping game thread");
game.stop();

//Let's wait to see game thread stopped
TimeUnit.MILLISECONDS.sleep(200);

System.out.println(currentThread().getName() + " is finished now");
}
}

class Game implements Runnable{
private volatile boolean isStopped = false;

public void run() {

while(!isStopped){
System.out.println("Game thread is running.....");
System.out.println("Game thread is now going to pause");

try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println("Game thread is now resumed ..");
}

System.out.println("Game thread is stopped....");
}

public void stop(){
isStopped = true;
}
}

Output
main is stopping game thread
Game thread is running.....
Game thread is now going to pause
Game thread is now resumed ..
Game thread is stopped....
main is finished now

Important points about sleep() method :

अब आप जानते हैं कि थ्रेड को स्लीप या पॉज़ पर कैसे रखा जाता है, यह JAVA में Thread.sleep() पद्धति के बारे में कुछ तकनीकी विवरणों को जानने का समय है।

How to pause Thread in Java in hindi
How to pause Thread in Java

1) Thread.sleep() एक स्थिर तरीका है और यह हमेशा सोने के लिए मौजूदा थ्रेड को रखता है।

2) आप sleep हुए thread पर  interrupt() method कहकर sleep के thread को जगा सकते हैं।

3) नींद की विधि इस बात की गारंटी नहीं देती है कि धागा कई मिलीसेकेंड के लिए सोएगा, इसकी सटीकता सिस्टम टाइमर पर निर्भर करती है और यह पहले थ्रेड के लिए संभव है।

4) यह उस acquired
lock को release नहीं करता है।


TimeUnit's sleep() method और टाइम यूनीट sleep () पद्धति का उपयोग करके थ्रेड को थ्रेड पर कैसे रखा जाए, यह सब है। 

TimeUnit class का उपयोग करना बेहतर है क्योंकि यह कोड की पठनीयता में सुधार करता है, 

लेकिन यह याद रखना भी मुश्किल नहीं है कि तर्क सोने के लिए sleep()  विधि मिलीसेकंड में है। याद रखने वाली दो मुख्य बातें यह है कि Thread.sleep () एक स्थिर विधि है और हमेशा sleep के लिए वर्तमान थ्रेड को रखें, और यह स्लीप थ्रेड द्वारा आयोजित किसी भी लॉक को रिलीज़ नहीं करता है।

Sunday, February 21, 2021

Thread.start() and Thread.run() For java thread interview question

Difference between Thread.start() and Thread.run() method in Java in Hindi?


यदि आपको याद है, जावा में
start() पद्धति को java.lang.Thread क्लास कहकर एक थ्रेड शुरू किया गया है, लेकिन यदि आप अधिक सीखते हैं, तो आपको पता चलेगा कि start()विधि आंतरिक रूप से run() रननेबल इंटरफ़ेस की विधि को कॉल करती है 

अलग थ्रेड में run () विधि में निर्दिष्ट कोड निष्पादित करें। अब सवाल यह है कि, आप start() विधि को कॉल करने के बजाय run () पद्धति को क्यों नहीं कह सकते?

 चूंकि start(),run() को कॉल कर रहा है  वैसे भी, कॉलिंग रन का सीधा प्रभाव कॉलिंग के समान होना चाहिए, नहीं?

खैर, यह मुश्किल java multithreading interview questions में से एक है जो आपको java interview question पर मिलेगा और यह आसान नहीं है क्योंकि यह दिखता है, खासकर यदि आपको java threads के बारे में आधा ज्ञान है।

यहां ट्रिक यह है कि जब आप run () विधि को सीधे कॉल करते हैं तो run () विधि के अंदर कोड को उसी थ्रेड में निष्पादित किया जाता है जो  run method को कॉल करता है। 

JVM तब तक एक नया सूत्र नहीं बनाएगा जब तक आप प्रारंभ विधि को कॉल नहीं करते।

दूसरी तरफ, जब आप Thread.start() method को कॉल करते हैं, तो run() विधि को एक नए थ्रेड पर निष्पादित किया जाएगा, जो वास्तव में  start() विधि द्वारा बनाई गई है।

याद रखने के लिए शुरू और चलाने की विधि के बीच एक और महत्वपूर्ण अंतर यह है कि आप रन विधि को कई बार कॉल कर सकते हैं, जेवीएम किसी भी त्रुटि को नहीं फेंकेगा लेकिन जब आप एक ही thread उदाहरण पर
start() method को कॉल नहीं कर सकते।

पहली बार, t.start () एक नया थ्रेड बनाएगा, लेकिन दूसरी बार यह java.lang.IllegalStateException को फेंक देगा, क्योंकि थ्रेड पहले ही शुरू हो चुका है और आप इसे फिर से शुरू नहीं कर सकते, आप केवल जावा में एक थ्रेड को रोक सकते हैं। एक बार जब यह मर गया तो यह चला गया।

Difference between start() and run() method of Thread class in java in hindi


Run () विधि रननेबल इंटरफ़ेस से आती है लेकिन start () method केवल थ्रेड क्लास में घोषित की जाती है।

 चूंकि java.lang.Thread क्लास इम्प्लीमेंट रनवेबल इंटरफेस है, आप थ्रेड क्लास के इंस्टेंस से run () विधि का उपयोग कर सकते हैं।

मैंने आपको थ्रेड पर कॉलिंग start () विधि और मुख्य थ्रेड से run () विधि को कॉल करने के अंतर को प्रदर्शित करने के लिए जावा प्रोग्राम के बाद बनाया है।

याद रखें, दोनों स्थितियों में run () विधि को कहा जाएगा लेकिन जब आप start () विधि को कॉल करेंगे तो इसे एक नए थ्रेड द्वारा बुलाया जाएगा।

दूसरी ओर, यदि आप run () विधि को सीधे कॉल करते हैं, तो इसे उसी थ्रेड पर बुलाया जाएगा यानी हमारे मामले में मुख्य थ्रेड।

विश्वास नहीं होता? कोड चलाएं और स्वयं देखें। अब उदाहरण देखते हैं।


/**
* Java Program to demonstrate the difference between run() vs start() method of
* Thread class in Java. Just remember that when you directly call the run()
* method, code written inside the run() method will be executed in the calling
* thread, but when you call the start() method then a new thread will be
* created to execute the code written inside run() method in Java.
*
* @author WINDOWS 8
*
*/

public class HelloWorldApp {

public static void main(String args[]) {
Thread t = new Thread() {

@Override
public void run() {
System.out.println(Thread.currentThread().getName()
+ " is executed the run() method");
}
};

System.out.println( Thread.currentThread().getName() + " Calling the start() method of Thread");
t.start();

// let's wait until the thread completes execution
try {
t.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println( Thread.currentThread().getName() + " Calling the run() method of Thread");
t.run();
}
}
OUTPUT : -

Threads in Java
Threads in Java in hindi


आप स्पष्ट रूप से देख सकते हैं कि जब हमारा main thread (main() method in Javaको निष्पादित करने वाला thread)start
() को कॉल करता है

 थ्रेड नाम के साथ एक नए thread की तुलना में विधि बनाई जाती है और run () विधि उस thread द्वारा निष्पादित की जाती है, लेकिन अगर आप सीधे जावा में एक ही main thread पर इसके निष्पादन की तुलना में run () विधि कहते हैं।

difference between start() and run() method in Java in Hindi के बारे में सब कुछ है। बस याद रखें कि भले ही start () विधि आंतरिक रूप से run() विधि को बुलाती है, इसका मुख्य उद्देश्य एक नया thread बनाना है। 

यदि आप सीधे run () method को कॉल करते हैं, तो रन के बजाय एक नया थ्रेड नहीं बनाया जाएगा उसी थ्रेड पर निष्पादित होगा। इसका मतलब है कि आपको हमेशा जावा में Thread.start() विधि को कॉल करके शुरू करना चाहिए।

Saturday, February 20, 2021

hibernate interview questions in Java

1. What is Hibernate in Hindi?

हाइबरनेट एक ओआरएम (ऑब्जेक्ट-रिलेशनल मैपिंग) फ्रेमवर्क है, जो डेवलपर को डेटा द्वारा खुद की दृढ़ता का ख्याल रखते हुए व्यावसायिक तर्क पर ध्यान केंद्रित करने की अनुमति देता है।

 जावा डेवलपर किसी ऑब्जेक्ट का उपयोग करके कोड लिख सकता है और हाइबरनेट डेटाबेस से लोड किए गए डेटा से उन ऑब्जेक्ट को बनाने और डेटाबेस में वापस अपडेट को सहेजने का ध्यान रख सकता है।

2. What are the advantages of Hibernate over JDBC for hibernate interview questions ?

Persistence यानि की डेटाबेस से डाटा को सेव और लोड करने के अलावा, Hibernate निम्नलिखित लाभ भी प्रदान करता है


1) Caching
2) Lazy Loading
3) Relationship management and provides code for mapping an object to the data
4) The developer is free from writing code to load/store data into the database.


3. Difference between get() vs load() method in Hibernate in Hindi?

यह हाइबरनेट साक्षात्कार प्रश्नों में से एक है, मैंने इसे कई बार देखा है। get () और load() विधि के बीच महत्वपूर्ण अंतर यह है कि load() एक अपवाद को फेंक देगा यदि कोई ऑब्जेक्ट उनके पास पारित आईडी के साथ नहीं मिला है, लेकिन get () शून्य हो जाएगा।

एक और महत्वपूर्ण अंतर यह है कि लोड डेटाबेस से टकराने के बिना प्रॉक्सी को वापस कर सकता है जब तक कि आवश्यकता न हो (जब आप आईडी के अलावा किसी भी विशेषता का उपयोग करते हैं) get()हमेशा डेटाबेस पर जाएं, इसलिए कभी-कभी load() विधि की तुलना में लोड का उपयोग get() तेज हो सकता है  ।

load() method का उपयोग करें, यदि आप जानते हैं कि वस्तु मौजूद है, और यदि आप ऑब्जेक्ट के अस्तित्व के बारे में निश्चित नहीं हैं, तो get() विधि।


hibernate interview questions for experienced
hibernate interview questions for experienced



4. What is the N+1 SELECT problem in Hibernate in Hindi?

N + 1 का चयन समस्या आलसी लोडिंग और लोड ऑन डिमांड स्ट्रैटेजी के परिणामस्वरूप होती है। इस मामले में, Hibernate N तत्वों के संग्रह को पॉप्युलेट करने के लिए N + 1 SQL क्वेरी निष्पादित करता है।

उदाहरण के लिए, यदि आपके पास N आइटमों की सूची है, जहां प्रत्येक आइटम में बोली वस्तु के संग्रह पर निर्भरता है।

 अब यदि आप प्रत्येक आइटम के लिए उच्चतम बोली ढूंढना चाहते हैं तो हाइबरनेट सभी वस्तुओं को लोड करने के लिए 1 क्वेरी और प्रत्येक आइटम के लिए बोली लोड करने के लिए एन बाद के प्रश्नों को आग लगा देगा।

इसलिए प्रत्येक आइटम के लिए उच्चतम बोली लगाने के लिए आपका एप्लिकेशन N + 1 प्रश्नों को समाप्त करता है। यह महत्वपूर्ण हाइबरनेट साक्षात्कार प्रश्नों में से एक है और मैं इस समस्या को और अधिक विस्तार से समझने के लिए हाइबरनेट के साथ जावा दृढ़ता के अध्याय 13 को पढ़ने का सुझाव देता हूं।

5. What are some strategies to solve the N+1 SELECT problem in Hibernate in Hindi?

यह पिछले हाइबरनेट साक्षात्कार प्रश्न का अनुवर्ती प्रश्न है। यदि आप अंतिम प्रश्न का सही उत्तर देते हैं तो आपसे सबसे अधिक यही पूछा जाएगा।

यहाँ N + 1 समस्या को हल करने के लिए कुछ रणनीतियाँ दी गई हैं:

1) pre-fetching in batches, will reduce the N+1 problem to N/K + 1 problem where  K is the size of the batch
2) subselect fetching strategy
3) disabling lazy loading


5. What is the difference between save() and persist() method in Hibernate for hibernate interview questions ?

Save () और persist () विधि के बीच मुख्य अंतर यह है कि, रिटर्न एक Serializable ऑब्जेक्ट को बचाते हैं जबकि persist () विधि का रिटर्न प्रकार शून्य होता है, इसलिए यह कुछ भी वापस नहीं करता है।


difference between save() and persist() in Hindi
difference between save() and persist() in Hindi

7. What is the requirement for a Java object to become a Hibernate entity object?


यह final नहीं होना चाहिए और एक default, no-argument constructor प्रदान करना चाहिए। एक जावा ऑब्जेक्ट के लिए हाइबरनेट एंटिटी बनने के लिए विशेष आवश्यकता के बारे में अधिक जानने के लिए विस्तृत उत्तर देखें।


8. What are the different types of caches available in Hibernate for spring hibernate interview questions?

यह एक और सामान्य hibernate interview questions है। हाइबरनेट आउट-ऑफ-द-बॉक्स कैशिंग समाधान प्रदान करता है लेकिन  level cache, second-level cache, and query cache जैसे कई cache हैं।

प्रथम स्तर का कैश सत्र स्तर पर बनाए रखा जाता है और उसे अक्षम नहीं किया जा सकता है लेकिन दूसरे स्तर के कैश को EhCache जैसे बाहरी कैश प्रदाता के साथ कॉन्फ़िगर करना आवश्यक है।

9. What is the difference between the first and second level cache in Hibernate in Hindi?

यह फिर से पिछले Hibernate interview question का अनुवर्ती है। first level cache session स्तर पर बनाए रखा जाता है, जबकि  second level cache session स्तर पर बनाए रखा जाता है और सभी sessions द्वारा साझा किया जाता है।


10. Does Hibernate Session interface thread-safe in Java?
नहीं, हाइबरनेट में सत्र ऑब्जेक्ट थ्रेड-सुरक्षित नहीं है और इसका उपयोग एप्लिकेशन में एक ही थ्रेड में करने के लिए किया जाता है।


11. Does SessionFactory thread-safe in Hibernate?

 
SessionFactory इम्यूटेबल और थ्रेड-सेफ दोनों है और हाइबरनेट एप्लिकेशन में इसका केवल एक ही उदाहरण है। इसका उपयोग एक सत्र वस्तु बनाने के लिए किया जाता है और यह कई सत्रों द्वारा संग्रहीत SQL प्रश्नों को संग्रहीत करके कैशिंग भी प्रदान करता है।

दूसरे स्तर के कैश को सेशनफैक्टरी स्तर पर बनाए रखा जाता है। यह कम अनुभवी जावा डेवलपर्स के लिए एक कठिन और मुश्किल सवाल हो सकता है, जो थ्रेड-सेफ्टी और इम्युनिटी से परिचित नहीं हैं।


12. What is the difference between Session and SessionFactory in Hibernate for hibernate questions in Hindi?

यह एक और लोकप्रिय हाइबरनेट साक्षात्कार प्रश्न है, ज्यादातर साक्षात्कार के एक टेलीफोनिक दौर में।

सेशन और सेशनफैक्टरी के बीच मुख्य अंतर यह है कि पूर्व एकल-थ्रेडेड, अल्पकालिक वस्तु है जबकि बाद वाला अपरिवर्तनीय है और सभी सत्र द्वारा साझा किया जाता है।

यह तब तक भी रहता है जब तक कि हाइबरनेट नहीं चल रहा हो। Session and SessionFactory के बीच एक और अंतर यह है कि पूर्व प्रथम स्तर का कैश प्रदान करता है जबकि सेशनफैक्टरी दूसरे स्तर का कैश प्रदान करता है।


13. What is the criterion query in hibernate? 

मानदंड एक साधारणीकृत एपीआई है जिसे मानदंड ऑब्जेक्ट्स को मानदंड query के रूप में भी जाना जाता है।

यह "search" स्क्रीन जैसी कार्यक्षमता के लिए एक बहुत ही सुविधाजनक तरीका है, जहां आप निम्न उदाहरण में दिखाए गए अनुसार कई स्थितियों पर डेटा फ़िल्टर कर सकते हैं:


List books = session.createCriteria(Book.class)
.add(Restrictions.like("name", "java%") )
.add(Restrictions.like("published_year", "2015"))
.addOrder(Order.asc("name") )
.list();


14. What are other ORM frameworks? Any alternative of Hibernate?

यह एक सामान्य सवाल है, कभी-कभी बातचीत शुरू करने और साक्षात्कार खत्म करने के लिए अन्य बार कहा जाता है। ओरेकल से ईजेबी और टॉपलिंक हाइबरनेट ढांचे के दो सबसे लोकप्रिय विकल्प हैं।


15. What is the difference between the save() and saveOrUpdate() method of Hibernate? 

 
हालाँकि, Save () और saveOrUpdate () मेथड का उपयोग किसी ऑब्जेक्ट को डेटाबेस में स्टोर करने के लिए किया जाता है, उनके बीच महत्वपूर्ण अंतर यह है कि सेव केवल INSERT रिकॉर्ड ही कर सकता है, लेकिन saveOrUpdate () या तो INSERT या UPDATE रिकॉर्ड को सुरक्षित कर सकता है।

16. What is difference between getCurrentSession() and openSession() in Hibernate?

 
एक दिलचस्प hibernate interview questionsजैसा कि आपने सत्र ऑब्जेक्ट का एक उदाहरण प्राप्त करने के लिए getCurrentSession () और OpenSession () दोनों का उपयोग किया हो सकता है। मैंने आपके अनुभव के आधार पर उत्तर देने या उत्तर खोजने के लिए आपके लिए अनुत्तरित इस प्रश्न को छोड़ दिया है।


17. What is Hibernate Query Language (HQL)? 

हाइबरनेट क्वेरी भाषा, HQL SQL के लिए ऑब्जेक्ट-ओरिएंटेड एक्सटेंशन है। यह आपको SQL का उपयोग किए बिना डेटाबेस से ऑब्जेक्ट्स को क्वेरी, स्टोर, अपडेट और पुनर्प्राप्त करने की अनुमति देता है।

यह प्रश्न भी मानदंड क्वेरी के बारे में पहले के प्रश्न के समान है, जावा डेवलपर्स जिन्होंने बड़े पैमाने पर हाइबरनेट का उपयोग नहीं किया है, उन्हें एचक्यूएल और मानदंड जैसी सुविधाओं के बारे में ज्यादा जानकारी नहीं होगी।


18. When do you use merge() and update() in Hibernate in java in hindi?


यह मुश्किल हाइबरनेट साक्षात्कार प्रश्नों में से एक है। आपको
update() का उपयोग करना चाहिए यदि आप सुनिश्चित हैं कि हाइबरनेट सत्र में एक ही आईडी के साथ पहले से ही लगातार उदाहरण नहीं है और यदि आप सत्र की स्थिति पर विचार किए बिना किसी भी समय अपने संशोधनों को मर्ज करना चाहते हैं तो merge() का उपयोग करें।

19. The difference between sorted and ordered collections in Hibernate in hindi? 

सॉर्ट किए गए और ऑर्डर किए गए संग्रह के बीच मुख्य अंतर यह है कि सॉर्ट किया गया कलेक्शन जावा के कलेक्शन फ्रेमवर्क सॉर्टिंग विधियों का उपयोग करते हुए जेवीएम की ढेर मेमोरी में डेटा को सॉर्ट करता है जबकि ऑर्डर किए गए कलेक्शन को डेटाबेस में ही क्लॉज द्वारा ऑर्डर का उपयोग करके सॉर्ट किया जाता है।

एक सॉर्ट किया गया संग्रह एक छोटे डेटासेट के लिए अधिक अनुकूल है, लेकिन एक बड़े डेटासेट के लिए, जावा एप्लिकेशन में आउटऑफ़मैरीऑरर से बचने के लिए एक ऑर्डर किए गए संग्रह का उपयोग करना बेहतर है।


20. How do you log SQL queries issued by the Hibernate framework in Java application? 

आप हाइबरनेट फ्रेमवर्क द्वारा जारी SQL क्वेरी को लॉग करने के लिए show_sql संपत्ति का उपयोग कर सकते हैं, बस अपनी हाइबरनेट कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्ति जोड़ें:

<property name=”show_sql”> true </property>


21. What are the three states of a Hibernate Persistence object can be?

 
सीतनिद्रा में रहना या इकाई वस्तु निम्नलिखित तीन अवस्थाओं में रह सकती है:
1) transient
2) persistent
3) detached


22. What is the difference between the transient, persistent, and detached state in Hibernate?

जावा प्रोग्राम में बनाई गई नई वस्तुएं लेकिन किसी भी हाइबरनेट सत्र से जुड़ी नहीं हैं, जो क्षणिक स्थिति में हैं।

दूसरी ओर, एक वस्तु जो हाइबरनेट सत्र से जुड़ी होती है उसे एक स्थायी वस्तु कहा जाता है। जबकि एक वस्तु जो पहले हाइबरनेट सत्र से जुड़ी थी, लेकिन वर्तमान में यह सहयोगी नहीं है, एक अलग वस्तु के रूप में जानी जाती है।

आप उन वस्तुओं को डेटाबेस में संग्रहीत करने और उन्हें स्थायी स्थिति में लाने के लिए save () या persist () विधि को कॉल कर सकते हैं। इसी प्रकार, आप
persist () या saveOrUpdate () विधि को कॉल करके एक अलग ऑब्जेक्ट को फिर से हाइबरनेट सत्र में संलग्न कर सकते हैं।

23. Which cache is used by Session Object in Hibernate? First level or second level cache?


एक सत्र ऑब्जेक्ट प्रथम-स्तरीय कैश का उपयोग करता है। जैसा कि मैंने आपको पहले बताया था कि दूसरे स्तर के कैश का उपयोग सेशनफैक्टरी स्तर पर किया जाता है।

 यह जांचने के लिए एक अच्छा प्रश्न है कि उम्मीदवार हाइबरनेट में काम कर रहा है या नहीं। यदि उसने लंबे समय तक हाइबरनेट में काम नहीं किया है तो वह इस सवाल में उलझ जाएगा।

Friday, February 19, 2021

Avoid deadlock in Java in Hindi

How to avoid deadlock in Java in Hindi?

जावा में गतिरोध से कैसे बचें? बहु-थ्रेडिंग के लिए लोकप्रिय जावा साक्षात्कार प्रश्न और सीज़न के स्वाद में से एक है, ज्यादातर वरिष्ठ स्तर पर पूछे जाने वाले प्रश्नों के साथ। 

भले ही समस्या बहुत बुनियादी दिखती है, लेकिन जब आप गहराई में जाना शुरू करते हैं, तो अधिकांश जावा डेवलपर्स अटक जाते हैं।

 java interview के सवालों के साथ शुरू होता है, "deadlock in java?" इसका उत्तर सरल है जब दो या दो से अधिक thread एक दूसरे के लिए इंतजार कर रहे हैं ताकि उन्हें जिस संसाधन (लॉक) की आवश्यकता हो, उसे छोड़ दें और अनंत समय के लिए अटक जाएं, स्थिति को गतिरोध कहा जाता है। यह केवल मल्टीटास्किंग या मल्टी-थ्रेडिंग के मामले में होगा।
 

यदि आप जावा मल्टी-थ्रेडिंग और concurrency में महारत हासिल करने के बारे में गंभीर हैं, तो मेरा सुझाव है कि आप उदमी पर माइकल पोगरेबिंसी द्वारा जावा मल्टीथ्रेडिंग, कॉन्सिरेन्सी, और परफॉर्मेंस ऑप्टिमाइज़ेशन कोर्स पर एक नज़र डालें। 

यह उच्च प्रदर्शन पर जोर देने के साथ जावा में मल्टीथ्रेडिंग, कॉन्सिरेन्सी, और पैरेलल प्रोग्रामिंग में एक विशेषज्ञ बनने के लिए एक उन्नत पाठ्यक्रम है

java deadlock detection in Hindi?

हालाँकि इसके कई उत्तर हो सकते हैं, मेरा संस्करण है; पहले मैं कोड को देखूंगा यदि मुझे एक नेस्टेड सिंक्रोनाइज़्ड ब्लॉक या दूसरे से एक सिंक्रोनाइज़्ड मेथड दिखाई देता है, या किसी अलग ऑब्जेक्ट पर लॉक लगाने की कोशिश की जा रही है, तो डवलप का एक अच्छा मौका है यदि कोई डेवलपर बहुत सावधान नहीं है।

एक अन्य तरीका यह है कि जब आप एप्लिकेशन को चलाते समय डेड-लॉक हो जाते हैं, तो उसे ढूंढने का प्रयास करें, थ्रेड डंप लेने की कोशिश करें, लिनक्स में आप इसे कमांड "kill -3" से कर सकते हैं, यह एक एप्लीकेशन में सभी थ्रेड्स की स्थिति को प्रिंट करेगा लॉग फ़ाइल, और आप देख सकते हैं कि कौन सा thread किस ऑब्जेक्ट पर लॉक है।

आप Fastthread.io जैसे टूल का उपयोग करके उस थ्रेड डंप का विश्लेषण कर सकते हैं जो आपको अपने थ्रेड डंप को अपलोड करने और उसका विश्लेषण करने की अनुमति देता है।

दूसरा तरीका jConsole / VisualVM का उपयोग करना है, यह आपको दिखाएगा कि कौन से धागे लॉक हो रहे हैं और किस ऑब्जेक्ट पर।

यदि आप अपने थ्रेड डंप का विश्लेषण करने के लिए समस्या निवारण उपकरण और प्रक्रियाओं के बारे में जानना चाहते हैं, 

तो मेरा सुझाव है कि आप यूरिया लेवी द्वारा प्लुरलसिटी पर जावा थ्रेड डंप्स का विश्लेषण करने पर एक नज़र डालें। 

जावा थ्रेड डंप के बारे में अधिक जानने के लिए एक उन्नत व्यावहारिक पाठ्यक्रम, और अन्य लोकप्रिय उन्नत समस्या निवारण उपकरण के साथ आपको परिचित करता है।

मेरा यह भी सुझाव है कि आप  Java Concurrency in Practice Bundle by Heinz Kabutz,में शामिल हों, जावा में कंसर्ट और मल्टी-थ्रेडिंग में महारत हासिल करने के लिए सबसे उन्नत पाठ्यक्रम सामग्री में से एक। यह ब्रायन गोएत्ज़ द्वारा क्लासिक जावा कॉनक्यूरिटी इन प्रैक्टिस किताब पर आधारित है, जो कि हर जावा डेवलपर के लिए एक अनुशंसित रीडिंग है।


deadlock in java in hindi
 deadlock in java


Write a Java program that will result in deadlock?

एक बार जब आप पहले वाले प्रश्न का उत्तर दे देते हैं, तो वे आपसे कोड लिखने के लिए कह सकते हैं (write code which will result in a deadlock in Java?)जिसके परिणामस्वरूप जावा में गतिरोध आ जाएगा?

यहाँ मेरा एक संस्करण है

/**
* Java program to create a deadlock by imposing circular wait.
*
* @author WINDOWS 8
*
*/

public class DeadLockDemo {

/*
* This method request two locks, first String and then Integer
*/

public void method1() {
synchronized (String.class) {
System.out.println("Aquired lock on String.class object");

synchronized (Integer.class) {
System.out.println("Aquired lock on Integer.class object");
}
}
}

/*
* This method also requests same two lock but in exactly
* Opposite order i.e. first Integer and then String.
* This creates potential deadlock, if one thread holds String lock
* and other holds Integer lock and they wait for each other, forever.
*/

public void method2() {
synchronized (Integer.class) {
System.out.println("Aquired lock on Integer.class object");

synchronized (String.class) {
System.out.println("Aquired lock on String.class object");
}
}
}
}


यदि  method1() और  method2()दोनों को दो या कई थ्रेड द्वारा बुलाया जाएगा, तो गतिरोध का एक अच्छा मौका है क्योंकि यदि मेथड 1 को निष्पादित करते समय थ्रेड 1 स्टिंग ऑब्जेक्ट पर लॉक प्राप्त करता है और मेथड 2 को रन करते समय इंटेगर पर थ्रेड 2 प्राप्त करता है। () दोनों एक-दूसरे का इंतजार कर रहे होंगे कि आगे बढ़ने के लिए इंटेगर और स्ट्रिंग पर lock जारी हो।

यह आरेख ठीक हमारे कार्यक्रम को प्रदर्शित करता है, जहां एक thread एक वस्तु पर एक ताला रखता है और अन्य वस्तु ताले की प्रतीक्षा करता है जो अन्य धागे के स्वामित्व में हैं। 

avoid deadlock in java
java deadlock example


आप देख सकते हैं कि थ्रेड 1 ऑब्जेक्ट 2 पर लॉक चाहता है जो थ्रेड 2 द्वारा आयोजित किया गया है, और थ्रेड 2 ऑब्जेक्ट 1 पर एक लॉक चाहता है जो थ्रेड 1 द्वारा आयोजित किया जाता है। चूंकि कोई thread छोड़ने के लिए तैयार नहीं है, इसलिए एक गतिरोध है, और जावा प्रोग्राम अटका हुआ है।

विचार यह है कि आपको सामान्य समवर्ती पैटर्न का उपयोग करने का सही तरीका पता होना चाहिए, और यदि आप उनसे परिचित नहीं हैं, तो जोस पॉमर्ड द्वारा कॉमन जावा पैटर्न के लिए कंसीलर और मल्टी-थ्रेडिंग को लागू करना सीखने के लिए एक अच्छा प्रारंभिक बिंदु है।

How to avoid deadlock in Java In Hindi?

अब साक्षात्कारकर्ता अंतिम भाग में आता है, जो मेरे विचार में सबसे महत्वपूर्ण है; आप कोड में एक गतिरोध कैसे तय करते हैं? या  How to avoid deadlock in Java?

यदि आपने ऊपर दिए गए कोड को ध्यान से देखा है, तो आपको पता चल गया होगा कि गतिरोध का वास्तविक कारण एक से अधिक threads नहीं हैं, बल्कि जिस तरह से वे लॉक का अनुरोध कर रहे हैं, यदि आप आदेशित पहुंच प्रदान करते हैं तो समस्या हल हो जाएगी।

यहाँ मेरा निश्चित संस्करण है, जो गतिरोध से बचने के लिए गतिरोध से बचता है, बिना किसी पूर्वपरिवर्तन के, गतिरोध के लिए आवश्यक चार स्थितियों में से एक।

अब कोई गतिरोध नहीं होगा क्योंकि दोनों विधियाँ एक ही क्रम में इंटेगर और स्ट्रिंग वर्ग शाब्दिक रूप से लॉक पर पहुँच रही हैं। इसलिए, यदि थ्रेड A इंटेगर ऑब्जेक्ट पर लॉक प्राप्त कर लेता है, तो थ्रेड B तब तक आगे नहीं बढ़ेगा जब तक कि थ्रेड A रिलीज नहीं होता आगे बढ़ने के लिए इंटेगर लॉक।


public class DeadLockFixed {

/**
* Both method are now requesting lock in same order,
* first Integer and then String.
* You could have also done reverse e.g. first String and then Integer,
* both will solve the problem, as long as both method are requesting lock
* in consistent order.
*/

public void method1() {
synchronized (Integer.class) {
System.out.println("Aquired lock on Integer.class object");

synchronized (String.class) {
System.out.println("Aquired lock on String.class object");
}
}
}

public void method2() {
synchronized (Integer.class) {
System.out.println("Aquired lock on Integer.class object");

synchronized (String.class) {
System.out.println("Aquired lock on String.class object");
}
}
}
}



10 Important Points For Threads In Java In Hindi - Creak Java Interview

Threads in java :-

 1. जावा में थ्रेड निष्पादन के एक स्वतंत्र पथ का प्रतिनिधित्व करता है। (क्लासिक परिभाषा लेकिन मुझे अभी भी पसंद है)। थ्रेड द्वारा दर्शाया गया है



2. अपने जीवन काल के दौरान विभिन्न थ्रेड स्टेट्स जैसे NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING पर थ्रेड रहता है जो बताता है कि थ्रेड क्या कर रहा है।

10 Important Points For Threads In Java In Hindi
10 Important Points For Threads In Java In Hindi - Creak Java Interview

NEW का अर्थ है थ्रेड बस बनाया गया है लेकिन अभी तक नहीं बताया गया है, RUNNABLE का अर्थ है थ्रेड शुरू किया गया है

 लेकिन थ्रेड शेड्यूलर द्वारा सीपीयू के लिए प्रतीक्षा की जा रही है। ब्लॉक किया गया, प्रतीक्षा कर रहा है और TIMED_WAITING का अर्थ है कि धागा कुछ भी नहीं कर रहा है इसके बजाय अवरुद्ध हो गया है और IO के समाप्त होने की प्रतीक्षा कर रहा है, कक्षा या ऑब्जेक्ट लॉक, या किसी अन्य धागे आदि।

3. Java daemon or non daemon (जिसे उपयोगकर्ता सूत्र भी कहा जाता है) में दो प्रकार के थ्रेड होते हैं। 

जावा प्रोग्राम तब तक चलता है जब तक कि कम से कम एक गैर-डेमॉन thread मौजूद न हो।

 जेवीएम द्वारा शुरू किया गया पहला गैर-डेमन धागा मुख्य धागा है जो जेवीएम द्वारा बनाया गया है और जावा में मुख्य विधि के अंदर कोड निष्पादित करने के लिए जिम्मेदार है। इसे हॉटस्पॉट वर्चुअल मशीन में "VM thread" कहा जाता है। 

Java.lang.Thread start () मेथड से मुख्य थ्रेड का उपयोग करके बनाया गया कोई भी धागा डिफ़ॉल्ट नॉन-डेमन द्वारा है, लेकिन आप सेटडोमन (ट्रू) विधि को कॉल करके इसे डेमन बना सकते हैं। जावा में नया बनाया गया थ्रेड से डेमन प्रॉपर्टी को विरासत में मिला है जो इसे बनाता है। चूंकि मुख्य thread गैर-डेमॉन है, इसलिए डिफ़ॉल्ट रूप से इसके द्वारा बनाया गया कोई भी thread गैर-डेमॉन बना हुआ है।

threads in java 4. हर जावा थ्रेड में प्राथमिकता और नाम होता है। जावा में java.lang.Thread क्लास की ऑब्जेक्ट बनाते समय आप प्राथमिकता निर्धारित कर सकते हैं और सार्थक नाम निर्दिष्ट कर सकते हैं। 

इसकी सलाह देते हैं कि इसे बनाते समय हर धागे को एक सार्थक नाम दिया जाए, यह बाद में मदद करता है जब आप अपने जावा प्रोग्राम को डीबग करते हैं या विश्लेषण के लिए थ्रेड डंप लेते हैं। अन्यथा जावा आपके थ्रेड को "Thread-number" की तरह डिफ़ॉल्ट नाम देगा, यदि थ्रेड  java.lang.Thread या "pool-number-thread-number" का उपयोग करके बनाया गया है, यदि थ्रेड का उपयोग थ्रेडफैक्ट्री का उपयोग करके बनाया गया है।

 जावा में उच्च प्राथमिकता वाले थ्रेड को प्राथमिकता में कम प्राथमिकता वाले धागे पर वरीयता मिलती है। आप थ्रेड क्लास से getProiroty () जैसी विधि का उपयोग करके प्राथमिकता की जांच कर सकते हैं।

5. थ्रेड का निर्माण एक समय लेने वाला काम है इसलिए समवर्ती कार्य करने के लिए थ्रेड पूल होने से प्रदर्शन और मापनीयता की आधुनिक आवश्यकता है।

 जावा 5 एक्ज़ीक्यूटर फ्रेमवर्क प्रदान करता है जो एप्लिकेशन कोड से थ्रेड बनाने और प्रबंधित करने के कार्य को एन्क्रिप्ट करता है। 

यदि आपके एप्लिकेशन को लोड को संभालने की आवश्यकता है, तो थ्रेड पूल का उपयोग करने पर विचार करें। वेब और एप्लिकेशन सर्वर में यह थ्रेड पूल प्रबंधित करता है क्योंकि प्रत्येक अनुरोध अपने स्वयं के थ्रेड में संसाधित होता है।

6. Thread.sleep() विधि का उपयोग निर्दिष्ट अवधि के लिए थ्रेड को रोकने के लिए किया जाता है।

 यह java.lang.Thread क्लास में परिभाषित एक अधिभार विधि है। दूसरी ओर Thread.join () को चलाने से पहले अपने काम को पूरा करने के लिए दूसरे thread का इंतजार करने के लिए उपयोग किया जाता है और yield() विधि का उपयोग सीपीयू को त्यागने के लिए किया जाता है ताकि अन्य धागा इसे प्राप्त कर सकें। विवरण के लिए नींद, प्रतीक्षा और उपज के बीच अंतर देखें।

threads in java in Hindi 7. wait()और
notify() विधियों का उपयोग दो थ्रेड्स के बीच संवाद करने के लिए किया जाता है यानी जावा में इंटर थ्रेड कम्युनिकेशन के लिए। 

हमेशा लूप में प्रतीक्षा की wait() विधि की जांच करें और उन्हें सिंक्रनाइज़ संदर्भ से कॉल करें। wait() एक विधि है जिसे ऑब्जेक्ट क्लास में परिभाषित किया गया है, 

और वर्तमान थ्रेड को होल्ड पर रखता है और इस थ्रेड द्वारा आयोजित मॉनिटर (लॉक) को भी जारी करता है, जबकि अधिसूचित () और नोटिफिकेशन () विधियाँ उस मॉनिटर पर प्रतीक्षा कर रहे सभी थ्रेड को सूचित करती हैं। इस बात की कोई गारंटी नहीं है कि नोटिफिकेशन की वजह से थ्रेड शेड्यूलर द्वारा उठाया जाएगा और सीपीयू को निष्पादित करने के लिए दिया जाएगा। 

अंतर-सूत्र संचार प्राप्त करने के लिए प्रतीक्षा, सूचना और सूचना पद्धति का उपयोग करने के तरीके के बारे में अधिक जानने के लिए, प्रतीक्षा और सूचना विधि का उपयोग करके जावा में निर्माता उपभोक्ता समस्या को हल करने के बारे में मेरी पोस्ट देखें।

8. थ्रेड शेड्यूलिंग थ्रेड शेड्यूलर द्वारा किया जाता है जो प्लेटफॉर्म पर निर्भर है और JVM के अंदर रहता है। 

जावा से थ्रेड शेड्यूलर को नियंत्रित करने का कोई ज्ञात तरीका नहीं है और थ्रेड से संबंधित कई निर्णय शेड्यूलर द्वारा किया जाता है जैसे कि यदि कई थ्रेड्स प्रतीक्षा कर रहे हैं तो कौन सा थ्रेड सीपीयू से सम्मानित किया जाएगा।

9. Thread.isActive () विधि का उपयोग यह जांचने के लिए किया जाता है कि कोई थ्रेड सक्रिय है या नहीं। किसी थ्रेड को तब तक सक्रिय रहने के लिए कहा जाता है जब तक कि वह run() विधि से सामान्य रूप से या किसी अपवाद के कारण वापस नहीं आ जाता है। 

Thread.holdsLock() विधि का उपयोग यह जांचने के लिए किया जाता है कि थ्रेड लॉक है या नहीं। देखें कि अधिक विवरण के लिए thread लॉक है या नहीं, इसकी जांच कैसे करें।

threads in java 10. जावा में प्रत्येक थ्रेड का अपना स्टैक है, जिसका उपयोग स्थानीय चर और विधि कॉल को संग्रहीत करने के लिए किया जाता है। -एक्सएक्स का उपयोग करके इस स्टैक के आकार को नियंत्रित किया जा सकता है:
XX:ThreadStackSize  JVM विकल्प उदा। -XX:ThreadStackSize=512

 

11. जावा 5 ने कॉल करने योग्य इंटरफ़ेस का उपयोग करके जावा में थ्रेड्स के लिए कार्य को परिभाषित करने का एक और तरीका पेश किया। 

यह Runnable इंटरफ़ेस के समान है लेकिन कुछ और क्षमता प्रदान करता है उदा। यह कार्य निष्पादन के परिणाम को लौटा सकता है,

 जो रननेबल में संभव नहीं था, क्योंकि वापसी प्रकार का रन () विधि शून्य था। अपने पूर्ववर्ती की तरह यह एक call() पद्धति को परिभाषित करता है जो Future&lt;T&gt;ऑब्जेक्ट, आप कार्य निष्पादन का परिणाम प्राप्त करने के लिए इस ऑब्जेक्ट पर get() विधि कह सकते हैं। Callable के बारे में अधिक जानने के लिए, कृपया Java में Runnable और Callable इंटरफ़ेस के बीच अंतर देखें।

12. जावा जावा में एक थ्रेड को बाधित करने के लिए इंटरप्ट () विधि प्रदान करता है। आप running thread, waiting thread or sleep thread को बाधित कर सकते हैं। 

यह वह नियंत्रण है जो जावा एक अवरुद्ध या लटके हुए धागे को रोकने के लिए प्रदान करता है।

 एक बार जब आप किसी थ्रेड को बाधित करते हैं, तो यह इंटरप्टेड एक्ससेप्शन को भी फेंक देगा, जो यह सुनिश्चित करने के लिए एक जांचा गया अपवाद है कि आपका कोड हैंडल इंटरप्ट को लेना चाहिए

Thursday, February 18, 2021

Java spring interview questions and answers - Creak Java Interview

1. What is Tight Coupling?

जब एक वर्ग (ClassA) दूसरे वर्ग की वस्तु (ClassB) पर निर्भर होता है, तो हम कहते हैं कि ClassA "कसकर"(
"tightly" Coupled) ClassB के साथ युग्मित है।

 स्प्रिंग हमें इस तरह से कक्षाएं बनाने में मदद करता है जिससे टाइट कपलिंग को हटाया जा सके और लूज कपलिंग को किया जा सके।

2. What is Loose Coupling?

लूज कपलिंग किसी क्लास (क्लासए) पर किसी ऑब्जेक्ट (क्लासबी) की निर्भरता को हटा देता है।
 

Loose Coupling एक अंतरफलक और एक सेटर और गेट्टर विधि बनाकर, या एक कंस्ट्रक्टर का उपयोग करके किया जाता है जो इंटरफ़ेस ऑब्जेक्ट लेता है।

Java spring interview questions and answers in hindi
Java spring interview questions and answers


3. What are Beans in Spring?

जब @Component का उपयोग करके किसी class को एनोटेट या सजाया जाता है, तो ऐसी कक्षा को स्प्रिंग में बीन कहा जाता है। बीन्स का रख-रखाव एप्लिकेशन के संदर्भ में किया जाता है।



spring interview questions 4)  Explain Bean creation process?

बीन निर्माण की प्रक्रिया में निम्नलिखित चरण होते हैं

(i) एक वर्ग (c1) से शुरू होता है, जिसमें एनोटेशन @Component है।

(ii) जाँचता है कि component annotated class (c1) निर्भर है या नहीं।

(iii) यदि हाँ, तो स्प्रिंग उस वर्ग (c2) के लिए भी सेम बनाएगा।

(iv) @Autowired एनोटेशन और कंस्ट्रक्टर (c2) या डिफॉल्ट केस setClass Function (इंटरफेस द इंटरफेस) के माध्यम से दो वर्गों (c1 और c2) के बीच एक कनेक्शन या ऑटोवेयरिंग होगी।

5. What is the importance of the annotation @Primary

इस एनोटेशन का उपयोग उस वर्ग पर किया जाता है जिसे प्राथमिक आधार पर वसंत द्वारा लिया जाना चाहिए। 

उदाहरण के लिए, यदि ClassX @Component एनोटेट है और Class1 और Class2 (दोनों @Component एनोटेट) पर निर्भर है, 

तो कंपाइलर एक त्रुटि की रिपोर्ट करेगा। Class1 और Class2 के बीच प्राथमिक वर्ग दिखाने के लिए हम @Primary का उपयोग करते हैं।


6. What is Dependency Injection?

निर्भरता इंजेक्शन वह जगह है जहां वसंत सेम के लिए खोज करता है; एक बार उपयुक्त बीन मिल जाने के बाद, यह बीन को आश्रित वर्ग को सौंप देता है।

 डिपेंडेंसी इंजेक्शन वह प्रक्रिया है जहां स्प्रिंग फ्रेम बीन्स की तलाश करता है और निर्भरता की पहचान करता है, और बीन्स के उदाहरणों को बनाता है और उन्हें ऑटो करता है।

7. Explain Inversion of Control (IOC) for spring boot interview questions purpose.

टाइट कपलिंग में आश्रित वर्ग अपनी निर्भरता बनाने की जिम्मेदारी लेता है। जबकि, लूज कपलिंग में, हम निर्भरता वर्ग (या संदर्भ) पर @Autowired एनोटेशन का उपयोग करते हैं और स्प्रिंग इंस्टेंस बनाने का नियंत्रण लेता है और निर्भरता को इंजेक्ट करता है।

8. What are the roles of an IOC (Inversion of Control) Container?

IOC कंटेनर निम्नलिखित बातें करता है-

 (i) बीन्स का पता लगाएं

(ii) उनकी निर्भरता की पहचान करें और निर्भरता को तार दें

(iii) बीन का निर्माण (
creation, processing, and destruction))


9. What is Application Context for spring interview questions ?

यह IOC कंटेनर का उन्नत संस्करण है। यह बीन फैक्ट्री की सभी कार्यात्मकता प्रदान करता है और एओपी, अंतर्राष्ट्रीयकरण क्षमताओं, वेब अनुप्रयोग संदर्भ (अनुरोध, सत्र, आदि) जैसी चीजें भी प्रदान करता है।

10. Explain the process of creating an ApplicationContext in Spring.

ApplicationContext को दो तरीकों से परिभाषित किया जा सकता है

 (i) XML का उपयोग करके,

 (ii) @Configuration का उपयोग करके। एक बार कॉन्फ़िगरेशन ऊपर बताए गए किसी भी तरीके से किया जाता है, तो ApplicationContext नए ClassPathXmlApplicationContext का उपयोग करके बनाया जाता है। ClassPathXmlApplicationContext XML फ़ाइलों के लिए दिखता है, इसका उपयोग करना दो तरीकों में से एक है। दूसरा तरीका AnnotationConfigApplicationContext का उपयोग करना है।

11. Explain Component Scan For java spring interview questions.

घटक (Component) स्कैन स्प्रिंग-प्रबंधित घटकों का पता लगाने के लिए स्प्रिंग से पूछने का एक तरीका है, इस खोज का इनपुट पैकेज है। घटक स्कैन को परिभाषित करने के लिए दो विधियाँ उपलब्ध हैं-

(i) जावा विन्यास; जिसमें, हम @Component एनोटेशन का उपयोग करते हैं, जिसके लिए हम सभी पैकेज निर्दिष्ट करते हैं, जिसके लिए स्प्रिंग खोज करता है।

(ii) XML कॉन्फ़िगरेशन- हम

<context:component-scan base-package=”com.demo.compscanex”/>


12. How do you perform the same (above question) in Spring Boot?

स्प्रिंग बूट में स्कैन करने के लिए उपयोग किया जाने वाला एनोटेशन @SpringBootApplication है। 

किसी वर्ग पर यह एनोटेशन स्वचालित रूप से उस पैकेज पर घटक स्कैन आरंभ करेगा जहां वे हैं।

13. Differentiate @Component, @Repository and @Service and @Controller?

आमतौर पर एक वेब एप्लिकेशन को कंट्रोलर (जो क्लाइंट संचार का प्रारंभिक बिंदु है), व्यवसाय (जहां एप्लिकेशन का वास्तविक कोड या तर्क लिखा जाता है) और DAO (जहां डेटाबेस कनेक्शन और इंटरैक्शन होता है) जैसी परतों में विकसित किया जाता है।

 इस तरह के आर्किटेक्चर वेब एप्लिकेशन में, किसी भी लेयर में @Component का उपयोग किया जा सकता है।

 जबकि, नियंत्रक / वेब layers में @Controller का उपयोग किया जाता है। @Service का उपयोग व्यावसायिक परत में किया जाता है और @Repository का उपयोग DAO परत में किया जाता है।

14. List out the different scopes of Bean.

(i)  Singleton: पूरे वसंत संदर्भ में केवल एक उदाहरण बनाया जाता है।

(ii) Prototype: जब भी अनुरोध किया जाता है तो एक नया बीन बनाया जाता है।

(iii)  Request: हर HTTP अनुरोध एक बीन बनाता है।

(iv)
Session: हर HTTP सत्र के लिए एक सेम।

15. List out the types of Dependency Injection For spring interview questions and answers.

निर्भरता इंजेक्शन के प्रकार-

(i) सेटर इंजेक्शन और (ii) कंस्ट्रक्टर इंजेक्शन।

16. What is the difference between the Configuration types XML and Annotation in java spring?


ये कॉन्फ़िगरेशन सेट करने के दो तरीके हैं, और वे इस तरह से प्रदर्शन करते हैं। हालाँकि, जब एनोटेशन दृष्टिकोण (
approach ) को बहुत कम मात्रा में लिया जाता है तो कोड लिखा जाता है और परिणाम XML दृष्टिकोण की तुलना में समान होगा।

spring boot interview questions and answers 17. List out the ways Autowiring is done.

(i) byType
(ii) byName
(iii) Constructor (same as byType, but through constructor)

आप यह भी पसंद कर सकते हैं: शीर्ष 5 कौशल जो आपको एक निश्चित शॉट प्रोग्रामर बनाते हैं

18. What is Dirty Read in Java spring?

जब एक लेनदेन (t1) किसी अन्य लेनदेन (t2) द्वारा किए गए परिवर्तनों को पढ़ने के लिए होता है और बशर्ते लेनदेन t2 अभी तक प्रतिबद्ध नहीं है; तब ऐसी स्थिति में, लेनदेन t1 को डर्टी रीड लेनदेन कहा जाता है।

19. List out the new features available in Spring Framework 4.0 and Spring Framework 5.0?

स्प्रिंग 4.0 जावा सुविधाओं का समर्थन करने वाला पहला है। स्प्रिंग 5.0 में रिएक्टिव प्रोग्रामिंग और कोटलिन के लिए समर्थन है।

20. What is a FrontController?

फ्रंटकंट्रोलर में, सर्वलेट को पहला अनुरोध नहीं मिलेगा; पहला अनुरोध फ़्रंटकंट्रोलर के पास जाएगा और अनुरोध सही सर्वलेट पर पारित किया जाएगा।

 दूसरे शब्दों में, DispatcherServlet फ्रंट कंट्रोलर है जो क्लाइंट से सभी अनुरोधों को स्वीकार करता है और फिर उपयुक्त नियंत्रकों को भेजता है।

21. What is a ViewResolver For spring core interview questions ?

ViewResolver एक वेब एप्लिकेशन को गतिशील रूप से (जैसे JSP) अपने दृश्य का चयन करने में सक्षम बनाता है। 

ViewResolver को एक नाम मिलता है  by /WEB-INF/views and a .jsp.  द्वारा जोड़ा जाता है। सामग्री पर सभी प्रदर्शन एक HTML पृष्ठ में किया जाता है।

spring mvc interview questions  22) List out all the concepts that are available in the MVC Architecture?

(i) यह ब्राउज़र डिस्पैचर सेलेट को एक अनुरोध भेजता है

(ii) डिस्पैचरसर्व हैंड्रैपिंग को जानता है और उपयुक्त नियंत्रक पा सकता है

(iii) नियंत्रक अनुरोध को निष्पादित करते हैं और डेटा को मॉडल में डालते हैं और डिस्पैसरसर्वलेट में दृश्य नाम वापस करते हैं।

(iv) DispatcherServlet दृश्य नाम और ViewResolver को मैप पर देखने के लिए उपयोग करता है।

23. Explain Model Attribute?

एनोटेशन @ModelAttribute आमतौर पर एक नियंत्रक के अंदर मौजूद विधि पर सजाया गया है। यह नियंत्रक में उपलब्ध अन्य सभी विधियों में उपलब्ध विधि की मदद करेगा।

24. What is a Session Attribute?

एनोटेशन @SessionAttributes ("वाद") वर्ग (नियंत्रक) पर सजाया गया है। मॉडल में मौजूद विशेषता (तर्क) सत्र में उपलब्ध है।

आपको यह भी पसंद आ सकता है: 2018 के लिए शीर्ष 55 जावा साक्षात्कार प्रश्न और उत्तर

25. Explain the @InitBinder?

यह एनोटेशन एक विधि पर सजाया गया है जिसमें एक तिथि प्रारूप घोषित किया जाता है, और पूरे कक्षा में, निर्धारित तिथि प्रारूप का उपयोग किया जाता है।

 जब भी बंधन किसी दिनांक फ़ील्ड @InitBinder के साथ होता है; एनोटेशन CustomDateEditor का उपयोग करने के लिए कहता है, जो बदले में @InitBinder में उल्लिखित तिथि प्रारूप का उपयोग करता है।

spring boot interview questions 26) Define @ControllerAdvice?

इस एनोटेशन का उपयोग तब किया जाता है जब तर्क को कई वर्गों (नियंत्रकों) में आमतौर पर लागू करने की आवश्यकता होती है। 

उदाहरण के लिए, यदि एक अपवाद या उसके उपवर्ग, या जब कक्षाओं में कोई अपवाद उठाया जाता है, 

तो इसे @ExceptionHandler के साथ एनोटेट की गई विधि द्वारा नियंत्रित किया जाएगा। 

जब भी किसी भी नियंत्रक में कोई अपवाद होता है, तो अपवाद को @ExceptionHandler के साथ एनोटेट विधि द्वारा नियंत्रित किया जाता है।

27. Why Spring Boot use for java spring this question is usually asked in java spring interview questions ?

स्प्रिंग-आधारित एप्लिकेशन में बहुत सारे कॉन्फ़िगरेशन (बॉयलर-प्लेट कोड) हैं। 

स्प्रिंग एमवीसी में, बहुत सारे कॉन्फ़िगरेशन की आवश्यकता होती है (component scan, dispatcher servlet, view resolver, etc)। जबकि, स्प्रिंग बूट में बॉयलर-प्लेट कोड की आवश्यकता नहीं होती है।

28. Spring vs Spring MVC vs Spring Boot in Java?

स्प्रिंग: स्प्रिंग की सबसे महत्वपूर्ण विशेषता डिपेंडेंसी इंजेक्शन या नियंत्रण का विलोम है।

स्प्रिंग एमवीसी: वेब एप्लिकेशन विकसित करने में एक डिकूप्टेड दृष्टिकोण प्रदान करता है। DispatcherServlet, ModelAndView, ViewResolver जैसी अवधारणाएं वेब एप्लिकेशन विकास को आसान बनाती हैं।

स्प्रिंग बूट: ऑटो कॉन्फ़िगरेशन नामक एक सुविधा का उपयोग करके कॉन्फ़िगरेशन को बहुत आसान और स्वचालित बनाता है, जिसमें डिस्पैचरसर्वलेट आंतरिक रूप से किया जाता है।

29. What is the role of @SpringBootApplication?

इस एनोटेशन का उपयोग संपूर्ण एप्लिकेशन को लॉन्च करने के लिए किया जाता है। आंतरिक रूप से, @SpringBootApplication निम्न कार्य करता है,

@SpringBootConfiguration: स्प्रिंग ऐप्लिकेशन में @Configuration के समान।

@EnableAutoConfiguration: वर्गपथ में उपलब्ध कक्षाओं को स्वतः कॉन्फ़िगर करता है।

@ComponentScan: इस एनोटेशन के लागू होने पर एक पैकेज के तहत उपलब्ध सभी कक्षाएं स्कैन की जाएंगी।


30. What does an Embedded Server mean in Spring Boot?

किसी भी वेब एप्लिकेशन को तैनात करने के लिए टॉमकैट जैसे सर्वर की आवश्यकता होती है। 

स्प्रिंग बूट में एक सर्वर (जैसे टॉमकैट) एक जार में एप्लिकेशन के भाग के रूप में उपलब्ध है। 

एंबेडेड सर्वर की अवधारणा आवेदन की तैनाती को बहुत आसान और स्वतंत्र बनाती है।

31. Why do we use application.properties For spring boot interview questions ?

फ़ाइल Application.properties का उपयोग डेटाबेस विवरण, लॉग जनरेशन, सुरक्षा (उपयोगकर्ता नाम / पासवर्ड), क्रमांकन, आदि जैसी चीजों को कॉन्फ़िगर करने के लिए किया जाता है।

32. What is Spring JDBC?

स्प्रिंग JDBC डेटाबेस के साथ बातचीत करने के लिए अद्यतन (क्वेरी), निष्पादित (क्वेरी) और क्वेरी (SQL, resultSetExtractor) जैसे तरीकों का उपयोग करता है।

33. What is the difference between JDBC and Spring JDBC?

JDBC में, जाँच किए गए अपवादों को लिखना होगा; जबकि, स्प्रिंग JDBC में उन अपवादों को रनटाइम अपवाद में बनाया गया है। जिसका अर्थ है, स्प्रिंग JDBC में मैन्युअल रूप से अपवाद हैंडलिंग नहीं किया जाता है।

34. What is JPA For spring boot interview questions and answers ?

जावा पर्सिस्टेंस एपीआई (जेपीए) जावा ऑब्जेक्ट से डेटाबेस टेबल पर मैपिंग को परिभाषित करता है। 

डेटाबेस तालिका में एक पंक्ति में जावा ऑब्जेक्ट को मैप करने की प्रक्रिया को जेपीए में परिभाषित किया गया है। 

जेपीए कई उपयोगी एनोटेशन प्रदान करता है, जिसके उपयोग से कक्षाओं और तालिकाओं के बीच संबंध परिभाषित होते हैं।

35. What is Hibernate?

एक बार मानचित्रण हो जाने के बाद, हाइबरनेट (एक जेपीए कार्यान्वयन) हमें हुड के नीचे क्वेरी बनाने और डेटाबेस के साथ बातचीत करने में मदद करेगा।

36. Describe the cases in which the Dependency Injection is done through Constructors and Setters in java?


जब निर्भरता आवश्यक / अनिवार्य होती है, तो कन्स्ट्रक्टर दृष्टिकोण का चयन किया जाता है। और जब निर्भरता वैकल्पिक होती है तो सेटर्स अप्रोच का उपयोग किया जाता है।

आपको यह भी पसंद आ सकता है: शीर्ष 30 साक्षात्कार प्रश्न और उत्तर 5 कोणीय पर

37. What is the importance of POM.XML file?

प्रोजेक्ट ऑब्जेक्ट मॉडल (POM) एक XML स्वरूपित फ़ाइल है जिसमें एक मावेन परियोजना के लिए सभी कॉन्फ़िगरेशन को परिभाषित किया गया है। POM.XML में सबसे अधिक उपयोग किए जाने वाले टैग <groupid>, <artifactId>, <version>, <packaging> और कुछ और हैं।

spring core interview questions 38. What does the @RequestParam annotation do?


यह सर्वर पक्ष को डेटा से पढ़ने और स्वचालित रूप से विधि में आने वाले पैरामीटर से बांधने की अनुमति देता है।

39. What is Spring Security?

स्प्रिंग सिक्योरिटी J2EE एप्लिकेशन को सुरक्षा सेवाएँ प्रदान करती है। वसंत सुरक्षा हुड के तहत सर्वलेट फिल्टर का उपयोग करके कार्यान्वित की जाती है। सर्वलेट फ़िल्टर का उपयोग पूर्व-प्रक्रिया या पोस्ट-प्रोसेस वेब अनुरोधों के लिए किया जाता है।

40. What is CSRF For spring boot interview questions ?

क्रॉस-साइट रिक्वेस्ट फॉरेरी (CSRF) एक सुरक्षा हमला है, जहां एक जालसाज वेबसाइट उपयोगकर्ता को वेब एप्लिकेशन पर एक ईवेंट में प्रदर्शन करने के लिए ट्रिक करती है जिसे वह लॉग इन करता है। उदाहरण के लिए, यदि उपयोगकर्ता ऑनलाइन बैंकिंग खाते में लॉग इन होता है, तो यह हमला उपयोगकर्ता को किसी अज्ञात व्यक्ति को धन हस्तांतरित करने के लिए प्रेरित करता है।