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
  • Stream nguyên thủy và chi phí boxing

    JAVA 25 SELF
    Cấp độ 33,Bài học 0
    Trong bài giảng này, chúng ta sẽ tìm hiểu vì sao các stream thông thường của collection số ( Stream<Integer>, Stream<Double>) có thể kém hiệu quả do boxing/unboxing, và cách các stream nguyên thủy — IntStream, LongStream, DoubleStream — giúp tránh điều đó. Chúng ta sẽ xem các chuyển đổi mapToInt/ boxed(), các phép tổng hợp ( sum(), average(), summaryStatistics()), kết quả an toàn với OptionalInt/ OptionalDouble, cũng như nơi tối ưu hóa thực sự mang lại lợi ích và cách đo lường hiệu ứng bằng JMH.
    Có sẵn
  • Xử lý lười (lazy evaluation) trong Stream API

    JAVA 25 SELF
    Cấp độ 33,Bài học 1
    Trong bài giảng này, ta tìm hiểu cách xử lý lười trong Stream API hoạt động: sự khác nhau giữa các thao tác trung gian (intermediate) và thao tác kết thúc (terminal), vì sao việc tính toán chỉ bắt đầu sau khi gọi thao tác terminal, lợi ích của xử lý theo từng phần tử và “short-circuit”. Chúng tôi sẽ trình bày các chuỗi với filter, map, peek, findFirst, forEach, trực quan hóa đường đi của phần tử và phân tích các lỗi thường gặp cùng khuyến nghị về thứ tự thao tác hiệu quả.
    Có sẵn
  • Bộ sưu tập bất biến: Collections.unmodifiable

    JAVA 25 SELF
    Cấp độ 33,Bài học 2
    Trong bài giảng này, chúng ta phân tích cách bảo vệ dữ liệu bằng các lớp bọc bất biến Collections.unmodifiableList, unmodifiableSet, unmodifiableMap, sự khác nhau giữa tính bất biến “nông” và “sâu”, khi nào và vì sao nên trả về lớp bọc từ các phương thức, cũng như các lựa chọn thay thế hiện đại List.of/ Set.of/ Map.of. Chúng ta sẽ nói về các lỗi điển hình (ví dụ, kỳ vọng tính bất biến sâu hoặc làm việc với null) và lý do vì sao các nỗ lực sửa đổi sẽ dẫn tới UnsupportedOperationException.
    Có sẵn
  • Spliterator và stream song song

    JAVA 25 SELF
    Cấp độ 33,Bài học 3
    Trong bài giảng này, chúng ta tìm hiểu Spliterator là gì, cách nó cho phép không chỉ duyệt phần tử mà còn chia nguồn dữ liệu thành các phần bằng trySplit(), cách dựa trên đó các stream song song hoạt động thông qua parallelStream() và pool chung ForkJoinPool. Trình bày các phương thức then chốt ( tryAdvance, estimateSize, characteristics), các đặc tính điển hình ( ORDERED, SIZED, CONCURRENT, v.v.), ví dụ thực tế, sơ đồ Mermaid và các lỗi thường gặp khi sử dụng stream song song.
    Có sẵn
  • Collector và Spliterator tùy chỉnh

    JAVA 25 SELF
    Cấp độ 33,Bài học 4
    Trong bài giảng này, chúng ta phân tích cách viết collector tùy chỉnh cho Stream API thông qua Collector và khi nào điều đó thực sự hợp lý, đồng thời cách hiện thực Spliterator của riêng bạn để duyệt dữ liệu tuần tự và song song hiệu quả. Chúng ta sẽ xem xét từng bước các thành phần của collector ( supplier, accumulator, combiner, finisher, characteristics), các ví dụ cho multi-map và top-N, các chiến lược trySplit, cũng như cách thiết lập đúng các đặc tính ( ORDERED, SIZED, SUBSIZED v.v.).
    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