Chuyển tới nội dung chính

Kiểu Dữ Liệu Nguyên Thủy Trong Java - Nền Tảng Cơ Bản! 🎯

Chào mừng bạn đến với bài học về kiểu dữ liệu nguyên thủy trong Java! Trong bài học này, chúng ta sẽ tìm hiểu về 8 kiểu dữ liệu cơ bản mà Java cung cấp.

💡 Fun Fact: Java có 8 kiểu dữ liệu nguyên thủy, mỗi kiểu có kích thước và phạm vi giá trị riêng, giúp tối ưu bộ nhớ và hiệu suất chương trình.

1. Kiểu Số Nguyên 🔢

byte 📦

  • Kích thước: 8-bit
  • Giá trị: -128 đến 127
  • Mặc định: 0
  • Ví dụ:
byte age = 25;
byte temperature = -5;

⚠️ Lưu ý: byte thường được sử dụng khi cần tiết kiệm bộ nhớ cho các giá trị nhỏ.

short 📏

  • Kích thước: 16-bit
  • Giá trị: -32,768 đến 32,767
  • Mặc định: 0
  • Ví dụ:
short year = 2024;
short items = 1000;

int 🔢

  • Kích thước: 32-bit
  • Giá trị: -2,147,483,648 đến 2,147,483,647
  • Mặc định: 0
  • Ví dụ:
int population = 1000000;
int salary = 50000;

💡 Mẹo: int là kiểu dữ liệu được sử dụng phổ biến nhất cho số nguyên trong Java.

long 📈

  • Kích thước: 64-bit
  • Giá trị: -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807
  • Mặc định: 0L
  • Ví dụ:
long worldPopulation = 7800000000L;
long distance = 150000000000L;

2. Kiểu Số Thực 🔢

float 🌊

  • Kích thước: 32-bit
  • Độ chính xác: 6-7 chữ số thập phân
  • Mặc định: 0.0f
  • Ví dụ:
float pi = 3.14159f;
float temperature = 98.6f;

double 🌊

  • Kích thước: 64-bit
  • Độ chính xác: 15 chữ số thập phân
  • Mặc định: 0.0d
  • Ví dụ:
double pi = 3.14159265359;
double gravity = 9.81;

💡 Mẹo: double được sử dụng phổ biến hơn float vì có độ chính xác cao hơn.

3. Kiểu Ký Tự 🔤

char 📝

  • Kích thước: 16-bit
  • Lưu trữ một ký tự Unicode
  • Mặc định: '\u0000'
  • Ví dụ:
char grade = 'A';
char symbol = '$';
char unicode = '\u0041'; // 'A' trong Unicode

4. Kiểu Logic ⚖️

boolean ✅

  • Kích thước: 1-bit
  • Giá trị: true hoặc false
  • Mặc định: false
  • Ví dụ:
boolean isActive = true;
boolean hasPermission = false;

5. Chuyển Đổi Kiểu Dữ Liệu 🔄

Tự Động Chuyển Đổi (Widening)

int number = 100;
long bigNumber = number; // Tự động chuyển đổi từ int sang long

Ép Kiểu (Narrowing)

double pi = 3.14159;
int roundedPi = (int)pi; // Ép kiểu từ double sang int

⚠️ Cảnh báo: Ép kiểu có thể dẫn đến mất dữ liệu, hãy cẩn thận khi sử dụng!

6. Best Practices ✨

1. Chọn Kiểu Dữ Liệu Phù Hợp

  • Sử dụng int cho hầu hết các trường hợp số nguyên
  • Sử dụng double cho hầu hết các trường hợp số thực
  • Sử dụng long cho các số lớn
  • Sử dụng byte hoặc short khi cần tiết kiệm bộ nhớ

2. Xử Lý Số Thực

  • Cẩn thận với độ chính xác của số thực
  • Sử dụng BigDecimal cho các tính toán tài chính
  • Tránh so sánh trực tiếp số thực

3. Ký Tự Unicode

  • Sử dụng Unicode cho các ký tự đặc biệt
  • Cẩn thận với encoding khi làm việc với file

4. Kiểu Boolean

  • Sử dụng tên biến có ý nghĩa rõ ràng
  • Tránh so sánh boolean với true/false

7. Ví Dụ Thực Tế 🎯

Tính Toán Đơn Giản

public class Calculator {
public static void main(String[] args) {
int a = 10;
int b = 5;

// Các phép tính cơ bản
int sum = a + b;
int difference = a - b;
int product = a * b;
double quotient = (double)a / b;

System.out.println("Tổng: " + sum);
System.out.println("Hiệu: " + difference);
System.out.println("Tích: " + product);
System.out.println("Thương: " + quotient);
}
}

Xử Lý Ký Tự

public class CharacterDemo {
public static void main(String[] args) {
char letter = 'A';
char number = '5';
char symbol = '@';

// Kiểm tra loại ký tự
System.out.println(Character.isLetter(letter)); // true
System.out.println(Character.isDigit(number)); // true
System.out.println(Character.isLetterOrDigit(symbol)); // false
}
}

Kiểm Tra Điều Kiện

public class BooleanDemo {
public static void main(String[] args) {
int age = 25;
boolean isAdult = age >= 18;
boolean hasLicense = true;

if (isAdult && hasLicense) {
System.out.println("Có thể lái xe");
} else {
System.out.println("Không thể lái xe");
}
}
}

💡 Lời khuyên: Hãy thực hành với các kiểu dữ liệu khác nhau và hiểu rõ phạm vi giá trị của chúng để tránh các lỗi không mong muốn.

Tiếp Theo 🎯

Trong bài học tiếp theo, chúng ta sẽ:

  • Tìm hiểu về kiểu dữ liệu tham chiếu (Reference Types)
  • Học cách sử dụng các lớp wrapper
  • Thực hành với các ví dụ thực tế
  • Tìm hiểu về boxing và unboxing