Kiểu dữ liệu số
Java có 6 kiểu dữ liệu số nguyên thủy (primitive) - kích thước cố định, không đổi giữa các nền tảng (khác với C/C++).
1. Kiểu số nguyên
Phần tiêu đề “1. Kiểu số nguyên”| Kiểu | Kích thước | Phạm vi giá trị |
|---|---|---|
byte |
8-bit | -128 đến 127 |
short |
16-bit | -32,768 đến 32,767 |
int |
32-bit | -2,147,483,648 đến 2,147,483,647 (~2.1 tỷ) |
long |
64-bit | -9.2 × 10¹⁸ đến 9.2 × 10¹⁸ |
int là kiểu số nguyên mặc định được dùng phổ biến nhất.
int population = 8_000_000; // Dấu gạch dưới giúp dễ đọc số lớnlong bigNumber = 10_000_000_000L; // Bắt buộc hậu tố L (hoặc l) vì vượt phạm vi int⚠️ Thiếu hậu tố L khi gán một giá trị vượt phạm vi int cho biến long sẽ gây lỗi biên dịch, vì literal số nguyên mặc định luôn được hiểu là int.
2. Kiểu số thực (dấu phẩy động)
Phần tiêu đề “2. Kiểu số thực (dấu phẩy động)”| Kiểu | Kích thước | Độ chính xác |
|---|---|---|
float |
32-bit | ~6-7 chữ số thập phân |
double |
64-bit | ~15-16 chữ số thập phân (mặc định, khuyến nghị dùng) |
double price = 19.99; // double là kiểu mặc định cho số thựcfloat weight = 65.5f; // Bắt buộc hậu tố f (hoặc F) cho float⚠️ Thiếu hậu tố f khi gán literal thập phân cho float sẽ gây lỗi biên dịch, vì literal số thực mặc định luôn là double (kích thước lớn hơn float, không thể tự động thu hẹp).
3. Các dạng literal số nguyên khác
Phần tiêu đề “3. Các dạng literal số nguyên khác”int decimal = 26; // Hệ thập phân (mặc định)int hex = 0x1A; // Hệ thập lục phân (hex) - bằng 26int octal = 032; // Hệ bát phân (octal) - bằng 26int binary = 0b11010; // Hệ nhị phân (binary) - bằng 264. Giá trị mặc định
Phần tiêu đề “4. Giá trị mặc định”Các trường (field) của class, nếu không được khởi tạo, sẽ nhận giá trị mặc định: 0 cho các kiểu số nguyên, 0.0 cho float/double. Biến cục bộ bên trong phương thức không có giá trị mặc định - phải khởi tạo trước khi dùng.
Tổng kết
Phần tiêu đề “Tổng kết”- Java có kích thước kiểu số cố định trên mọi nền tảng:
byte(8-bit),short(16-bit),int(32-bit),long(64-bit),float(32-bit),double(64-bit) intlà kiểu số nguyên mặc định,doublelà kiểu số thực mặc địnhlongcần hậu tốL,floatcần hậu tốfkhi gán literal - nếu không sẽ lỗi biên dịch- Có thể viết số ở hệ hex (
0x), octal (0), binary (0b), và dùng_để phân tách số lớn cho dễ đọc