Διαφορά μεταξύ C++ και Java
Βασική διαφορά μεταξύ C++ και Java
- C++ χρησιμοποιεί μόνο μεταγλωττιστή, ενώ Java χρησιμοποιεί μεταγλωττιστή και διερμηνέα και τα δύο.
- C++ υποστηρίζει τόσο υπερφόρτωση χειριστή όσο και υπερφόρτωση μεθόδου ενώ Java υποστηρίζει μόνο υπερφόρτωση μεθόδου.
- C++ υποστηρίζει χειροκίνητη διαχείριση αντικειμένων με τη βοήθεια νέων και διαγραφής λέξεων-κλειδιών ενώ Java έχει ενσωματωμένη αυτόματη αποκομιδή σκουπιδιών.
- C++ υποστηρίζει δομές ενώ Java δεν υποστηρίζει δομές.
- C++ υποστηρίζει συνδικάτα ενώ Java δεν υποστηρίζει συνδικάτα.

Ποια είναι η C++ Γλώσσα;
C++ είναι μια γλώσσα προγραμματισμού υπολογιστή που περιέχει τη δυνατότητα της γλώσσας προγραμματισμού C καθώς και της Simula67 (πρώτη αντικειμενοστρεφής γλώσσα). C++ εισήγαγε την έννοια της Τάξης και των Αντικειμένων.
Περιλαμβάνει χαρακτηριστικά γλώσσας υψηλού και χαμηλού επιπέδου. Έτσι, θεωρείται ως γλώσσα μεσαίου επιπέδου. Παλαιότερα ονομαζόταν “C with classes” καθώς είχε όλες τις ιδιότητες της γλώσσας C.
Ποια είναι η Java Γλώσσα;
Java είναι γλώσσα προγραμματισμού που αναπτύχθηκε από την Sun Microsystems. Μια μικρή ομάδα ανάπτυξης λογισμικού ανέπτυξε αυτήν τη γλώσσα. Ήταν γνωστοί ως Πράσινη Ομάδα, που ξεκίνησε Java γλώσσα το έτος 1991.
Ιστορία του C++
C++ Η γλώσσα αναπτύχθηκε από τον Bjarne Stroustrup στα εργαστήρια AT & T Bell. Ο Stroustrup ήταν ένθερμος υποστηρικτής του C και θαυμαστής του Simula67. Ήθελε να συνδυάσει το καλύτερο και από τις δύο γλώσσες. Στόχος του ήταν να δημιουργήσει μια γλώσσα που υποστηρίζει αντικειμενοστραφή χαρακτηριστικά προγραμματισμού και εξακολουθεί να διατηρεί τη δύναμη της C. Αυτό είχε ως αποτέλεσμα C++.
Ιστορία του Java
Τα Διαχωριστικά Java γλώσσα ονομαζόταν αρχικά ΟΑΚ. Αρχικά, αναπτύχθηκε για το χειρισμό συσκευών και αποκωδικοποιητών. Το Oak ήταν μια τεράστια αποτυχία. Έτσι, το 1995 η Sun άλλαξε το όνομα σε Java και τροποποίησε τη γλώσσα για να επωφεληθεί από την αναπτυσσόμενη επιχείρηση ανάπτυξης του World Wide Web.
Later, το 2009, Oracle Η Corporation εξαγόρασε τη Sun Microsystems και ανέλαβε την κυριότητα δύο βασικών στοιχείων λογισμικού της Sun: Java και Solaris.
Διαφορά μεταξύ C++ και Java
Παράμετρος | C++ | Java |
---|---|---|
Σχέση | Δεν υπάρχει αυστηρή σχέση μεταξύ ονομάτων κλάσεων και ονομάτων αρχείων. Σε C++, τα αρχεία κεφαλίδας και τα αρχεία υλοποίησης χρησιμοποιούνται για συγκεκριμένη κλάση. | Η αυστηρή σχέση επιβάλλεται, π.χ., ο πηγαίος κώδικας για την τάξη PayRoll πρέπει να είναι στο PayRoll.java. |
Μηχανισμός εισαγωγής | Οι δηλώσεις εισόδου/εξόδου χρησιμοποιούνται in και cout, π.χ. cout« y; | Ο μηχανισμός εισόδου I/O είναι αρκετά περίπλοκος καθώς διαβάζει ένα byte τη φορά (System.in). Η έξοδος είναι εύκολη, π.χ. System.out.println(x); |
Μεταγλωττιστής και διερμηνέας | C++ υποστήριξη μόνο μεταγλωττιστή | Java υποστηρίζει και μεταγλωττιστή και διερμηνέα |
Συμβατότητα με άλλες γλώσσες | Συμβατό με τον πηγαίο κώδικα C, εκτός από ορισμένες εξαιρετικές περιπτώσεις. | Δεν υπάρχει συμβατότητα προς τα πίσω με καμία προηγούμενη γλώσσα. Η σύνταξη επηρεάζεται από το C/C++. |
Έλεγχος πρόσβασης και προστασία αντικειμένων | Ευέλικτο μοντέλο με διαθέσιμη συνεχή προστασία | Το δυσκίνητο μοντέλο ενθαρρύνει την αδύναμη ενθυλάκωση. |
Έννοια | Γράψτε μια φορά μεταγλώττιση οπουδήποτε | Γράψτε μια φορά εκτελείται οπουδήποτε παντού |
Υποστήριξη για τον τύπο προγραμματισμού | Επιτρέπει τόσο διαδικαστικό προγραμματισμό όσο και αντικειμενοστραφή προγραμματισμό. | Υποστήριξη αντικειμενοστραφούς μοντέλου προγραμματισμού. |
περιβάλλον λειτουργίας | Επιτρέπει απευθείας κλήσεις σε εγγενείς βιβλιοθήκες συστήματος. | Καλέστε μόνο μέσω του Java Native Interface και πρόσφατα Java Εγγενής πρόσβαση |
Διαχείριση μνήμης | Προσβάσιμο στον προγραμματιστή | Το σύστημα ελέγχεται |
Ιεραρχία ρίζας | C++ δεν υπάρχει τέτοια ιεραρχία ρίζας. C++ υποστηρίζει τόσο διαδικαστικό όσο και αντικειμενοστραφή προγραμματισμό. επομένως, ονομάζεται υβριδική γλώσσα. | Java είναι μια καθαρά αντικειμενοστραφής γλώσσα προγραμματισμού. Αυτό είναι. Γιατί Ακολουθεί ιεραρχία μιας ρίζας. |
καλυτερα χαρακτηριστικα | C++ υποστηρίζει αντικειμενοστραφή χαρακτηριστικά Χαρακτηριστικά διαδικαστικού προγραμματισμού. | Java υποστήριξη αυτόματης συλλογής σκουπιδιών. Δεν υποστηρίζει καταστροφείς όπως C++ κάνει. |
Μετάβαση στη δήλωση | C++ έχει μια δήλωση. Αν και, δεν είναι ιδανικό να χρησιμοποιήσετε μια δήλωση goto. | Java δεν έχει καμία δήλωση. Οι λέξεις-κλειδιά got, και const δεσμεύονται ακόμη και αν δεν χρησιμοποιούνται. |
Πολλαπλή κληρονομιά | C++ παρέχει πολλαπλή κληρονομικότητα. Η λέξη-κλειδί εικονική χρησιμοποιείται για την επίλυση προβλημάτων κατά τη διάρκεια πολλαπλής κληρονομικότητας, εάν υπάρχει. | Java δεν παρέχει πολλαπλή κληρονομιά. |
Χειριστής ανάλυσης πεδίου | C++ έχει τελεστή ανάλυσης πεδίου (: :) που χρησιμοποιείται για τον ορισμό μιας μεθόδου εκτός κλάσης και για την πρόσβαση σε μια καθολική μεταβλητή εντός από το πεδίο όπου υπάρχει και μια τοπική μεταβλητή με το ίδιο όνομα. |
Χωρίς τελεστή ανάλυσης πεδίου (: :) in Java. Οι ορισμοί των μεθόδων πρέπει να εμφανίζονται μέσα σε μια κλάση, επομένως δεν υπάρχει ανάγκη για ανάλυση εύρους. |
Υποστηρικτική μέθοδος | C++ υποστηρίζει τόσο υπερφόρτωση μεθόδων όσο και υπερφόρτωση χειριστή | Java υποστηρίζει μόνο υπερφόρτωση μεθόδου. Δεν παρέχει υποστήριξη για υπερφόρτωση χειριστή. |
Φορητότητα | Η πηγή πρέπει να μεταγλωττιστεί εκ νέου για την πλατφόρμα. Ως εκ τούτου, ο κωδικός δεν είναι φορητός. | Οι κλάσεις Bytecode μπορούν να μεταφερθούν σε JVM για συγκεκριμένη πλατφόρμα. |
Τύπος σημασιολογίας | Συνεπής μεταξύ πρωτόγονων και αντικειμένων τύπων. | Διαφέρει για πρωτόγονους και αντικειμενικούς τύπους. |
βιβλιοθήκες | Κυρίως λειτουργικότητα χαμηλού επιπέδου | Ογκώδη, μαθήματα για υπηρεσίες υψηλού επιπέδου. |
Ανίχνευση σφαλμάτων χρόνου εκτέλεσης | Ευθύνη προγραμματιστή. | Ευθύνη συστήματος. |
Λειτουργίες & δεδομένα | Λειτουργίες και δεδομένα ενδέχεται να υπάρχουν εξωτερικά σε οποιαδήποτε κατηγορία, καθολικά και διαθέσιμα πεδία ονομάτων. | Όλες οι συναρτήσεις και τα δεδομένα υπάρχουν εντός κλάσεων. το πεδίο εφαρμογής του πακέτου είναι διαθέσιμο. |
Πλατφόρμα | C++ τα προγράμματα εξαρτώνται από την πλατφόρμα. Πρέπει να καταρτιστούν για μια συγκεκριμένη πλατφόρμα. | Java τα προγράμματα είναι ανεξάρτητα από την πλατφόρμα. Java τα προγράμματα είναι γραμμένα για Java Εικονική μηχανή (JVM). Θα τρέξει χωρίς να χρειάζεται εκ νέου μεταγλώττιση. |
Ανίχνευση σφαλμάτων χρόνου εκτέλεσης | In C++, Είναι ευθύνη του Προγραμματιστή να ελέγξει τα σφάλματα. | Είναι ευθύνη του συστήματος να ελέγξει το σφάλμα στο πρόγραμμα. |
Δείκτης | C++ δείκτες υποστήριξης. | Java προσφέρει περιορισμένη μόνο υποστήριξη για δείκτες. |
Structure | Υποστηρίζει δομές. | Δεν υποστηρίζει δομές. |
Ενώσεις | C++ υποστηρίζει τα συνδικάτα. | Java δεν υποστηρίζει συνδικάτα. |
Διαχείριση αντικειμένων | C++ υποστηρίζει τη χειροκίνητη διαχείριση αντικειμένων με τη βοήθεια νέων και διαγραμμένων λέξεων-κλειδιών. | Java είναι βαρύ εξαρτώνται από την αυτόματη συλλογή σκουπιδιών. Δεν υποστηρίζει καταστροφείς. |