CodeGym
AI Academy
Khuyến mãi
CodeGym University
Học tập
Khóa học
Bài tập
Khảo sát & Bài kiểm tra
Trò chơi
Trợ giúp
Lịch
Cộng đồng
Người dùng
Diễn đàn
Trò chuyện
Bài viết
Câu chuyện thành công
Hoạt động
Đánh giá
Gói đăng ký
Chủ đề sáng

Bài học

  • Đánh giá
  • Về chúng tôi
Bắt đầu
Bắt đầu học
Bắt đầu học ngay
  • Tiến độ của tôi
  • Khóa học
  • Bản đồ Quest
  • Bài học
  • Vấn đề hiệu năng IO: điểm nghẽn

    JAVA 25 SELF
    Cấp độ 41,Bài học 0
    Bài giảng này nói về “điểm nghẽn” trong nhập/xuất (IO), cách phát hiện và khắc phục. Chúng ta sẽ tìm hiểu vì sao thao tác đĩa và mạng chậm hơn RAM rất nhiều, các anti‑pattern thường gặp (đọc từng byte qua read(), ghi log đồng bộ, v.v.), vai trò của bộ đệm ( BufferedInputStream, BufferedReader), profiler ( VisualVM, JProfiler) và đo thời gian bằng System. currentTimeMillis (). Chúng ta sẽ làm một thử nghiệm thực tế với tệp "bigfile.txt", so sánh tốc độ có và không có bộ đệm, xem ảnh hưởng của SSD/HDD và mạng, và liệt kê các lỗi thường gặp.
    Có sẵn
  • Kênh NIO và ByteBuffer

    JAVA 25 SELF
    Cấp độ 41,Bài học 1
    Giới thiệu thực hành về I/O không chặn của Java NIO: phân tích cách các kênh Channel và bộ đệm ByteBuffer khác với luồng InputStream/ OutputStream, cách đọc và ghi với FileChannel, định vị bằng position()/ truncate(), làm việc với các tham số bộ đệm ( capacity, limit, position, mark) và lựa chọn giữa allocate() và allocateDirect(). Trình bày các thao tác zero-copy transferTo()/ transferFrom() và các lỗi điển hình như quên flip() hoặc sai chế độ bộ đệm.
    Có sẵn
  • Tệp lớn: các mẫu chunking

    JAVA 25 SELF
    Cấp độ 41,Bài học 2
    Cách xử lý hiệu quả các tệp dung lượng hàng chục gigabyte mà không gặp OutOfMemoryError: chia thành các phần (chunks), đọc theo vị trí qua RandomAccessFile và FileChannel, chạy song song tác vụ với ExecutorService/ ForkJoinPool, còn với việc sao chép đơn giản thì dùng zero-copy qua transferTo/ transferFrom. Cùng phân tích cách chọn kích thước chunk, ranh giới dòng, đồng bộ kết quả và các lỗi thường gặp.
    Có sẵn
  • Làm việc với tệp lớn: chunking, memory mapping

    JAVA 25 SELF
    Cấp độ 41,Bài học 3
    Cách xử lý các tệp khổng lồ trong Java một cách an toàn và nhanh chóng: đọc theo từng phần (chunking) qua luồng và bộ đệm, tinh chỉnh kích thước bộ đệm để đạt hiệu năng, sử dụng ánh xạ tệp vào bộ nhớ thông qua MappedByteBuffer và FileChannel để truy cập ngẫu nhiên siêu nhanh. Chúng ta sẽ phân tích ưu và nhược điểm của memory mapping, khuyến nghị về tài nguyên và song song, cũng như các lỗi điển hình (ví dụ OutOfMemoryError, quên đóng file descriptor, chồng lấn các chunk khi tìm kiếm).
    Có sẵn
  • Lưu trữ/nén: java.util.zip

    JAVA 25 SELF
    Cấp độ 41,Bài học 4
    Bài giảng thực hành về làm việc với lưu trữ và nén trong Java: làm quen với gói java.util.zip, các luồng ZipInputStream/ ZipOutputStream và lớp truy cập ngẫu nhiên ZipFile, điều khiển mức nén qua Deflater ( 0… 9, DEFAULT_COMPRESSION), làm việc với GZIPInputStream/ GZIPOutputStream cho tệp đơn, đóng gói/giải nén thư mục bằng Files.walk và lọc bằng PathMatcher ( "glob:**/*.txt"). Sẽ bàn về bảo mật: bảo vệ khỏi Zip Slip thông qua chuẩn hóa đường dẫn và kiểm soát dung lượng đối với zip bomb, và cũng sẽ xây dựng một CLI nhỏ “zip/unzip” với mẫu.
    Có sẵn
Học
  • Đăng ký
  • Khóa học Java
  • Trợ giúp bài tập
  • Bảng giá
  • Cú pháp Java
Cộng đồng
  • Người dùng
  • Bài viết
  • Diễn đàn
  • Trò chuyện
  • Câu chuyện thành công
  • Hoạt động
  • Chương trình giới thiệu
Công ty
  • Về chúng tôi
  • Liên hệ
  • Đánh giá
  • Phòng báo chí
  • CodeGym cho EDU
  • Câu hỏi thường gặp
  • Hỗ trợ
CodeGymCodeGym là một khóa học trực tuyến để học lập trình Java từ đầu. Khóa học này là cách hoàn hảo để nắm vững Java cho người mới bắt đầu. Nó chứa 1200+ bài tập với kiểm tra ngay lập tức và phạm vi lý thuyết cơ bản cần thiết về Java. Để giúp bạn thành công trong học tập, chúng tôi đã triển khai một bộ tính năng tạo động lực: bài kiểm tra, dự án lập trình, nội dung về phương pháp học hiệu quả, và hỗ trợ sự nghiệp lập trình viên Java.
Theo dõi chúng tôi
Ngôn ngữ giao diện
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский
Vietnamese
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym
MastercardVisa
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym