CodeGym
Khuyến mãi
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
  • Nén và profiling cho tuần tự hóa

    JAVA 25 SELF
    Cấp độ 45,Bài học 4
    Cách giảm kích thước và tăng tốc tuần tự hóa đối tượng trong Java: loại bỏ các trường thừa với transient, nắm toàn quyền kiểm soát qua Externalizable, áp dụng nén theo luồng ( GZIPOutputStream, ZipOutputStream), tăng tốc I/O bằng bộ đệm ( BufferedOutputStream, BufferedInputStream) và sao chép nhanh qua FileChannel. transferTo. Để đánh giá hiệu năng, dùng cả phép đo nhanh bằng System. nanoTime(), lẫn microbenchmark đáng tin cậy trên JMH. Kết lại bằng một mini‑thí nghiệm và phân tích các lỗi điển hình.
    Có sẵn
  • Cơ bản về JSON: cấu trúc, cú pháp, ưu điểm

    JAVA 25 SELF
    Cấp độ 46,Bài học 0
    Giới thiệu ngắn gọn và hiện đại về định dạng trao đổi dữ liệu JSON: nó là gì và vì sao nó trở thành tiêu chuẩn de facto cho REST API, các cấu trúc cơ bản — đối tượng { } và mảng [ ], các kiểu hợp lệ (chuỗi "...", số, giá trị boolean true/ false, null), tính lồng nhau, so sánh với XML, ánh xạ JSON ↔ Java (các collection Map<K, V>, HashMap<K, V>). Phân tích ví dụ thực tế và lỗi thường gặp: dấu nháy đơn, dấu phẩy thừa, undefined, số có số 0 ở đầu.
    Có sẵn
  • Jackson — đọc và ghi JSON, các chú thích (annotations)

    JAVA 25 SELF
    Cấp độ 46,Bài học 1
    Jackson — tiêu chuẩn de facto để làm việc với JSON trong Java: từ các thao tác tuần tự hóa và giải tuần tự đơn giản qua ObjectMapper đến tinh chỉnh bằng các chú thích @JsonProperty, @JsonIgnore, @JsonInclude, @JsonFormat. Trong bài giảng, chúng ta sẽ xem cách tích hợp ( jackson-databind), đọc và ghi đối tượng và collection, pretty-printing, làm việc với ngày giờ và các lỗi thường gặp, bao gồm generics với TypeReference và các yêu cầu với POJO (constructor không tham số, getter/setter).
    Có sẵn
  • Gson — tuần tự hóa và giải tuần tự, cấu hình

    JAVA 25 SELF
    Cấp độ 46,Bài học 2
    Trong bài này, chúng ta tìm hiểu thư viện Google Gson: bắt đầu nhanh với các phương thức toJson/ fromJson, giải tuần tự các collection thông qua TypeToken<>, cấu hình linh hoạt với GsonBuilder ( setPrettyPrinting, serializeNulls, setDateFormat). Ta sẽ xem các annotation @SerializedName, @Expose, quản lý phiên bản @Since/ @Until, adapter tự viết qua TypeAdapter và registerTypeAdapter, sau đó so sánh với Jackson và điểm qua các lỗi thường gặp.
    Có sẵn
  • Làm việc với cấu trúc động: Map, List, JsonNode

    JAVA 25 SELF
    Cấp độ 46,Bài học 3
    Khi cấu trúc JSON chưa biết trước hoặc thường xuyên thay đổi, sẽ tiện hơn khi làm việc không phải với các lớp Java cứng nhắc mà với các container chung: Map, List và cây JSON. Trong bài giảng, chúng ta xem cách dùng ObjectMapper để đọc dữ liệu vào Map<String, Object> và List, cách duyệt cây an toàn thông qua JsonNode và các phương thức của nó get/ path/ asText(), cũng như lựa chọn thay thế bằng Gson với JsonElement, JsonObject, JsonArray. Kết thúc bằng thực hành trích xuất cấu hình và phân tích các lỗi thường gặp.
    Có sẵn
  • Xác thực JSON: JSON Schema, lỗi xác thực

    JAVA 25 SELF
    Cấp độ 46,Bài học 4
    Vì sao và cách kiểm tra dữ liệu đầu vào ở định dạng JSON trước khi giải tuần tự: phân tích hợp đồng dữ liệu bằng JSON Schema (các khóa type, properties, required, format), xác thực trong Java bằng thư viện everit-org/json-schema (tải schema vào Schema, gọi validate), xử lý đúng ValidationException và tạo thông báo lỗi dễ hiểu cho người dùng và API.
    Có sẵn
  • Cơ bản về XML và namespaces

    JAVA 25 SELF
    Cấp độ 47,Bài học 0
    Giới thiệu ngắn gọn và thực tiễn về XML: cấu trúc cơ bản (phần tử, thuộc tính, nút văn bản, chú thích, CDATA), bố cục của prolog, và quan trọng nhất — vì sao cần không gian tên (namespaces) và cách khai báo, áp dụng chúng thông qua các thuộc tính xmlns và xmlns:prefix. Chúng ta sẽ phân tích tiền tố, namespace mặc định ( xmlns= "URI"), trộn nhiều “từ điển” khác nhau trong cùng một tài liệu và các lỗi phân tích thường gặp.
    Có sẵn
  • Làm việc với DOM, SAX: phân tích cú pháp XML

    JAVA 25 SELF
    Cấp độ 47,Bài học 1
    Trong bài giảng này, chúng ta xem xét hai cách tiếp cận kinh điển để phân tích XML: dạng cây DOM và dạng sự kiện SAX. Bạn sẽ học cách đọc và thay đổi tài liệu thông qua cấu trúc cây ( Document, Element, NodeList) và xử lý các tệp lớn theo luồng với các bộ xử lý sự kiện ( SAXParser, DefaultHandler, startElement/ characters/ endElement). Chúng tôi sẽ chỉ ra ưu và nhược điểm của từng cách tiếp cận, đưa ra ví dụ thực tế và phân tích các lỗi thường gặp (bộ nhớ, việc chia nhỏ văn bản trong characters, cố gắng sửa đổi XML khi dùng SAX).
    Có sẵn
  • StAX (Streaming API for XML) — phân tích dạng luồng

    JAVA 25 SELF
    Cấp độ 47,Bài học 2
    Tìm hiểu phân tích XML dạng luồng với StAX: mô hình pull khác gì so với cách tiếp cận push của SAX, cách tạo trình phân tích qua XMLInputFactory và đọc sự kiện từ XMLStreamReader bằng vòng lặp với các lần gọi reader. next(), có những loại sự kiện nào ( START_ELEMENT, CHARACTERS, END_ELEMENT, END_DOCUMENT) và khi nào StAX nên được ưu tiên hơn DOM/ SAX. Thêm nữa: bảng so sánh các cách tiếp cận, sơ đồ Mermaid và phân tích các lỗi thường gặp (rò rỉ luồng/tài nguyên, mức lồng nhau của phần tử, ngoại lệ XMLStreamException, IOException).
    Có sẵn
  • Làm việc với XML bằng JAXB: cơ bản và annotation

    JAVA 25 SELF
    Cấp độ 47,Bài học 3
    Cách dùng JAXB (Jakarta XML Binding) để chuyển đổi các đối tượng Java thành XML và ngược lại: các annotation chính @XmlRootElement, @XmlElement, @XmlAttribute, @XmlType, @XmlTransient; các lớp cơ bản JAXBContext, Marshaller, Unmarshaller; cấu hình định dạng thông qua thuộc tính Marshaller.JAXB_FORMATTED_OUTPUT. Xem xét các phụ thuộc Maven cho Java 11+ ( jakarta.xml.bind-api, jaxb-runtime), làm việc với collection và đối tượng lồng nhau, kiểm soát thứ tự phần tử ( propOrder), loại trừ trường và các lỗi thường gặp.
    Có sẵn
  • Cấu hình tuần tự hóa XML: adapter tùy chỉnh

    JAVA 25 SELF
    Cấp độ 47,Bài học 4
    Cách hướng dẫn JAXB tuần tự hóa các kiểu “không chuẩn” và biểu diễn dữ liệu theo định dạng mong muốn: dùng chú thích @XmlJavaTypeAdapter và viết adapter riêng dựa trên XmlAdapter<ValueType, BoundType>. Sẽ phân tích định dạng hóa ngày ( LocalDate → "dd.MM.yyyy"), số ( BigDecimal), làm việc với collection, đưa giá trị vào thuộc tính bằng @XmlAttribute, phần tử bằng @XmlElement và loại trừ trường bằng @XmlTransient. Luyện tập tuần tự hóa/giải tuần tự qua Marshaller/ Unmarshaller và xem các lỗi thường gặp.
    Có sẵn
  • Biểu thức lambda: cú pháp và phạm vi

    JAVA 25 SELF
    Cấp độ 48,Bài học 0
    Ôn tập và đào sâu biểu thức lambda trong Java: cú pháp (tham số, mũi tên ->, thân), các dạng rút gọn không cần ngoặc và return, liên hệ với functional interface ( Comparator, Runnable, Consumer), các ví dụ hằng ngày với danh sách, luồng và Stream API. Phân tích phạm vi và quy tắc “effectively final”, sự khác nhau của this giữa lambda và lớp ẩn danh, cũng như các lỗi điển hình và cách tránh.
    Có sẵn
  • 1
  • ...
  • 20
  • 21
  • 22
  • 23
  • 24
  • ...
  • 30
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