CodeGym /جاوا بلاگ /Random-UR /جاوا انٹرویو کے 21 سرفہرست سوالات
John Squirrels
سطح
San Francisco

جاوا انٹرویو کے 21 سرفہرست سوالات

گروپ میں شائع ہوا۔
جاوا انٹرویو کے بے شمار سوالات ہیں اور ہم ان سب کو ایک مضمون میں جمع نہیں کر سکتے۔ تاہم آئی ٹی کمپنیوں کے ایچ آر مینیجرز کے مطابق، یہاں آپ کو جاوا انٹرویو کے کچھ بہت عام سوالات مل سکتے ہیں۔ جاوا انٹرویو کے 21 سرفہرست سوالات - 1
  1. " جدا کرنا " public static void main(String args[]).

    فریشرز کے لیے جاوا انٹرویو کے مقبول سوالات میں سے ایک، اور بہت آسان۔

    • publicایک رسائی موڈیفائر ہے۔ ہم اسے اس طریقہ تک رسائی کی وضاحت کے لیے استعمال کرتے ہیں۔ یہاں ترمیم کنندہ "عوامی" ہے، لہذا کسی بھی کلاس کو اس طریقہ تک رسائی حاصل ہے۔

    • static. اس جاوا کلیدی لفظ کا مطلب ہے کہ ہم کلاس کا نیا آبجیکٹ بنائے بغیر یہ طریقہ استعمال کرتے ہیں۔

    • Voidطریقہ کی واپسی کی قسم ہے۔ اس کا مطلب ہے کہ طریقہ کوئی قدر واپس نہیں کرتا ہے۔

    • mainطریقہ کار کا نام ہے. JVM اسے کسی درخواست کے اندراج کے نقطہ کے طور پر "جانتا ہے" (اس پر ایک خاص دستخط ہونا چاہئے)۔ Mainایک ایسا طریقہ ہے جہاں بنیادی عمل درآمد ہوتا ہے۔

    • String args[]. یہ وہ پیرامیٹر ہے جو مرکزی طریقہ کو منتقل کیا گیا ہے۔ یہاں ہمارے پاس String قسم کے دلائل ہیں جو آپ کی جاوا ایپلیکیشن قبول کرتی ہے جب آپ اسے چلاتے ہیں۔ آپ انہیں ٹرمینل پر ٹائپ کر سکتے ہیں۔

  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. مکمل بنیادی طریقہ کی غیر موجودگی کے بارے میں کیا خیال ہے؟ اگر آپ ایک عام کلاس کو مرکزی طریقہ کے بغیر چلانے کی کوشش کرتے ہیں، تو آپ کو اگلی خرابی ملی: کلاس ٹیسٹ میں بنیادی طریقہ نہیں ملا، براہ کرم بنیادی طریقہ کی وضاحت کریں: عوامی جامد باطل مین (String [] args) یا 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() آپریٹر کا استعمال کرتے ہوئے String آبجیکٹ بناتے ہیں تو یہ ہیپ میموری میں ایک نیا آبجیکٹ بناتا ہے۔ اگر ہم String لغوی نحو کا استعمال کرتے ہیں، جیسا کہ ہماری مثال میں، یہ String pool سے موجودہ آبجیکٹ واپس کر سکتا ہے، اگر یہ پہلے سے موجود ہے۔

  7. مندرجہ ذیل کوڈ میں کتنے آبجیکٹ بنائے گئے ہیں؟

    String s = new String("Hello");

    2 اشیاء ہیں۔ ایک سٹرنگ کنسٹنٹ پول میں ہے (اگر پہلے سے موجود نہیں ہے) اور دوسرا ہیپ میں ہے۔

  8. جاوا میں اور کلاسز کے Stringدرمیان StringBuilderکیا فرق ہے ؟StringBuffer

    جاوا انٹرویو کے سب سے اوپر والے سوالات میں سے ایک رہنما ہے۔

    سب سے پہلے Stringایک ناقابل تغیر کلاس ہے۔ اس کا مطلب ہے کہ ایک بار بننے کے بعد آپ اس کے مواد میں ترمیم نہیں کر سکتے۔ جبکہ StringBufferاور StringBuilderبدلنے والی کلاسز ہیں، لہذا آپ انہیں بعد میں تبدیل کر سکتے ہیں۔ اگر ہم Stringآبجیکٹ کے مواد کو تبدیل کرتے ہیں، تو یہ ایک نئی سٹرنگ بناتا ہے اس لیے یہ اصل کو تبدیل نہیں کرتا۔ یہی وجہ ہے کہ اس کے ساتھ کارکردگی StringBufferاس کے ساتھ سے بہتر ہے String۔

    کے درمیان بنیادی فرق StringBufferاور StringBuilderاس StringBufferکے طریقوں کو ہم آہنگ کیا جاتا ہے جبکہ StringBuilderکے نہیں ہوتے ہیں۔

  9. کیا اس میں کوئی فرق ہے کہ لفظی اور آپریٹر Stringکے ساتھ استعمال کیا گیا تھا ؟new()

    ہے. اگر ہم آپریٹر کے ساتھ سٹرنگ بناتے ہیں new()تو یہ ہیپ اور سٹرنگ پول میں ظاہر ہوتا ہے (اگر پہلے سے موجود نہیں ہے)۔ اگر آپ Stringلٹریل کا استعمال کرتے ہوئے تخلیق کرتے ہیں، تو یہ سٹرنگ پول میں بنایا جاتا ہے (اگر پہلے سے موجود نہیں ہے)۔ سٹرنگ پول ڈھیر کے اندر ذخیرہ کرنے کا علاقہ ہے، جو سٹرنگ لٹریلز کو ذخیرہ کرتا ہے۔

  10. کیا آپ جاوا میں اوور رائیڈ privateیا طریقہ اختیار کر سکتے ہیں؟static

    دوکھیبازوں کے لئے جاوا کے مشکل انٹرویو کے سوالات میں سے ایک۔ آپ واقعی جاوا میں اوور رائڈ privateیا طریقہ کار نہیں کرسکتے ہیں ۔static

    آپ طریقوں کو اوور رائڈ نہیں کر سکتے privateکیونکہ پرائیویٹ ایکسیس سپیفائیر کا دائرہ صرف کلاس کے اندر ہے۔ جب آپ کسی چیز کو اوور رائیڈ کرنے جا رہے ہیں، تو ہمارے پاس والدین اور بچوں کی کلاس ہونی چاہیے۔ اگر سپر کلاس کا طریقہ ہے تو private، چائلڈ کلاس اسے استعمال نہیں کر سکتی، اور چائلڈ کلاس میں طریقوں کو نئے طریقوں کے طور پر سمجھا جائے گا (اوور رائیڈڈ نہیں)۔

    Staticطریقوں کو بھی اوور رائڈ نہیں کیا جا سکتا، کیونکہ staticطریقے کلاس کا حصہ ہیں، اور کلاس کے کسی شے کا حصہ نہیں۔ یقینی طور پر آپ staticبچوں کی کلاسوں میں ایک ہی دستخط کے ساتھ ایک ہی طریقہ کا اعلان کر سکتے ہیں، لیکن دوبارہ، ان کو نئے طریقوں کے طور پر سمجھا جائے گا۔

  11. Abstract Classاور کے درمیان فرقInterface

    مقبول جاوا ڈویلپر انٹرویو سوالات میں سے ایک جو OOP اصولوں پر مشتمل ہے۔ سب سے پہلے، جاوا میں interfaceایک رویے کی وضاحت کرتا ہے اور abstract classدرجہ بندی پیدا کرتا ہے.

    خلاصہ کلاس انٹرفیس
    تجریدی کلاس میں میتھڈ باڈی (غیر تجریدی طریقوں) کا ہونا ممکن ہے۔ انٹرفیس میں صرف تجریدی طریقے ہوسکتے ہیں۔ جاوا 8 یا جدید تر میں، پہلے سے طے شدہ طریقوں کی وضاحت کرنا اور انہیں براہ راست انٹرفیس میں لاگو کرنا ممکن ہو گیا۔ نیز، جاوا 8 میں انٹرفیس میں جامد طریقے ہوسکتے ہیں۔
    مثال کے متغیر خلاصہ کلاس میں ہوسکتے ہیں۔ ایک انٹرفیس میں مثال کے متغیرات نہیں ہوسکتے ہیں۔
    تعمیر کنندگان کی اجازت ہے۔ انٹرفیس میں کوئی کنسٹرکٹر نہیں ہو سکتا۔
    جامد طریقوں کی اجازت ہے۔ جامد طریقوں کی اجازت نہیں ہے۔
    کلاس میں صرف ایک خلاصہ والدین ہو سکتا ہے۔ ایک انٹرفیس مختلف کلاسوں کو نافذ کرسکتا ہے۔
    خلاصہ کلاس انٹرفیس کے نفاذ کو فراہم کر سکتی ہے۔ انٹرفیس تجریدی کلاس کا نفاذ فراہم نہیں کر سکتا۔
    ایک خلاصہ کلاس کو دوسری جاوا کلاس کو بڑھانے اور متعدد جاوا انٹرفیس کو لاگو کرنے کی اجازت ہے۔ ایک انٹرفیس کو صرف دوسرے جاوا انٹرفیس کو بڑھانے کی اجازت ہے۔
    جاوا خلاصہ کلاس میں پرائیویٹ اور محفوظ کلاس ممبران ہو سکتے ہیں۔ جاوا انٹرفیس کے اراکین بطور ڈیفالٹ عوامی ہوتے ہیں۔
  12. کیا ہم کلاس staticمیں متغیرات اور طریقوں کا اعلان کر سکتے ہیں abstract؟

    staticہاں، متغیرات اور طریقوں کو abstractطریقہ کار میں بیان کرنا ممکن ہے ۔ جامد سیاق و سباق تک رسائی کے لیے کسی چیز کو بنانے کی ضرورت نہیں ہے۔ abstractلہذا ہمیں کلاس کے نام کا استعمال کرکے کلاس کے اندر اعلان کردہ جامد سیاق و سباق تک رسائی حاصل کرنے کی اجازت ہے abstract۔

  13. JVM کے ذریعہ کس قسم کے میموری کے علاقے مختص کیے گئے ہیں؟

    کلاس ایریا پرکلاس ڈھانچے کو اسٹور کرتا ہے، مثال کے طور پر، رن ٹائم مستقل پول، فیلڈز، طریقہ ڈیٹا، اور طریقوں کے لیے تمام کوڈ۔

    ہیپ رن ٹائم ڈیٹا ایریا ہے جہاں اشیاء کو میموری مختص کی جاتی ہے۔

    اسٹیک اسٹورز فریم۔ یہ مقامی متغیرات اور جزوی نتائج پر مشتمل ہے، اور طریقہ کی درخواست اور واپسی میں حصہ لیتا ہے۔ ہر تھریڈ میں ایک پرائیویٹ JVM اسٹیک ہوتا ہے، جسے تھریڈ کے ساتھ ہی بنایا جاتا ہے۔ ہر بار جب کوئی طریقہ استعمال کیا جاتا ہے تو ایک نیا فریم بنایا جاتا ہے۔ ایک فریم تب تباہ ہو جاتا ہے جب اس کا طریقہ کار مکمل ہو جاتا ہے۔

    پروگرام کاؤنٹر رجسٹر میں جاوا ورچوئل مشین انسٹرکشن کا ایڈریس ہوتا ہے جس پر اس وقت عمل کیا جا رہا ہے۔

    مقامی طریقہ اسٹیک میں وہ تمام مقامی طریقے شامل ہیں جو ایپلی کیشن میں استعمال ہوتے ہیں۔

  14. جاوا میں ایک سے زیادہ وراثت کی اجازت کیوں نہیں ہے؟

    یہ واقعی پیچیدہ ہوگا۔ تین کلاسوں کا تصور کریں A، Bاور Cاور Cوارث Aاور B۔ اب، Aاور Bکلاسوں کا ایک ہی طریقہ ہے اور آپ اسے چائلڈ کلاس آبجیکٹ سے کہتے ہیں... کون سا؟ Aکی یا Bکی؟ یہاں ہمارے پاس ابہام ہے۔

    اگر آپ دو کلاسوں کو وراثت میں لینے کی کوشش کرتے ہیں تو جاوا رینڈر کمپائل ٹائم ایرر ہوتا ہے۔

  15. کیا ہم main()طریقہ اوورلوڈ کر سکتے ہیں؟

    یقینی طور پر، ہمیں mainجاوا پروگرام میں میتھڈ اوور لوڈنگ کا استعمال کرکے بہت سے طریقے رکھنے کی اجازت ہے۔ اسے آزمائیں!

  16. کیا ہم کنسٹرکٹر کا اعلان کر سکتے ہیں final؟

    Nope کیا. کنسٹرکٹر کو بطور قرار نہیں دیا جا سکتا finalکیونکہ اسے وراثت میں نہیں مل سکتا۔ اس لیے کنسٹرکٹرز کو قرار دینا بے معنی ہے final۔ تاہم، اگر آپ اسے کرنے کی کوشش کرتے ہیں، تو جاوا کمپائلر آپ کو ایک غلطی پھینک دیتا ہے۔

  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. جاوا میں صرف پڑھنے والی کلاس کیسے بنائی جائے؟

    آپ کلاس کے تمام فیلڈز کو نجی بنا کر ایسا کر سکتے ہیں۔ صرف پڑھنے والی کلاس میں صرف حاصل کرنے کے طریقے ہوتے ہیں جو کلاس کی نجی جائیداد کو mainطریقہ میں واپس کرتے ہیں۔ آپ اس پراپرٹی میں ترمیم کرنے کے قابل نہیں ہیں، اس کی وجہ سیٹرز کے طریقہ کار کی کمی ہے۔

    public class HockeyPlayer{
    private String team ="Maple leaf";
    public String getTeam(){
    return team;
    }
    }
  20. جاوا میں صرف تحریری کلاس کیسے بنائیں؟

    دوبارہ، آپ کو کلاس کے تمام فیلڈز بنانے چاہئیں private۔ اب، آپ کی صرف تحریری کلاس میں صرف سیٹر کے طریقے ہونے چاہئیں اور کوئی حاصل کرنے والے نہیں۔ لہذا، ہم کلاس کی خصوصیات کو نہیں پڑھ سکتے ہیں.

    public class HockeyPlayer{
    private String team;
    public void setTeam(String college){
    this.team = team;
    }
    }
  21. ہر tryبلاک کے بعد ایک catchبلاک ہونا چاہیے، نہیں؟

    Nope کیا. یہ کوئی ضرورت نہیں ہے۔ ہر 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: جاوا سے پہلے انٹرفیس میں 8 طریقے صرف خلاصہ ہوسکتے تھے۔ جاوا 8 یا جدید تر میں، پہلے سے طے شدہ طریقوں کی وضاحت کرنا اور انہیں براہ راست انٹرفیس میں لاگو کرنا ممکن ہو گیا۔
  22. throwاور مطلوبہ الفاظ میں کیا فرق ہے throws؟

    Throwstry-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