Chapter 14. Blocks, Statements, and Patterns
Chương 14 của Java Language Specification (JLS) nói về Blocks and Statements (Khối lệnh và câu lệnh). Đây là phần rất quan trọng vì nó định nghĩa cách Java thực thi từng câu lệnh trong chương trình.
📌 1. Khối lệnh (Block)
Một khối lệnh (block) trong Java là một nhóm các câu lệnh được đặt trong dấu {}
.
📌 Ví dụ:
✔ Mỗi khối lệnh có phạm vi riêng, các biến khai báo bên trong không thể truy cập từ bên ngoài.
💡 Ứng dụng phổ biến của khối lệnh:
Trong thân của phương thức:
Trong vòng lặp hoặc điều kiện:
Trong khai báo cục bộ (local block):
📌 2. Các loại câu lệnh trong Java
Chương này định nghĩa nhiều loại câu lệnh, bao gồm:
1️⃣ Câu lệnh trống (Empty Statement)
Là một dấu ;
đơn lẻ, không làm gì cả.
📌 Ví dụ:
💡 Ứng dụng: Đôi khi dùng trong vòng lặp hoặc cấu trúc điều kiện.
2️⃣ Câu lệnh biểu thức (Expression Statement)
Các biểu thức như gán giá trị, gọi phương thức, tăng giảm giá trị. 📌 Ví dụ:
3️⃣ Câu lệnh khai báo (Declaration Statement)
Khai báo biến hoặc phương thức. 📌 Ví dụ:
4️⃣ Câu lệnh điều kiện (If-Else Statement)
📌 Ví dụ:
5️⃣ Câu lệnh lặp (Loop Statements)
📌 Vòng lặp for
:
📌 Vòng lặp while
:
6️⃣ Câu lệnh switch-case
switch-case
📌 Ví dụ:
7️⃣ Câu lệnh break
và continue
break
và continue
📌 Dừng vòng lặp với break
:
📌 Bỏ qua phần còn lại của vòng lặp với continue
:
8️⃣ Câu lệnh return
return
📌 Trả về giá trị trong phương thức:
📌 1. Patterns là gì?
Pattern là một cách để kiểm tra giá trị của một biến và trích xuất dữ liệu một cách an toàn. Java hỗ trợ Pattern Matching trong instanceof
, switch
, và Record.
🔹 Lợi ích của Pattern Matching:
Giảm ép kiểu thủ công (casting).
Cải thiện tính rõ ràng và tính an toàn của mã nguồn.
Hỗ trợ Destructuring (trích xuất dữ liệu).
📌 2. Các loại Patterns trong Java 21
1️⃣ Type Patterns (Kiểu mẫu)
🔹 Sử dụng trong instanceof
để kiểm tra kiểu dữ liệu
📌 Trước đây (Java 14 trở về trước):
📌 Sau khi có Pattern Matching (Java 16+):
✅ Java tự động gán obj
vào biến s
nếu điều kiện đúng.
2️⃣ Record Patterns
🔹 Dùng để trích xuất dữ liệu từ Record 📌 Ví dụ:
✅ Java tự động "giải nén" giá trị của Record mà không cần gọi getX()
hay getY()
.
3️⃣ Deconstruction Patterns (Pattern Tổ Hợp)
🔹 Kết hợp nhiều Pattern bên trong nhau 📌 Ví dụ:
✅ Kết hợp Record Pattern
và Type Pattern
để trích xuất sâu hơn.
4️⃣ Switch Pattern Matching
🔹 Dùng Pattern trong switch-case
📌 Ví dụ:
✅ Không cần if-else
và ép kiểu thủ công, giúp code gọn gàng hơn.
📌 3. Tổng kết
✅ Patterns giúp Java dễ đọc hơn nhờ giảm ép kiểu thủ công.
✅ Hỗ trợ trong instanceof
, switch
, Record
, và deconstruction.
✅ Cải thiện hiệu suất vì Java thực hiện kiểm tra kiểu tối ưu hơn.
Last updated