Junior — Middle
Πώς διακρίνουμε τους βασικούς τύπους δεδομένων από τα αναφορικά αντικείμενα σε μια γλώσσα προγραμματισμού;
sobes.tech AI
Απάντηση από AI
Σε γλώσσες προγραμματισμού, οι βασικοί τύποι δεδομένων (πρωταρχικοί) και τα αντικείμενα αναφοράς διαφέρουν στον τρόπο αποθήκευσης και μετάδοσης των δεδομένων.
- Βασικοί τύποι δεδομένων (π.χ., int, float, boolean σε Java/Android) αποθηκεύονται στη στοίβα και περιέχουν άμεσα την τιμή. Όταν μεταβιβάζεται μια μεταβλητή, αντιγράφεται η ίδια η τιμή.
- Αντικείμενα αναφοράς (π.χ., αντικείμενα κλάσεων) αποθηκεύονται στον σωρό, και στη μεταβλητή αποθηκεύεται μια αναφορά (δείκτης) στο αντικείμενο. Όταν μεταβιβάζεται, αντιγράφεται μόνο η αναφορά, όχι το αντικείμενο.
Παράδειγμα:
int a = 5;
int b = a; // αντιγράφεται η τιμή 5
b = 10;
// το a εξακολουθεί να είναι 5
String s1 = new String("hello");
String s2 = s1; // αντιγράφεται η αναφορά στο αντικείμενο
s2 = "world";
// το s1 εξακολουθεί να είναι "hello" (String στην Java είναι αμετάβλητο)
Έτσι, οι βασικοί τύποι αποθηκεύουν τα δεδομένα άμεσα, ενώ τα αντικείμενα αναφοράς το κάνουν μέσω δείκτη στο αντικείμενο στη μνήμη.