SERIALIZABLE LÀ GÌ

  -  

Serialization vào Java

Tuần từ bỏ hoá trong java hay serialization vào java là một trong những qui định để ghi tâm lý của một đối tượng vào một byte stream.

Bạn đang xem: Serializable là gì

Quý khách hàng đã xem: Serializable là gì

Nó hầu hết được thực hiện trong các công nghệ Hibernate, RXiaoMI, JPA, EJB cùng JMS.

Hoạt đụng trở lại của serialization được điện thoại tư vấn là deserialization.

Ưu điểm của Serialization vào java

Nó hầu hết được áp dụng để truyền tâm trạng của đối tượng người tiêu dùng qua mạng (được biết đến nlỗi marshaling).

Xem thêm: As Regards Là Gì - Cách Dùng Trong Câu, Ví Dụ Kèm Kịch Nghĩa


*

Java Serialization với array hoặc collection

Trong ngôi trường thích hợp mảng (array) hoặc tập hòa hợp (collection), toàn bộ những đối tượng người tiêu dùng của array hoặc collection đề xuất được tuần từ hóa (Serializable). Nếu bất kỳ đối tượng không phải là serializable, thì quy trình serialization sẽ không còn thành công xuất sắc.

Externalizable trong java

Interface Externalizable cung ứng khả năng viết trạng thái của một đối tượng người tiêu dùng vào trong 1 byte stream ở format nén. Nó chưa hẳn là một trong hình ảnh ghi lại.

Xem thêm: Loop Mạng Là Gì - Khái Niệm Cơ Bản Trong Ccna Cần

Interface Externalizable cung cấp nhị pmùi hương thức:

public void writeExternal(Objectđầu ra out) throws IOExceptionpublic void readExternal(ObjectInput in) throws IOException

Từ khóa transient trong java

lấy ví dụ, knhị báo một lớp Student, gồm cha member dữ liệu là id, name với age. Lớp Student implements giao tiếp Serializable, toàn bộ các quý giá sẽ được tuần trường đoản cú nhưng nếu như bạn không thích tuần tự cho 1 cực hiếm, ví dụ: age thì chúng ta có thể knhị báo age với trường đoản cú khóa transient.

package com.tuongthan.vn.serialize;import java.io.Serializable;public class Student implements Serializable private static final long serialVersionUID = -266706354210367639L;private int id;private String name;private transient int age;public Student(int id, String name, int age) this.id = id;this.name = name;this.age = age;Overridepublic String toString() return "Student ";lấy một ví dụ áp dụng ObjectOutputStream nhằm ghi đối tượng student vào file

package com.tuongthan.vn.bytestream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;public class SerializationTransientExample public static void main(String args) throws Exception ObjectOutputStream oos = null;try oos = new ObjectOutputStream(new FileOutputStream("data/student.txt"));Student student = new Student(1, "tuongthan.vn", 28);oos.writeObject(student);oos.flush(); catch (IOException ex) ex.printStackTrace(); finally oos.close();System.out.println("success...");Ví dụ áp dụng ObjectInputStream nhằm hiểu đối tượng người sử dụng student trường đoản cú file

package com.tuongthan.vn.bytestream;import java.io.FileInputStream;import java.io.IOException;import java.io.ObjectInputStream;public class DeserializationTransientExample public static void main(String args) throws Exception ObjectInputStream ois = null;try ois = new ObjectInputStream(new FileInputStream("data/student.txt"));Student student = (Student) ois.readObject();System.out.println(student); catch (IOException ex) ex.printStackTrace(); finally ois.close();Thực thi cmùi hương tình SerializationTransientExample, tiếp nối thực thi lịch trình DeserializationTransientExample. Ta gồm công dụng nhỏng sau: