× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Tuần tự hóa trong Java [Giải thích các ưu điểm và ví dụ]

18/09/2023 01:28

Bài viết tuần tự hóa trong Java này sẽ làm sáng tỏ cơ chế tuần tự hóa và lợi ích của nó. Nó cũng sẽ khám phá cách tuần tự hóa một đối tượng và cách tuần tự hóa bằng cách sử dụng các khái niệm Java khác nhau cùng với các ví dụ.

Bài viết tuần tự hóa trong Java này sẽ làm sáng tỏ cơ chế tuần tự hóa và lợi ích của nó. Nó cũng sẽ khám phá cách tuần tự hóa một đối tượng và cách tuần tự hóa bằng cách sử dụng các khái niệm Java khác nhau cùng với các ví dụ.

Tuần tự hóa trong Java là gì?

Tuần tự hóa trong Java là khái niệm biểu diễn trạng thái của một đối tượng dưới dạng luồng byte. Luồng byte có tất cả thông tin về đối tượng. Thường được sử dụng trong Hibernate, JMS, JPA và EJB, tuần tự hóa trong Java giúp vận chuyển mã từ JVM này sang JVM khác và sau đó hủy tuần tự hóa mã đó ở đó.

Deserialization là quá trình tuần tự hóa hoàn toàn ngược lại trong đó luồng kiểu dữ liệu byte được chuyển đổi trở lại thành một đối tượng trong bộ nhớ. Phần hay nhất về các cơ chế này là cả hai đều độc lập với JVM, nghĩa là bạn tuần tự hóa trên một JVM và hủy tuần tự hóa trên một JVM khác.

Ưu điểm của việc tuần tự hóa là gì?

Việc tuần tự hóa mang lại rất nhiều lợi ích. Một số ưu điểm chính của nó là:

  • Được sử dụng để sắp xếp (di chuyển trạng thái của một đối tượng trên mạng)
  • Để duy trì hoặc lưu trạng thái của một đối tượng
  • JVM độc lập
  • Dễ hiểu và tùy chỉnh

Những điểm cần lưu ý về việc tuần tự hóa trong Java?

Để tuần tự hóa một đối tượng, cần phải đáp ứng một số điều kiện. Một số điểm chính khác cần được làm nổi bật trước khi bạn tiếp tục viết bài. Đây là những điều kiện và điểm cần nhớ khi sử dụng tuần tự hóa trong Java.

  • Tuần tự hóa là giao diện đánh dấu không có phương thức hoặc thành viên dữ liệu
  • Bạn chỉ có thể tuần tự hóa một đối tượng bằng cách triển khai giao diện có thể tuần tự hóa
  • Tất cả các trường của một lớp phải có khả năng tuần tự hóa; mặt khác, hãy sử dụng từ khóa tạm thời (sẽ nói thêm về nó sau)
  • Lớp con không phải triển khai giao diện Serializable, nếu lớp cha thực hiện
  • Quá trình tuần tự hóa chỉ lưu các thành viên dữ liệu không tĩnh, chứ không lưu các thành viên dữ liệu tĩnh hoặc tạm thời
  • Theo mặc định, Chuỗi và tất cả các lớp trình bao bọc đều triển khai giao diện Serializable

 

 

Làm cách nào để tuần tự hóa một đối tượng?

Vì bây giờ bạn đã biết tuần tự hóa trong Java là gì và tất cả các điểm liên quan, hãy tìm hiểu sâu hơn về cách tuần tự hóa một đối tượng. Bạn phải sử dụng phương thức writeObject() của lớp ObjectOutputStream để tuần tự hóa và phương thức readObject() của lớp inputObjectStream cho mục đích giải tuần tự hóa.

Cú pháp của phương thức writeObject():

chung kết void writeObject(Object o) ném ngoại lệ IO

Cú pháp của phương thức readObject():

đối tượng cuối cùng công khai readObject() ném IOException, ClassNotFoundException

Hãy xem một ví dụ để hiểu cách tuần tự hóa và hủy tuần tự hóa một đối tượng trong Java.

Ví dụ về tuần tự hóa trong Java

Mã chương trình sau đây sẽ tuần tự hóa một đối tượng sinh viên và lưu nó vào một tệp có tên sinh viên.ser.

Result: