יש הרבה הבדלים ודמיון בין תכנות C++ שפה ו Java . רשימה של ההבדלים המובילים בין C++ ל-Java ניתנת להלן:
אינדקס השוואה | C++ | Java |
---|---|---|
בלתי תלוי בפלטפורמה | C++ תלוי בפלטפורמה. | Java אינה תלויה בפלטפורמה. |
משמש בעיקר עבור | C++ משמש בעיקר לתכנות מערכת. | Java משמשת בעיקר לתכנות יישומים. הוא נמצא בשימוש נרחב ביישומים מבוססי Windows, מבוססי אינטרנט, ארגוניים וניידים. |
מטרת עיצוב | C++ תוכנן עבור תכנות מערכות ויישומים. זה היה הרחבה של שפת תכנות C . | Java תוכננה ונוצרה כמתורגמן למערכות הדפסה, אך לאחר מכן הורחבה כתמיכה במחשוב רשת. הוא תוכנן כך שיהיה קל לשימוש ונגיש לקהל רחב יותר. |
לך ל | C++ תומך בהצהרת goto. | Java אינה תומכת בהצהרת goto. |
ירושה מרובה | C++ תומך בירושה מרובה. | Java אינה תומכת בהורשה מרובה דרך הכיתה. ניתן להשיג זאת על ידי שימוש ממשקים ב-java . |
עומס יתר על המפעיל | C++ תומך עומס יתר של המפעיל . | Java אינה תומכת בעומס יתר של מפעיל. |
מצביעים | C++ תומך במצביעים. אתה יכול לכתוב תוכנית מצביע ב-C++. | Java תומך במצביע פנימי. עם זאת, אינך יכול לכתוב את תוכנית המצביע ב-java. זה אומר ש-java מגבילה תמיכת מצביעים ב-java. |
מהדר ומתורגמן | C++ משתמש בקומפיילר בלבד. C++ מורכב ומופעל באמצעות המהדר שממיר קוד מקור לקוד מכונה, כך ש-C++ תלוי בפלטפורמה. | Java משתמש גם במהדר וגם במתורגמן. קוד המקור של Java מומר לבייטקוד בזמן ההידור. המתורגמן מבצע קוד בייט זה בזמן ריצה ומפיק פלט. Java מתפרשת וזו הסיבה שהיא בלתי תלויה בפלטפורמה. |
שיחה לפי ערך וקריאה לפי הפניה | C++ תומך גם בקריאה לפי ערך וגם בקריאה לפי הפניה. | Java תומך בהתקשרות לפי ערך בלבד. אין קריאה לפי הפניה ב-java. |
מבנה ואיחוד | C++ תומך במבנים ואיגודים. | Java אינה תומכת במבנים ואיגודים. |
תמיכה בשרשור | ל-C++ אין תמיכה מובנית בשרשורים. הוא מסתמך על ספריות של צד שלישי לתמיכה בחוטים. | ל-Java יש מובנה פְּתִיל תמיכה. |
הערת תיעוד | C++ אינו תומך בהערות תיעוד. | Java תומכת בהערת תיעוד (/** ... */) ליצירת תיעוד עבור קוד המקור של Java. |
מילת מפתח וירטואלית | C++ תומך במילת מפתח וירטואלית כך שנוכל להחליט אם לעקוף פונקציה או לא. | ל-Java אין מילת מפתח וירטואלית. אנו יכולים לעקוף את כל השיטות הלא סטטיות כברירת מחדל. במילים אחרות, שיטות לא סטטיות הן וירטואליות כברירת מחדל. |
מעבר ימני לא חתום >>> | C++ אינו תומך באופרטור >>>. | ג'אווה תומכת במעבר ימני ללא סימן >>> אופרטור שממלא אפס בחלק העליון עבור המספרים השליליים. עבור מספרים חיוביים, זה עובד כמו אופרטור >>. |
עץ ירושה | C++ תמיד יוצר עץ ירושה חדש. | Java תמיד משתמשת בעץ ירושה בודד מכיוון שכל המחלקות הן הצאצא של המחלקה Object ב-Java. המחלקה Object היא השורש של יְרוּשָׁה עץ בג'אווה. |
חוּמרָה | C++ קרוב יותר לחומרה. | Java לא כל כך אינטראקטיבי עם חומרה. |
מונחה עצמים | C++ היא שפה מונחה עצמים. עם זאת, בשפת C, היררכיית שורש בודדת אינה אפשרית. | Java הוא גם an מונחה עצמים שפה. עם זאת, הכל (למעט סוגים בסיסיים) הוא אובייקט בג'אווה. זוהי היררכיית שורש יחידה שכן הכל נגזר מ-java.lang.Object. |
הערה
- Java אינה תומכת בארגומנטים של ברירת מחדל כמו C++.
- Java אינה תומכת בקבצי כותרות כמו C++. Java משתמשת במילת המפתח ייבוא כדי לכלול מחלקות ושיטות שונות.
דוגמה לתוכנית C++
קובץ: main.cpp
#include using namespace std; int main() { cout << 'Hello C++ Programming'; return 0; }
תְפוּקָה:
Hello C++ Programming
דוגמה לתוכנית Java
קובץ: Simple.java
class Simple{ public static void main(String args[]){ System.out.println('Hello Java'); } }
תְפוּקָה:
Hello Java