Skip to main content

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

  1. 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
  2. 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
  3. 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";