java:thread_memory_model
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| java:thread_memory_model [2017/03/18 14:35] – [Το μοντέλο μνήμης της Java] gthanos | java:thread_memory_model [2018/03/08 09:31] (current) – [Στατικές μεταβλητές της κλάσης] gthanos | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| ===== Το μοντέλο μνήμης των μεταβλητών ===== | ===== Το μοντέλο μνήμης των μεταβλητών ===== | ||
| - | ==== Μεταβλητές ως παράμετροι | + | ==== Μεταβλητές ως παράμετροι |
| - | === Βασικοί τύποι δεδομένων ως παράμετροι | + | === Βασικοί τύποι δεδομένων ως παράμετροι |
| - | Κάθε τοπική μεταβλητή αποθηκεύεται στο stack. Για τις τοπικές μεταβλητές βασικού τύπου (//int, byte, long, double//) που γνωρίζουμε εκ των προτέρων το μήκος τους αυτές αποθηκεύονται στη στοίβα. Στο παρακάτω παράδειγμα, | + | Κάθε τοπική μεταβλητή αποθηκεύεται |
| <code java> | <code java> | ||
| int add(int a, int b) { | int add(int a, int b) { | ||
| Line 33: | Line 33: | ||
| </ | </ | ||
| - | === Αναφορικοί τύποι δεδομένων ως παράμετροι | + | === Αναφορικοί τύποι δεδομένων ως παράμετροι |
| Όταν δημιουργείται ένα αντικείμενο το οποίο ανατίθεται σε μία τοπική μεταβλητή ενός νήματος, | Όταν δημιουργείται ένα αντικείμενο το οποίο ανατίθεται σε μία τοπική μεταβλητή ενός νήματος, | ||
| Line 77: | Line 77: | ||
| class SharedObj { | class SharedObj { | ||
| - | public Integer | + | public Integer |
| - | public | + | public |
| - | public long member1 = 12345; | ||
| - | public long member2 = 67890; | ||
| } | } | ||
| </ | </ | ||
| Line 118: | Line 116: | ||
| {{ : | {{ : | ||
| - | Στο παρακάτω σχηματικό | + | Στο παραπάνω διάγραμμα δίνεται σχηματικά η εκτέλεση του παραπάνω κώδικα. |
| <WRAP tip 80% center round> | <WRAP tip 80% center round> | ||
| - | == Συμπερασματικά == | + | === Συμπερασματικά |
| - Μία τοπική μεταβλητή βασικού τύπου (int, long, byte, double etc) αποθηκεύεται στο stack. | - Μία τοπική μεταβλητή βασικού τύπου (int, long, byte, double etc) αποθηκεύεται στο stack. | ||
| - Μία τοπική μεταβλητή ενός αναφορικού τόπου αποθηκεύει την αναφορά στο stack, αλλά το αντικείμενο στο heap. | - Μία τοπική μεταβλητή ενός αναφορικού τόπου αποθηκεύει την αναφορά στο stack, αλλά το αντικείμενο στο heap. | ||
| Line 127: | Line 125: | ||
| - Οι στατικές μεταβλητές ανήκουν στις κλάσεις τις οποίες ορίζονται κατά συνέπεια είναι αποθηκευμένες πάντοτε στο heap. | - Οι στατικές μεταβλητές ανήκουν στις κλάσεις τις οποίες ορίζονται κατά συνέπεια είναι αποθηκευμένες πάντοτε στο heap. | ||
| </ | </ | ||
| + | |||
| + | |Προηγούμενο: | ||
| + | |||
java/thread_memory_model.1489847726.txt.gz · Last modified: 2017/03/18 14:35 by gthanos
