자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(Byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 말한다.
시스템적으로 말하면 JVM의 메모리에 상주 (힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 말한다.
우선 데이터를 담는 Class에서 인터페이스를 생성해서 직렬화를 설정해주자
public class Contact implements Serializable {
private String name;
private String phone;
private int id;
}
Intent를 사용하는 부분에서 데이터를 보낼때 해당 데이터를 담는다. (ArryaList도 가능함)
//한꺼번에 보내는 것이 좋다.
intent.putExtra("contact", contact);//원래는 보낼수 없음
//인터페이스를 상속받는다면 보낼 수 있다.
startActivity(intent);
데이터를 받는 곳에서 Serializable를 통해 데이터를 받아오자.
//시리얼라이즈를 받아오면 형변환을 해서 사용해야한다.
Contact contact = (Contact) getIntent().getSerializableExtra("contact");
ArrayList<Contact> contactArrayList = (ArrayList<Contact>) getIntent().getSerializableExtra("contactArrayList");
정말 잘 읽었습니다, 고맙습니다!