Trong phần này chúng ta sẽ tìm hiểu về các kiểu dữ liệu cơ bản.
Kiểu dữ liệu là các từ khóa trong Java dùng để chỉ ra loại giá trị của biến.
Java là một ngôn ngữ rất nặng về kiểu dữ liệu, nghĩa là chúng ta phải khai báo rõ kiểu dữ liệu cho biến trước khi thực hiện các thao tác trên biến:
int gear = 1;
Dòng code trên báo cho chương trình biết là có một trường tên là gear, lưu trữ dữ liệu dạng số, và có giá trị ban đầu là “1”. Kiểu dữ liệu của biến sẽ quyết định những giá trị mà biến đó được nhận. Ngoài int
ra thì Java còn có 7 kiểu dữ liệu cơ bản khác, tức là có tổng cộng 8 kiểu dữ liệu như sau:
KIỂU DỮ LIỆU |
GHI CHÚ |
GIÁ TRỊ |
GIÁ TRỊ MẶC ĐỊNH |
byte |
Số nguyên 8 bít | -128 → 127 | 0 |
short |
Số nguyên 16 bit | -32768 → 32767 | 0 |
int |
Số nguyên 32 bit | -2147483648 → 2147483647 | 0 |
long |
Số nguyên 64 bit | -2^63 → 2^63 – 1 | 0L |
float |
Số thực 32 bit | 2^-149 → (2-2^(-23))*2^127 | 0.0f |
double |
Số thực 64 bit | 2^(-1074) → (2-2^(-52))*2^1023 | 0.0d |
boolean |
Kiểu luận lý | TRUE / FALSE | ‘\u0000’ (hay kí tự số ‘0’) |
char |
Kiểu kí tự Unicode 16 bit | false |
Giá trị là các ký tự được gán cho các biến có kiểu dữ liệu cơ bản, chúng ta không dùng toán tử new
.
Số nguyên
Số nguyên kiểu long
(64 bit) được ghi kèm theo kí tự 'L'
hoặc 'l'
sau cùng, nếu không Java sẽ hiểu đó là số nguyên int
(32 bit).
Chúng ta có thể sử dụng 3 hệ số cho số nguyên là hệ 16 (thập lục phân), hệ 2 (nhị phân) và hệ 10 (thập phân).
- Hệ 16: sử dụng các kí tự từ
0-9
và từA-F.
Khi khai báo thì chúng ta thêm 2 kí tự'0x'
vào trước số. - Hệ 12: chỉ sử dụng 2 kí tự 0 hoặc 1. Khi khai báo thì chúng ta thêm 2 kí tự
'0b'
vào trước số. - Hệ 10: sử dụng các số từ 0 đến 9.
Ví dụ:
int hexa = 0x1A; // Hệ 16 int bin = 0b110110; // Hệ 2 int dec = 26; // Hệ 10
Số thực
Số thực được biểu diễn bằng phần thập phân và phần thực, ngăn cách nhau bởi dấu chấm '.'
. Có thể thêm kí tự 'F'
hoặc 'f'
sau cùng để chỉ rõ kiểu dữ liệu là float,
kí tự 'D'
hoặc 'd'
để chỉ rõ kiểu kí tự là double,
nếu không thì Java sẽ hiểu là dùng kiểu float
.
Ngoài ra chúng ta còn có thể kết thúc bằng cú pháp e<x>
, trong đó x là một số nguyên, để biểu diễn phần lũy thừa của 10.
Ví dụ:
double d1 = 123.4; double d2 = 1.234e2; // Tương đương 1.234 x 10^2 = 123.4 float d3 = 123.4f;
Kiểu ký tự
Giá trị của ký tự có thể chứa cả kí tự Unicode nếu hệ điều hành và phần mềm bạn dùng để viết code có hỗ trợ Unicode. Nếu không thì chúng ta có thể dùng mã Unicode để biểu diễn kí tự Unicode, ví dụ '\u0108'
là kí tự 'C'
. Kiểu kí tự được bọc trong cặp dấu nháy đơn.
Ngoài các kí tự có thể nhìn thấy, chúng ta còn có một số mã dùng để biểu diễn các kí tự điều khiển là:
\b
: nút Backspace\t
: nút Tab\n
: xuống dòng\r
: nút Enter
Ngoài ra còn một giá trị đặc biệt nữa là null
, biến có giá trị null
mang ý nghĩa là biến này không có giá trị gì cả.
Phân nhóm giá trị số
Kể từ Java 7 trở đi, chúng ta có thể sử dụng dấu gạch dưới '_'
để phân nhóm các số cho dễ đọc.
long ATM = 1234_5678_9012_3456; long CMND = 2255_111_11L; float PI = 3.14_15F; long MAC_ADDRESS = 0xFF_EC_DE_5E_AA_6E_0F_43; long binary = 0b1101_0011_1000_0100;
Lưu ý:
- Chỉ để dấu gạch dưới giữa các con số, không phải ở đầu hoặc cuối số.
- Dấu gạch dưới phải nằm cạnh một chữ số trong số thực
- Dấu gạch dưới phải nằm trước kí tự
'F'
hoặc'L'
String
Ngoài 8 kiểu dữ liệu cơ bản trên thì Java còn hỗ trợ một kiểu đặc biệt dùng để lưu trữ chuỗi kí tự là lớp java.lang.String
. Kiểu này bọc các chuỗi trong cặp dấu nháy kép '"'.
Ví dụ:
String s = "Pho Code";
Giá trị mặc định của String
là null
.
Giá trị của String
là không thể thay đổi, bạn chỉ có thể thay đổi tham chiếu của biến thôi. Ví dụ:
String s1 = "C++"; String s2 = s1; System.out.println(s2); // s2 có giá trị là 'C++' s1 = "Java"; System.out.println(s2); // s2 vẫn có giá trị là 'C++'
Chúng ta sẽ tìm hiểu thêm về tham chiếu sau.