Junior
Ποιοι τύποι δεδομένων υπάρχουν στο πλαίσιο της JVM;
sobes.tech AI
Απάντηση από AI
Στο πλαίσιο της JVM υπάρχουν δύο τύποι δεδομένων: Τυπικοί Τύποι (Primitive Types) και Τύποι Αναφοράς (Reference Types).
Τυπικοί Τύποι:
- Αντιπροσωπεύουν βασικές τιμές (αριθμοί, χαρακτήρες, boolean τιμές).
- Το μέγεθος και η εύρος τιμών αυτών των τύπων ορίζονται αυστηρά από την προδιαγραφή της JVM.
- Μεταβιβάζονται με τιμή.
- Αποθηκεύονται στη στοίβα (Stack).
Λίστα των τυπικών τύπων:
boolean: αληθές ή ψευδές.byte: 8-bit υπογεγραμμένος ακέραιος.short: 16-bit υπογεγραμμένος ακέραιος.char: 16-bit χαρακτήρας Unicode (χωρίς υπογραφή).int: 32-bit υπογεγραμμένος ακέραιος.long: 64-bit υπογεγραμμένος ακέραιος.float: 32-bit αριθμός κινητής υποδιαστολής απλής ακρίβειας.double: 64-bit αριθμός κινητής υποδιαστολής διπλής ακρίβειας.
Τύποι Αναφοράς:
- Αντιπροσωπεύουν αναφορές (διευθύνσεις) σε αντικείμενα στη μνήμη (Heap).
- Το μέγεθος της αναφοράς εξαρτάται γενικά από την αρχιτεκτονική της JVM (32 ή 64 bit).
- Μεταβιβάζονται μέσω αναφοράς, αν και τεχνικά μεταβιβάζεται ένα αντίγραφο της αναφοράς.
- Αποθηκεύονται στο heap.
Τύποι αναφοράς:
- Κλάσεις (Class Types): Αντικείμενα χρηστών ή βιβλιοθηκών (π.χ.,
String,Object). - Διεπαφές (Interface Types): Αναφορές σε αντικείμενα που υλοποιούν μια συγκεκριμένη διεπαφή.
- Πίνακες (Array Types): Αντικείμενα-δοχεία για την αποθήκευση διατεταγμένων συλλογών στοιχείων (τόσο τυπικών όσο και αναφορών).
Παράδειγμα χρήσης:
// Τυπικός τύπος
int primitiveInt = 10;
// Τύπος αναφοράς (αντικείμενο της κλάσης String)
String referenceString = new String("Hello");
// Τυπικός τύπος σε πίνακα
int[] primitiveArray = {1, 2, 3};
// Τύπος αναφοράς σε πίνακα
String[] referenceArray = {"A", "B"};