# 📚 Lộ Trình Học Java Core ## 🎯 Mục tiêu sau khoá học: - Nắm vững cú pháp và cấu trúc cơ bản của Java. - Hiểu và áp dụng lập trình hướng đối tượng (OOP). - Làm quen với xử lý file, exception, collection, thread... - Sẵn sàng học Java nâng cao (Spring, Hibernate, Android, ...) --- ## 📘 Giai đoạn 1: Làm quen với Java & lập trình cơ bản | Chủ đề | Mô tả | Ví dụ bài tập | |--------|-------|----------------| | ✅ Cài đặt JDK, IDE (Eclipse/IntelliJ) | Biết cách cài đặt và tạo project đầu tiên | HelloWorld | | ✅ Cấu trúc chương trình Java | `public class`, `main`, cách biên dịch | In ra tên, tuổi | | ✅ Kiểu dữ liệu, biến, hằng số | int, float, boolean, String, final | Tính tuổi từ năm sinh | | ✅ Toán tử | +, -, *, /, %, ++, --, logic | Tính diện tích hình tròn | | ✅ Câu lệnh điều kiện | `if`, `else if`, `switch` | Xếp loại học lực | | ✅ Vòng lặp | `for`, `while`, `do...while` | Tính tổng 1→n | | ✅ Hàm (method) | Cách khai báo, gọi và truyền tham số | Viết hàm kiểm tra số nguyên tố | --- ## 📗 Giai đoạn 2: Lập trình hướng đối tượng (OOP) | Chủ đề | Mô tả | Ví dụ bài tập | |--------|-------|----------------| | ✅ Class và Object | Khai báo class, tạo đối tượng | Class `Student` | | ✅ Access Modifiers | `public`, `private`, `protected`, default | Thử truy cập thuộc tính giữa các class | | ✅ Từ khóa `this`, `static`, `final` | Quản lý biến dùng chung, hằng số | Đếm số object được tạo | | ✅ Constructor | Constructor mặc định & có tham số | Khởi tạo `Student` bằng constructor | | ✅ Encapsulation | getter/setter | Ẩn thông tin số dư tài khoản | | ✅ Inheritance (Kế thừa) | `extends`, gọi super class | Class `Employee` kế thừa `Person` | | ✅ Polymorphism (Đa hình) | Overloading, Overriding | Ghi đè `toString()` | | ✅ Abstract class, Interface | Lớp trừu tượng, giao diện | Interface `Shape` với `draw()` | | ✅ Object Class & Wrapper Class | `toString()`, `equals()`, `Integer`, `Double` | So sánh đối tượng | --- ## 📙 Giai đoạn 3: Java nâng cao trong Core | Chủ đề | Mô tả | Ví dụ bài tập | |--------|-------|----------------| | ✅ Exception Handling | `try-catch`, `finally`, `throw`, `throws` | Xử lý chia cho 0 | | ✅ Collection Framework | `List`, `Set`, `Map`, `Queue` | Quản lý danh sách sinh viên | | ✅ Generic | `List<String>`, `List<Integer>` | Viết hàm generic tính tổng | | ✅ File I/O | Đọc ghi file với `File`, `BufferedReader`, `FileWriter` | Lưu danh sách sinh viên vào file | | ✅ Enum | Khai báo enum và sử dụng | Enum các ngày trong tuần | | ✅ Date and Time API | `LocalDate`, `LocalDateTime`, `DateTimeFormatter` | Tính tuổi từ ngày sinh | | ✅ Lambda Expression | Cú pháp lambda và functional interface | Sắp xếp danh sách | | ✅ Multithreading | `Thread`, `Runnable`, `synchronized` | In số lẻ chẵn song song | --- ## 📒 Giai đoạn 4: Dự án nhỏ & chuẩn bị học nâng cao | Chủ đề | Mô tả | |--------|-------| | ✅ Mini Project 1 | Quản lý sinh viên: Thêm, sửa, xoá, tìm kiếm | | ✅ Mini Project 2 | Quản lý thư viện: Mượn, trả sách | | ✅ Tìm hiểu JDBC | Kết nối Java với MySQL | | ✅ Tìm hiểu Java GUI (Swing/JavaFX) | Làm giao diện người dùng cơ bản | | ✅ Chuẩn bị học Spring Boot | Nắm vững OOP và Maven/Gradle | --- ## 📌 Gợi ý timeline học tập | Tuần | Nội dung | |------|----------| | 1-2 | Cơ bản + Lập trình cấu trúc | | 3-4 | OOP + Mini Project | | 5-6 | Collection, Exception, File I/O | | 7-8 | Thread, Lambda, JDBC, GUI | | 9+ | Dự án tổng hợp hoặc chuyển sang Java Web (Spring Boot) |