Variables, Data Types, Operators
Variables
Khai báo biến
- Cú pháp:
kiểu_dữ_liệu tên_biến;
- Ví dụ:
int a = 10;
Phân loại biến
Trong Java, có 3 loại biến
- Instance Variables (Non-Static Fields) - Biến toàn cục của lớp
- Là biến được khai báo trong một lớp nhưng bên ngoài các phương thức
- Mỗi đối tượng (instance) của lớp sẽ có một bản sao riêng biệt của các instance variables
- Giá trị của nó có thể khác nhau giữa các đối tượng
- Được khởi tạo khi đối tượng được tạo, bị hủy khi đối tượng bị hủy
- Class Variables (Static Fields) - Biến tĩnh
- Được khai báo với từ khóa static trong một lớp
- Chỉ tồn tại DUY NHẤT một bản sao cho tất cả các đối tượng của lớp
- Giá trị giống nhau đối với tất cả các đối tượng của lớp
- Được khởi tạo khi lớp được tải, bị hủy khi lớp bị hủy
- Local Variables - Biến cục bộ
- Được khai báo trong phương thức hoặc khối lệnh
- Chỉ tồn tại trong phạm vi khối mã đ ó (phương thức hoặc khối lệnh)
- Mỗi lần gọi phương thức/khối lệnh sẽ khởi tạo lại biến
- Bị hủy khi kết thúc khối mã đó
Quy tắc đặt tên biến
- Tên biến phải bắt đầu bằng một chữ cái (a-z, A-Z) hoặc ký tự gạch dưới (_)
- Tên biến không thể bắt đầu bằng một chữ số (0-9)
- Tên biến chỉ có thể chứa các ký tự chữ cái, số và ký tự gạch dưới (a-z, A-Z, 0-9, _)
- Tên biến không thể chứa khoảng trắng
- Tên biến không thể chứa các ký tự đặc biệt như !, @, #, $, %, etc.
- Tên biến có phân biệt chữ hoa chữ thường (age, Age và AGE là 3 biến khác nhau)
- Tên biến nên có ý nghĩa (không nên đặt tên biến là a, b, c, ...)
- Tên biến không được trùng với các từ khóa của Java (if, else, for, ...)
- Tên biến nên được viết thường (age) hoặc viết hoa (AGE)
- Tên biến nên được viết theo kiểu Camel Case (ageOfStudent, firstName, ...)
- Tên biến nên được viết theo kiểu Snake Case (age_of_student, first_name, ...)
- Tên biến nên được viết theo kiểu Pascal Case (AgeOfStudent, FirstName, ...)
- Tên biến nên được viết bằng tiếng Anh
Kiểu dữ liệu
Số nguyên
- byte: 1 byte
- short: 2 byte
- int: 4 byte
- long: 8 byte
Số thực
- float: 4 byte
- double: 8 byte
Ký tự
- char: 2 byte
Luận lý
- boolean: 1 bit
Trong đó: 1 byte = 8 bit, ví dụ 4 bytes có độ lớn là 32 bit, tính ra là: 2^32 = 4.294.967.296, từ khoảng: -2.147.483.648 đến 2.147.483.647
Phân biệt primitive và reference type
- Primitive type: int, double, float, char, boolean, ...
- Reference type: Array, Class, Interface, ...
Ví dụ:
int a = 10;
String b = "Hello";
Cách cấp phát bộ nhớ cho primitive và reference type
- Primitive type: cấp phát trực tiếp trên stack
- Reference type: cấp phát trên stack, nhưng giá trị thực sự được lưu trữ trên heap
int a = 10;
String b = "Hello";