Java là ngôn ngữ lập trình hướng đối tượng, biên dịch ra bytecode chạy trên JVM, nổi bật với tính độc lập nền tảng, an toàn bộ nhớ, và hỗ trợ đa luồng mạnh.
Hãy nghĩ Java như một bộ phim được quay thành phim nhựa (bytecode): bất kỳ rạp chiếu nào (JVM) trên máy nào cũng chiếu được, miễn là rạp đó đọc được định dạng phim.
Cơ chế chính:
- Hướng đối tượng: Java tổ chức code quanh class/object, hỗ trợ encapsulation, inheritance, polymorphism, abstraction. Trừ primitive type, mọi thứ đều là object.
- Độc lập nền tảng (WORA): javac biên dịch mã nguồn thành bytecode (.class). JVM trên mỗi OS đọc bytecode và thực thi, nên cùng một file .class chạy được trên Windows, Linux, macOS.
- Robust: kiểu dữ liệu được kiểm tra chặt lúc biên dịch, có exception handling, và không có con trỏ trực tiếp — Java quản lý bộ nhớ qua tham chiếu và garbage collector, tránh được nhiều lỗi segmentation fault.
- Đa luồng: Thread, synchronized, java.util.concurrent có sẵn. Java 21 thêm Virtual Threads, cho phép tạo hàng triệu thread nhẹ, phù hợp với ứng dụng I/O-heavy.
- Bảo mật: JVM có sandbox, bytecode verifier kiểm tra mã trước khi chạy, và không cho truy cập bộ nhớ trực tiếp.
Ví dụ minh hoạ tính đa luồng:
Thread t = new Thread(() -> System.out.println("Hello from thread"));
t.start();Lỗi thường gặp: nhầm rằng Java không có con trỏ nghĩa là không có lỗi null pointer — thực tế NullPointerException vẫn xảy ra khi truy cập object chưa khởi tạo. Ngoài ra, "WORA" không có nghĩa là mọi thư viện native đều chạy được trên mọi nền tảng; nếu dùng JNI hoặc native code, khả năng chạy đa nền tảng (portability) giảm.
Lưu ý: Java mạnh ở server-side, backend lớn, và hệ thống cần ổn định lâu dài. Nếu dự án cần khởi động nhanh, footprint nhỏ, hoặc tương tác hệ thống sâu, bạn nên cân nhắc ngôn ngữ khác như Go hoặc Rust.