Sobes.tech
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"};