CodeGym /Java Blog /এলোমেলো /শীর্ষ 21 জাভা ইন্টারভিউ প্রশ্ন
John Squirrels
লেভেল 41
San Francisco

শীর্ষ 21 জাভা ইন্টারভিউ প্রশ্ন

এলোমেলো দলে প্রকাশিত
জাভা সাক্ষাত্কারের অগণিত প্রশ্ন রয়েছে এবং আমরা সেগুলি এক নিবন্ধে সংগ্রহ করতে পারি না। যাইহোক, আপনি এখানে কিছু খুব সাধারণ জাভা ইন্টারভিউ প্রশ্ন পেতে পারেন, আইটি কোম্পানির এইচআর-ম্যানেজারদের মতে। শীর্ষ 21 জাভা ইন্টারভিউ প্রশ্ন - 1
  1. "বিচ্ছিন্ন করা" public static void main(String args[])

    ফ্রেশারদের জন্য জনপ্রিয় জাভা ইন্টারভিউ প্রশ্নগুলির মধ্যে একটি, এবং খুব সহজ একটি।

    • publicএকটি অ্যাক্সেস মডিফায়ার। আমরা এই পদ্ধতিতে অ্যাক্সেস নির্দিষ্ট করতে এটি ব্যবহার করি। এখানে মডিফায়ার হল "পাবলিক", তাই যেকোনো ক্লাসের এই পদ্ধতিতে অ্যাক্সেস রয়েছে।

    • static. এই জাভা কীওয়ার্ডের অর্থ হল আমরা ক্লাসের একটি নতুন অবজেক্ট তৈরি না করে এই পদ্ধতিটি ব্যবহার করি।

    • Voidপদ্ধতির রিটার্ন প্রকার। এর মানে হল যে পদ্ধতিটি কোন মান ফেরত দেয় না।

    • mainপদ্ধতির নাম। JVM এটিকে একটি অ্যাপ্লিকেশনের এন্ট্রি পয়েন্ট হিসাবে "জানে" (এটির একটি নির্দিষ্ট স্বাক্ষর থাকা উচিত)। Mainএকটি পদ্ধতি যেখানে প্রধান মৃত্যুদন্ড ঘটে।

    • String args[]. এটি প্রধান পদ্ধতিতে পাস করা প্যারামিটার। এখানে আমাদের কাছে স্ট্রিং টাইপের আর্গুমেন্ট রয়েছে যা আপনি যখন চালান তখন আপনার জাভা অ্যাপ্লিকেশন গ্রহণ করে। আপনি তাদের টার্মিনালে টাইপ করতে পারেন।

  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.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'গুলি হয় না।

  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?

    না। একটি কনস্ট্রাক্টর হিসাবে ঘোষণা করা যাবে না 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ব্লক অবশ্যই থাকবে, তাই না?

    না। এটি একটি প্রয়োজনীয়তা নয়. প্রতিটি 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?

    Throwsএকটি ব্যতিক্রম ঘোষণা করতে ব্যবহৃত হয়, তাই এটি ব্লকের মতোই কাজ করে try-catchThrowকীওয়ার্ড একটি পদ্ধতি বা কোডের অন্য কোন ব্লক থেকে স্পষ্টভাবে একটি ব্যতিক্রম নিক্ষেপ করতে ব্যবহৃত হয়।

    Throwক্লাসের একটি উদাহরণ দ্বারা অনুসরণ করা হয় Exceptionএবং ব্যতিক্রম শ্রেণীর নাম দ্বারা থ্রোস অনুসরণ করা হয়।

    Throwএকটি ব্যতিক্রম নিক্ষেপ করার জন্য মেথড বডিতে ব্যবহৃত হয়। Throwsপদ্ধতিতে উপস্থিত বিবৃতিগুলিতে ঘটতে পারে এমন ব্যতিক্রমগুলি ঘোষণা করতে একটি পদ্ধতি স্বাক্ষরে ব্যবহৃত হয়।

    এটিকে একবারে একটি ব্যতিক্রম নিক্ষেপ করার অনুমতি দেওয়া হয় তবে আপনি throwকীওয়ার্ড ব্যবহার করে একাধিক ব্যতিক্রম ঘোষণা করে তাদের পরিচালনা করতে পারেন। আপনি একাধিক ব্যতিক্রম ঘোষণা করতে পারেন, যেমন, public void method()throws IOException, SQLException

এখানে আমাদের মাত্র কয়েকটি জাভা ইন্টারভিউ প্রশ্ন ও উত্তর ছিল। এই নিবন্ধটি সাক্ষাৎকার সিরিজের প্রথম। পরেরটি (শীঘ্রই আসছে) ডেটা স্ট্রাকচার সংক্রান্ত প্রশ্ন।
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION