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