کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java – مقایسه ی Java با C++

آموزش Java – مقایسه ی Java با C++

تفاوت ها و شباهت های بسیار زیادی بین زبان برنامه نویسی C++ و Java وجود دارد که در زیر به آن ها اشاره خواهیم کرد. لیستی از تفاوت های اصلی بین دو زبان مزبور را در جدول حاضر مشاهده می کنید:

Java
C++
شاخصی که برای تمییز دادن دو زبان استفاده می شود
کد نوشته شده با java بر روی محیط ها، سیستم عامل ها و بسترهای اجرای مختلف اجرا می شود(platform-independent) .
زبان C++ قابلیت اجرا بر روی محیط ها و بسترهای اجرا مختلفی را ندارد (platform-dependent).
Platform-independent
(قابلیت اجرا بر روی محیط های مختلف)
جاوا بیشتر برای توسعه ی اپلیکیشن و برنامه های کاربردی بکار می رود.به عبارت دیگر با Java بیشتر برنامه های تحت وب، تحت موبایل، تجاری و تحت ویندوز مورد استفاده قرار می گیرد.
زبان C++ غالبا برای برنامه نویسی سخت افزار بکار می رود.
عمدتا برای این موارد بکار می رود.
زبان Java از دستور goto پشتیبانی نمی کند.
زبان C++ از دستور پرش goto پشتیبانی می کند.
Goto
یک دستور پرش
Java قادر به پشتیبانی از وراثت چندگانه از طریق کلاس نیست. برای این منظور از Interface ها کمک می گیرد.
زبان C++ از وراثت چندگانه (multiple inheritance) پشتیبانی می کند.
Multiple inheritance
یا وراثت چندگانه
زبان Java از این قابلیت پشتیبانی نمی کند.
زبانC++ از این قابلیت پشتیبانی می کند.
Operator Overloading
سربارگذاری عملگرها
زبان Java به صورت درونی از pointer پشتیبانی می کند اما در خصوص استفاده از آن محدودیت هایی وجود دارد.
زبان C++ از Pointer ها پشتیبانی می کند.
Pointers
اشاره گر یا متغیری که از آدرس متغیر دیگری را دربر دارد.
کد Java ابتدا کامپایل می شود و بعده ها تفسیر نیز می شود. به عبارت دیگر java زبانی کامپایلی و مفسری است.
کد C++ منحصرا کامپایل می شود و از مفسر بهره نمی گیرد.
Compiler و Interpreter
Java فقط از فراخوانی با مقدار (call by value) پشتیبانی می کند.
C++ از فراخوانی تابع با (کپی از) مقدار و فراخوانی با (اصل) مقدار یا همان فراخوانی به صورت ارجاع پشتیبای می کند.
Call by Value & Call by reference
ارسال کپی از مقدار به تابع و ارسال اصل مقدار به تابع
چنین امکاناتی در Java وجود ندارد.
C++ از Structure ها و union ها پشتیبانی می کند.
قابلیت پشتیبانی از structure و union
Java به صورت پیش فرض (داخلی) از thread ها پشتیبانی می کند.
C++ به صورت درون ساخته و داخلی از thread ها پشتیبانی نمی کند. برای پردازش موازی و استفاده از thread نیازمند کتابخانه های خارجی است .
قابلیت پشتیبانی از پردازش موازی و thread ها
Java از قابلیت کامنت گذاری (با کاراکترهای /** و */) و تولید مستندات برای کد برنامه پشتیبانی می کند.
پشتیبانی نمی کند
قابلیت درج توضیح و کامنت گذاری و تولید مستندات برنامه
Java کلیدواژه ی virtual را ندارد. تمامی متدهای غیر استاتیک به صورت پیش فرض قابل بازنویسی می باشند. به عبارت دیگر، متدهای غیر استاتیک به صورت پیش فرض و درون ساخته virtual بوده و قابل بازنویسی هستند.
C++ از کلیدواژه ی virtual پشتیبانی می کند، بدین وسیله می توان توابع و بدنه ی آن ها را بازنویسی کرد.
کلیدواژه ی virtual
Java از عملگر بدون علامت >>> که صفرها را در بالا برای اعداد منفی پر می کند، پشتیبانی می کند. برای اعداد مثبت، مشابه عملگر << کار می کند.
C++ از عملگر مزبور پشتیبانی نمی کند.
انتقال بیت ها به سمت راست بدون علامت (unsigned right shift >>>)
Java در بحث وراثت از یک درخت وراثت واحد استفاده می کند چرا که تمامی کلاس های فرزند و زیرمجموعه ی کلاس Object هستند. کلاس Object در ریشه قرار داشته و اولین المان در درخت وراثت جاوا محسوب می شود.
C++ همیشه یک درخت وراثت جدید ایجاد می کند.
درخت وراثت (Inheritance Tree)
1396/06/21 6655 2457
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...