কম্পিউটার টিউটোরিয়াল

সি++ এবং জাভা (Java)-এর পার্থক্য

জাভা (Java) সি++ (C++)
জাভা সান মাইক্রোসিস্টেমসে জেমস গোসলিং (James Gosling) দ্বারা ডেভেলপ করা হয়েছিল। সি++ বেল ল্যাবসে বিয়ার্নে স্ট্রৌস্ট্রুপ (Bjarne Stroustrup) দ্বারা সি ল্যাঙ্গুয়েজের এক্সটেনশন হিসেবে ডেভেলপ করা হয়েছিল।
এটি এডা ৮৩, প্যাস্কাল, সি++, সি#-এর প্রভাবে তৈরি। এটি এডা, এলগোল ৬৮, সি, এমএল, সিমুলা, স্মলটক-এর প্রভাবে তৈরি।
জাভা বাইটকোড যেকোনো অপারেটিং সিস্টেমে কাজ করে। এটি সব অপারেটিং সিস্টেমে কাজ করে না কারণ লাইব্রেরিগুলো ভিন্ন সিস্টেমে ভিন্ন।
এটি যেকোনো ওএসে (OS) রান করা যায়। এটি ভিন্ন প্ল্যাটফর্মে ভিন্নভাবেই কম্পাইল হয়, যেকোনো ওএসে রান করা যায় না।
এটি পোর্টেবল (portable)। এটি পোর্টেবল নয়।
এটি একটি ইন্টারপ্রেটেড ল্যাঙ্গুয়েজ (interpreted language)। এটি একটি কম্পাইলড ল্যাঙ্গুয়েজ (compiled language)।
মেমরি ম্যানেজমেন্ট অটোমেটিক্যালি হয়। মেমরি ম্যানেজমেন্ট ম্যানুয়ালি করতে হয়।
এতে 'virtual' কীওয়ার্ড নেই। এতে 'virtual' কীওয়ার্ড আছে।
এটি শুধু সিঙ্গল ইনহেরিটেন্স সাপোর্ট করে। মাল্টিপল ইনহেরিটেন্স ইন্টারফেস দিয়ে আংশিকভাবে সম্ভব। এটি সিঙ্গল এবং মাল্টিপল ইনহেরিটেন্স দুটোই সাপোর্ট করে।
এটি অপারেটর ওভারলোডিং সাপোর্ট করে না। এটি অপারেটর ওভারলোডিং সাপোর্ট করে।
এটি পয়েন্টার অপারেশনে সীমিত সাপোর্ট দেয়। এটি পয়েন্টার অপারেশন সাপোর্ট করে।
এগুলো হাই-লেভেল ফাংশনালিটি দেয়। এগুলো লো-লেভেল ফাংশনালিটি দেয়।
এটি সরাসরি নেটিভ লাইব্রেরি কল সাপোর্ট করে না। এটি সরাসরি সিস্টেম লাইব্রেরি কল সাপোর্ট করে।
এটি সোর্স কোডের জন্য ডকুমেন্টেশন কমেন্ট (/**.. */) সাপোর্ট করে। এটি সোর্স কোডের জন্য ডকুমেন্টেশন কমেন্ট সাপোর্ট করে না।
এটি থ্রেড অপারেশন সাপোর্ট করে। এটি ডিজাইনে থ্রেড সাপোর্ট করে না। থার্ড পার্টি থ্রেডিং লাইব্রেরি দিয়ে করা যায়।
এটি ইনপুটের জন্য 'System' ক্লাস ব্যবহার করে, যেমন System.in। এটি ইনপুট অপারেশনের জন্য 'cin' ব্যবহার করে।
এটি আউটপুটের জন্য System.out ব্যবহার করে। এটি আউটপুট অপারেশনের জন্য 'cout' ব্যবহার করে।
এটি আউটপুটের জন্য System.out ব্যবহার করে। এটি আউটপুট অপারেশনের জন্য 'cout' ব্যবহার করে।
এটি গ্লোবাল স্কোপ (global scope) সাপোর্ট করে না। এটি গ্লোবাল স্কোপ এবং নেমস্পেস স্কোপ (namespace scope) দুটোই সাপোর্ট করে।
এটি স্ট্রাকচার (structures) এবং ইউনিয়ন (unions) সাপোর্ট করে না। এটি স্ট্রাকচার এবং ইউনিয়ন সাপোর্ট করে।
এতে 'goto' কীওয়ার্ড নেই। এতে 'goto' কীওয়ার্ড আছে।
এটি শুধু পাস বাই ভ্যালু (Pass by Value) মেথড সাপোর্ট করে। এটি পাস বাই ভ্যালু এবং পাস বাই রেফারেন্স (pass by reference) দুটোই সাপোর্ট করে।
এটি গার্বেজ কলেক্টর (garbage collector) দিয়ে অবজেক্ট ম্যানেজমেন্ট অটোমেটিক্যালি করে। এটি 'new' এবং 'delete' দিয়ে অবজেক্ট ম্যানেজমেন্ট ম্যানুয়ালি করে।
  1. C++-এ new অপারেটর এবং operator new-এর পার্থক্য কী?

  2. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  3. C++ স্ট্রিং কনস্ট্যান্ট এবং ক্যারেক্টার কনস্ট্যান্টের পার্থক্য

  4. Go এবং Java-এর পার্থক্য