C++ বনাম জাভা

C++ প্রোগ্রামিং ভাষা এবং জাভার মধ্যে অনেক পার্থক্য এবং মিল রয়েছে। C++ এবং জাভার মধ্যে শীর্ষ পার্থক্যগুলির একটি তালিকা নীচে দেওয়া হল:

Sample Text

তুলনা সূচক সি++ জাভা
স্বাধীন প্ল্যাটফর্ম C++ হল প্ল্যাটফর্ম-নির্ভর। জাভা প্ল্যাটফর্ম-স্বাধীন।
জাভা প্ল্যাটফর্ম-স্বাধীন। C++ প্রধানত সিস্টেম প্রোগ্রামিং এর জন্য ব্যবহৃত হয়। জাভা মূলত অ্যাপ্লিকেশন প্রোগ্রামিং এর জন্য ব্যবহৃত হয়। এটি উইন্ডোজ-ভিত্তিক, ওয়েব-ভিত্তিক, এন্টারপ্রাইজ এবং মোবাইল অ্যাপ্লিকেশনগুলিতে ব্যাপকভাবে ব্যবহৃত হয়।
ডিজাইন লক্ষ্য C++ সিস্টেম এবং অ্যাপ্লিকেশন প্রোগ্রামিংয়ের জন্য ডিজাইন করা হয়েছে। এটি সি প্রোগ্রামিং ভাষার একটি এক্সটেনশন ছিল। জাভা প্রিন্টিং সিস্টেমের জন্য একটি দোভাষী হিসাবে ডিজাইন এবং তৈরি করা হয়েছিল কিন্তু পরে একটি সমর্থন নেটওয়ার্ক কম্পিউটিং হিসাবে প্রসারিত হয়েছিল। এটি ব্যবহার করা সহজ এবং বিস্তৃত দর্শকদের কাছে অ্যাক্সেসযোগ্য হওয়ার জন্য ডিজাইন করা হয়েছিল।
যাও C++ গোটো স্টেটমেন্ট সমর্থন করে। জাভা গোটো স্টেটমেন্ট সমর্থন করে না।
একাধিক উত্তরাধিকার C++ একাধিক উত্তরাধিকার সমর্থন করে। জাভা ক্লাসের মাধ্যমে একাধিক উত্তরাধিকার সমর্থন করে না। এটি জাভাতে ইন্টারফেস ব্যবহার করে অর্জন করা যেতে পারে।
অপারেটর ওভারলোডিং C++ অপারেটর ওভারলোডিং সমর্থন করে। জাভা অপারেটর ওভারলোডিং সমর্থন করে না।
পয়েন্টার C++ পয়েন্টার সমর্থন করে। আপনি C++ এ একটি পয়েন্টার প্রোগ্রাম লিখতে পারেন। জাভা অভ্যন্তরীণভাবে পয়েন্টার সমর্থন করে। যাইহোক, আপনি জাভাতে পয়েন্টার প্রোগ্রাম লিখতে পারবেন না। এর মানে জাভা জাভাতে পয়েন্টার সমর্থন সীমাবদ্ধ করেছে।
কম্পাইলার এবং ইন্টারপ্রেটার C++ শুধুমাত্র কম্পাইলার ব্যবহার করে। C++ কম্পাইল করা হয় এবং কম্পাইলার ব্যবহার করে চালানো হয় যা সোর্স কোডকে মেশিন কোডে রূপান্তর করে, তাই C++ প্ল্যাটফর্ম নির্ভর। জাভা কম্পাইলার এবং ইন্টারপ্রেটার উভয়ই ব্যবহার করে। জাভা সোর্স কোড সংকলনের সময় বাইটকোডে রূপান্তরিত হয়। ইন্টারপ্রেটার রানটাইমে এই বাইটকোড এক্সিকিউট করে এবং আউটপুট তৈরি করে। জাভাকে ব্যাখ্যা করা হয়েছে তাই এটি প্ল্যাটফর্ম-স্বাধীন।
মূল্য দ্বারা কল এবং রেফারেন্স দ্বারা কল C++ মান দ্বারা কল এবং রেফারেন্স দ্বারা কল উভয় সমর্থন করে। জাভা শুধুমাত্র মান দ্বারা কল সমর্থন করে। জাভাতে রেফারেন্স দ্বারা কোন কল নেই।
কাঠামো এবং ইউনিয়ন C++ কাঠামো এবং ইউনিয়ন সমর্থন করে। জাভা কাঠামো এবং ইউনিয়ন সমর্থন করে না।
থ্রেড সমর্থন C++ থ্রেডের জন্য অন্তর্নির্মিত সমর্থন নেই। এটি থ্রেড সমর্থনের জন্য তৃতীয় পক্ষের লাইব্রেরির উপর নির্ভর করে। জাভা বিল্ট-ইন থ্রেড সমর্থন আছে.
ডকুমেন্টেশন মন্তব্য C++ ডকুমেন্টেশন মন্তব্য সমর্থন করে না। জাভা সোর্স কোডের জন্য ডকুমেন্টেশন তৈরি করতে জাভা ডকুমেন্টেশন মন্তব্য (/** … */) সমর্থন করে।
ভার্চুয়াল কীওয়ার্ড C++ ভার্চুয়াল কীওয়ার্ডকে সমর্থন করে যাতে আমরা সিদ্ধান্ত নিতে পারি যে কোনো ফাংশন ওভাররাইড করব কি না। জাভা কোন ভার্চুয়াল কিওয়ার্ড আছে. আমরা ডিফল্টরূপে সমস্ত নন-স্ট্যাটিক পদ্ধতি ওভাররাইড করতে পারি। অন্য কথায়, নন-স্ট্যাটিক পদ্ধতিগুলি ডিফল্টরূপে ভার্চুয়াল।
স্বাক্ষরবিহীন ডান স্থানান্তর >>> C++ >>> অপারেটর সমর্থন করে না। জাভা স্বাক্ষরবিহীন ডান স্থানান্তর সমর্থন করে >>> অপারেটর যা নেতিবাচক সংখ্যার জন্য শীর্ষে শূন্য পূরণ করে। ইতিবাচক সংখ্যার জন্য, এটি >> অপারেটরের মতো একই কাজ করে।
উত্তরাধিকার গাছ C++ সর্বদা একটি নতুন উত্তরাধিকার গাছ তৈরি করে। জাভা সবসময় একটি একক উত্তরাধিকার ট্রি ব্যবহার করে কারণ সমস্ত ক্লাস জাভাতে অবজেক্ট ক্লাসের সন্তান। অবজেক্ট ক্লাস হল জাভাতে উত্তরাধিকার গাছের মূল।
হার্ডওয়্যার C++ হার্ডওয়্যারের কাছাকাছি। জাভা হার্ডওয়্যারের সাথে এত ইন্টারেক্টিভ নয়।
অবজেক্ট ওরিয়েন্টেড C++ একটি অবজেক্ট-ভিত্তিক ভাষা। যাইহোক, সি ভাষায়, একটি একক মূল শ্রেণিবিন্যাস সম্ভব নয়। জাভাও একটি বস্তু-ভিত্তিক ভাষা। যাইহোক, সবকিছু (মৌলিক প্রকারগুলি ছাড়া) জাভাতে একটি বস্তু। এটি একটি একক মূল শ্রেণিবিন্যাস কারণ সবকিছু java.lang.Object থেকে উদ্ভূত হয়।

বিঃদ্রঃ

  • জাভা C++ এর মত ডিফল্ট আর্গুমেন্ট সমর্থন করে না।
  • জাভা C++ এর মত হেডার ফাইল সমর্থন করে না। Java বিভিন্ন শ্রেণী এবং পদ্ধতি অন্তর্ভুক্ত করতে আমদানি কীওয়ার্ড ব্যবহার করে।


মন্তব্য করুন