Συγκριτικό διάγραμμα
Βάση σύγκρισης | int | μακρύς |
---|---|---|
Βασικός | Το datatype int είναι 32 bit. | Ο τύπος δεδομένων έχει μήκος 64 bit. |
Bytes | Εάν υπολογίζεται σε bytes, το int είναι 4 bytes. | Αν μετρώνται σε bytes, το μήκος είναι 8 byte. |
Εύρος | Στη Java, το εύρος του τύπου int είναι -2, 147, 483, 648 έως 2, 147, 483, 647. | Στη Java η περιοχή του τύπου είναι μεγάλη -9, 223, 372, 036, 854, 775, 808 έως 9, 223, 372, 036, 854, 775, 807. |
Λέξη κλειδί | Η λέξη-κλειδί που χρησιμοποιείται για να δηλώσει μια μεταβλητή τύπου int είναι "int". | Η λέξη-κλειδί που χρησιμοποιείται για να δηλώσει μια μεταβλητή μακρού τύπου είναι "μεγάλη". |
Μνήμη | Η μνήμη που απαιτείται για την αποθήκευση μιας μεταβλητής int είναι μικρότερη σε σύγκριση με τη μνήμη. | Η μνήμη που απαιτείται για την αποθήκευση μιας μακράς μεταβλητής είναι μεγαλύτερη σε σύγκριση με την int. |
Ορισμός τύπου int
Ένας τύπος δεδομένων int είναι ο πιο συχνά χρησιμοποιούμενος τύπος δεδομένων ο οποίος διατηρεί μια ακέραια τιμή σε αυτόν. Μια τιμή που μπορεί να κρατήσει μια μεταβλητή int δεν είναι πολύ μικρή και δεν είναι πολύ μεγάλη. Γενικά, η τιμή μιας μεταβλητής int χρησιμοποιείται ως μεταβλητή βρόχου που ελέγχει τον βρόχο ή χρησιμοποιείται ως μεταβλητή δείκτη ενός πίνακα. Ο τύπος δεδομένων τύπος και σύντομη έχουν μικρότερο εύρος σε σύγκριση με τον τύπο δεδομένων int, αλλά δεν μπορούν να αντικαταστήσουν το int, ακόμα και αν η τιμή μιας μεταβλητής int είναι μικρότερης εμβέλειας. Ο λόγος πίσω από αυτό είναι ότι όταν χρησιμοποιούμε byte τύπων δεδομένων και σύντομη σε μια έκφραση τότε κατά την αξιολόγηση αυτής της έκφρασης ο τύπος δεδομένων byte και short προωθούνται στο int από τον μεταγλωττιστή. Έτσι, από αυτό, μπορούμε να πούμε ότι είναι καλύτερο να χρησιμοποιούμε το int όπου χρειάζεται ένας ακέραιος αριθμός.
Ας δούμε τη χρήση του datatype int.
byte α = 70. byte b = 80; int c = a * b; // δεν υπάρχει σφάλμα. byte d = α + 10. // Σφάλμα χρόνου μεταγλώττισης.
Όπως μπορείτε να παρατηρήσετε στον παραπάνω κώδικα, οι δύο μεταβλητές byte a και b που περιέχουν την τιμή 70 και 80, η οποία είναι έγκυρη τιμή byte. Αλλά, το ενδιάμεσο αποτέλεσμα ενός * b; υπερβαίνει το όριο του byte. Επομένως, ο μεταγλωττιστής προωθεί αυτόματα τις μεταβλητές byte, short και char για να πληκτρολογήσει int, αν χρησιμοποιούνται σε μια έκφραση. Τώρα, μπορείτε να δείτε ότι το αποτέλεσμα ενός * b έχει εκχωρηθεί σε μια μεταβλητή int που δεν προκαλεί σφάλμα και μεταγλωττίζεται ομαλά επειδή οι μεταβλητές a και b προωθούνται στον τύπο int και η ανάθεση του τύπου int στον τύπο int doesn ' t να προκαλέσει το σφάλμα.
Στην τελευταία γραμμή του κώδικα, μπορείτε να δείτε μια έκφραση, όπου η τιμή 10 προστίθεται σε μια μεταβλητή byte 'a' το αποτέλεσμά της εξακολουθεί να μην υπερβαίνει το όριο του byte. Όμως, η ανάθεση του ενδιάμεσου αποτελέσματος της έκφρασης "a + 10" στη μεταβλητή byte "d", προκαλεί ένα σφάλμα χρόνου μεταγλώττισης, καθώς η μεταβλητή έκφρασης της μεταβλητής "a" προωθείται στον τύπο int. Δεν επιτρέπεται η αντιστοίχιση του τύπου int σε τύπο byte. Ως εκ τούτου, προκαλεί ένα σφάλμα χρόνου μεταγλώττισης.
Ορισμός μακρού τύπου
Ο τύπος δεδομένων έχει το μεγαλύτερο εύρος και πλάτος σε σύγκριση με τύπους byte, short και int. Στη Java, ο τύπος long είναι τύπος ακέραιου υπογεγραμμένου 64 bit. Ο τύπος long χρησιμοποιείται όταν ο τύπος int δεν είναι τόσο μεγάλος για να κρατήσει την επιθυμητή τιμή. Το εύρος των μακρών είναι -9, 223, 372, 036, 854, 775, 808 έως 9, 223, 372, 036, 854, 775, 807 το οποίο είναι αρκετά μεγάλο, για να κρατήσει τις μεγαλύτερες τιμές, όπως μεγάλοι ολόκληροι αριθμοί. Μπορούμε να καταλάβουμε τον τύπο μακρύ με ένα παράδειγμα παρακάτω.
τάξη βάρους {δημόσιο static κενό κύρια (String args []) {int στοιχείο? int wt_per_item; μακρά γραμμάρια. long Box? στοιχείο = 10000000; // καθορίστε τα στοιχεία αριθμού wt_per_item = 10000; // προσδιορίστε το βάρος ενός στοιχείου σε κιλά γραμμάρια = wt_item * 1000; // μετατρέψτε το βάρος σε γραμμάριο Box = στοιχείο * γραμμάρια. // υπολογίζει το βάρος του κουτιού σε γραμμάρια System.out.println ("Αριθμός στοιχείου" + στοιχείο). System.out.println ("Βάρος ανά στοιχείο" + wt_per_item + "κιλά"); System.out.println ("Βάρος κιβωτίου σε γραμμάρια" + Κουτί + "κιλά"). }} Αριθμός στοιχείου 10000000 Βάρος ανά τεμάχιο 10000 κιλά Βάρος κιβωτίου σε γραμμάρια 100000000000000 κιλά
Παρατηρήστε την έξοδο στον παραπάνω κώδικα. το αποτέλεσμα που υπολογίζεται για το βάρος ολόκληρου του κουτιού που περιέχει κουτί που περιέχει 10000000 τεμάχια εκ των οποίων βάρος ανά τεμάχιο 10000 κιλά. Η υπολογισμένη τιμή για το βάρος του κιβωτίου σε γραμμάρια δεν μπορεί να κρατηθεί από μια μεταβλητή int. Ως εκ τούτου, μερικές φορές καθίσταται απαραίτητο να χρησιμοποιείται μακρύς τύπος όταν πρόκειται να υπολογιστούν ή να διατηρηθούν μεγάλες τιμές.
Βασικές διαφορές μεταξύ int και long
- Η βασική διαφορά μεταξύ του τύπου int και του μακρού είναι του πλάτους τους όπου το int είναι 32 bit και το μήκος είναι 64 bit.
- Οι τύποι int και μακρά, όταν υπολογίζονται σε bytes αντί των bits, ο τύπος int είναι 4 bytes και ο τύπος long είναι μόνο δύο φορές, αν πληκτρολογήσετε int 8 bytes.
- Στην Java, το εύρος του τύπου int είναι από -2.147.483.648 έως 2.147.483.647 ενώ το εύρος του τύπου μακρύ είναι από -9.223.372.036.854.775.808 έως 9.223.372.036.854.775.807 το οποίο είναι πολύ μεγαλύτερο από τον τύπο int.
- Η λέξη-κλειδί που χρησιμοποιείται για να δηλώσει μια μεταβλητή του τύπου int είναι "int". Από την άλλη πλευρά, η λέξη-κλειδί που χρησιμοποιείται για να δηλώσει τη μεταβλητή του τύπου long είναι "μεγάλη".
- Γενικά, η μνήμη που απαιτείται για τη διατήρηση της τιμής του τύπου int είναι μικρότερη σε σύγκριση με τη μεγάλη.
Συμπέρασμα:
Κατά την εγγραφή του κώδικα εάν υπάρχει ανάγκη για τιμή μέσου εύρους τότε μπορείτε να χρησιμοποιήσετε τον τύπο int αλλά όταν η έξοδος που παράγεται από οποιαδήποτε έκφραση θα είναι μεγαλύτερη ή οι μεγαλύτερες τιμές χρησιμοποιούνται για υπολογισμό τότε η μεταβλητή μακρού τύπου πρέπει να χρησιμοποιηθεί για να κρατήσει οι αξίες.