CODEDRAGON ㆍDevelopment/Java
Serialization(객체의 직렬화)
· 모든 데이터의 흐름은 바이트 전송으로 이루어 집니다. 이것은 객체도 마찬가지이며, 이때 사용되는 개념이 Serialization입니다.
· 객체의 직렬화란 객체를 스트림(stream)으로 파일에 저장하는 방법입니다.
· 객체의 내용을 바이트 단위로 변환하여 파일 또는 네트워크를 통해서 스트림(송수신)이 가능하게 하는 것을 의미합니다.
· 객체를 직렬화 하기위해서는 Serializable 인터페이스와 Externalizable 인터페이스를 구현해야 합니다.
· 직렬화의 대상이 되는 인스턴스의 클래스는 java.io.Serializable 인터페이스를 구현해야 합니다.
· Serializable 인터페이스는 ‘직렬화의 대상'임을 표시하는 인터페이스일 뿐, 실제 구현해야 할 메소드가 존재하지 않는 인터페이스입니다.
Serializable vs Deserializable(직렬화와 역직렬화)
직렬화 (serialization) |
· 인스턴스가 파일에 저장되는 과정(저장을 위해 거치는 과정) · 객체를 데이터 스트림으로 만드는 것 · 객체에 저장된 데이터를 스트림에 쓰기위해 연속적인(serial) 데이터로 변환하는 것 |
역직렬화 (deserialization) |
· 파일(스트림)에 저장된 인스턴스를 복원하는 과정 · 스트림으로부터 데이터를 읽어서 객체를 만드는 것 |
객체를 저장한다는 것(Serialization)은 객체의 모든 인스턴스변수의 값을 저장하는 것입니다. 그리고 저장했던 객체를 다시 생성하려면(Deserialization) 객체를 생성한 후에 저장했던 값을 읽어서 생성한 객체의 인스턴스 변수에 저장하는 것입니다.
'Development > Java' 카테고리의 다른 글
Error-Array constants can only be used in initializers (0) | 2017.02.15 |
---|---|
Error-Exception in thread "main" java.lang.StackOverflowError (0) | 2017.02.09 |
static - static 변수(class 변수), static 변수의 초기화 시점, static 변수의 접근방법 (0) | 2017.01.26 |
WARNING-The assignment to variable money has no effect (0) | 2017.01.24 |
멀티 스레드(다중 스레드) (0) | 2016.12.26 |