This is an old revision of the document!
Οι μεταβλητές στην γλώσσα προγραμματισμού Java διακρίνονται σε δύο βασικές κατηγορίες:
Κάθε κλάση στην Java απεικονίζει ένα διαφορετικό τύπο δεδομένων. Μπορούμε να έχουμε τόσους τύπους δεδομένων, όσα και οι διαφορετικές πιθανές κλάσεις στην Java. Επομένως, ο αριθμός των δυνατών τύπων δεδομένων στην Java είναι άπειρος.
Η γλώσσα προγραμματισμού Java διαμορφώνει τις παρακάτω κατηγορίες αναφορικών μεταβλητών.
Αναφορικά με την ονοματολογία των πεδίων της κλάσης μπορείτε να ανατρέξετε εδώ .
Ως βασικοί τύποι δεδομένων (primitive data types) ορίζονται οι τύποι δεδομένων που είναι ορισμένοι σε κάθε γλώσσα προγραμματισμού και δεν χρειάζεται να τους ορίσουν οι προγραμματιστές. Εκτός των βασικών τύπων δεδομένων στην java μπορούμε να ορίσουμε δικούς μας τύπους μέσω κλάσεων, τους λεγόμενους reference types.
Οι βασικοί τύποι δεδομένων στην Java σε αναλογία με την γλώσσα προγραμματισμού C είναι οι εξής:
| τύπος δεδομένων | byte | short | int | long | float | double | boolean | char |
|---|---|---|---|---|---|---|---|---|
| αριθμός bits | 8 | 16 | 32 | 64 | 32-bit IEEE 754 floating point | 64-bit IEEE 754 floating point | not-applicable* | 16 |
| αριθμός bytes | 1 | 2 | 4 | 8 | 4 | 8 | not-applicable* | 2 |
| εύρος τιμών | -128 έως 127 | -32.768 έως 32.767 | -231 έως 231-1 | -263 έως 263 | μόνο δύο τιμές true και false | 16bit Unicode characters |
* Ο τύπος boolean λαμβάνει μόνο δύο τιμές. Ο αριθμός των bytes που καταλαμβάνονται δεν ορίζεται και πιθανόν διαφέρει από υλοποίηση σε υλοποίηση.
Εκτός από τους παραπάνω βασικούς τύπους δεδομένων η Java παρέχει ειδική υποστήριξη για αλφαριθμητικά (strings) μέσω της κλάσης java.lang.String.
Εάν οι τιμές των παραπάνω βασικών τύπων δεδομένων δεν αρχικοποιηθούν, την αρχικοποίηση τους αναλαμβάνει ο compiler. Οι προεπιλεγμένες τιμές που θέτει ο compiler δίνονται παρακάτω:
| Data Type | Default Value (for fields) |
|---|---|
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| char | '\u0000' |
| String (or any object) | null |
| boolean | false |
Τα κυριολεκτικά αλφαριθμητικών ορίζονται με διπλά εισαγωγικά. Ένα παράδειγμα ορισμού String μπορείτε να δείτε παρακάτω:
String str = "this is a string";
Κυριολεκτικά χαρακτήρων ορίζονται με απλά εισαγωγικά ως εξής:
char c = 'a';
Οι χαρακτήρες στην Java καταλαμβάνουν 2 bytes και έχουν κωδικοποίηση UTF-16. Μπορείτε να γράψετε χαρακτήρες με χρήση της unicode escape μορφής τους, όπως παρακάτω
char c = '1'; char d = '\u0031'; // equals char '1'; String str = "S\u00ED Se\u00F1or"; // equals "Sí Señor" in spanish
Επίσης ορίζονται οι ειδικοί χαρακτήρες
\b (backspace)\t (tab)\n (line feed)\f (form feed)\r (carriege return)\“ (double quote)\' (single quote)\\ (backslash)int decVal = 26;)int hexVal = 0x1a;)int binVal = 0b11010;)Τα κυριολεκτικά αριθμών κινητής υποδιαστολής είναι τύπου double.
double d = 0.14768; ή double d = 0.14768L;
Εάν ένα κυριολεκτικό είναι τύπου float θα πρέπει να τελειώνει σε F ή f, δηλ.
float f = 0.14768f; ή float f = 0.14768F;
Μπορούμε να χρησιμοποιήσουμε χαρακτήρες underscore σε αριθμητικά κυριολεκτικά, όπως παρακάτω:
long creditCardNumber = 1234_5678_9012_3456L; long socialSecurityNumber = 999_99_9999L; float pi = 3.14_15F; long hexBytes = 0xFF_EC_DE_5E; long hexWords = 0xCAFE_BABE; long maxLong = 0x7fff_ffff_ffff_ffffL; byte nybbles = 0b0010_0101; long bytes = 0b11010010_01101001_10010100_10010010;
Δεν μπορείτε να χρησιμοποιήσετε underscores