📄️ Kotlin Basics
Key Concepts
📄️ Kotlin Coroutines
Coroutine là một concurrency design pattern để đơn giản hóa code xử lý bất đồng bộ (asynchronous).
📄️ Data Class
Data class là một lớp được thiết kế để chứa dữ liệu. Compiler sẽ tự động sinh ra các phương thức như equals(), hashCode(), toString(), copy(), componentN(). Điều này giúp giảm lượng boilerplate code khi mục đích chính của nó là để lưu trữ và quản lý dữ liệu.
📄️ Extensions function
Nó là cơ chế cho phép ta "thêm" phương thức mới vào một lớp đã tồn tại mà không cần kế thừa (inheritance) hay sử dụng Decorator pattern.
📄️ Flows
Là một API thuộc Kotlin Coroutines dùng để xử lý stream dữ liệu bất đồng bộ (asynchronous data stream).
📄️ Inline Function
Inline function được sinh ra để tối ưu hiệu suất khi sử dụng higher-order function nhận lambda làm tham số. Khi truyền Lambda vào một Higher-order function, dưới góc nhìn của Java Bytecode, Kotlin sẽ tự động tạo ra một object (FunctionX) để chứa đoạn code lambda đó. Nếu hàm này được gọi liên tục (vd: trong một vòng lặp), hàng ngàn object rác sẽ được tạo ra, gây áp lực cho Garbage Collector (GC), dẫn đến giảm hiệu năng (Jank/Lag).
📄️ Lateinit Lazy
lateinit và lazy đều được sinh ra để giải quyết bài toán trì hoãn việc khởi tạo.
📄️ Sealed Class và Sealed Interface
1. Sealed Class: "Gia phả" có giới hạn