//transient 는 직렬화의 예외
class TransientTest implements Serializable{
int a = 1;
String b = "2";
private transient String tt ="이건 제외가 된다.";
}
1. serialize 란?
직렬화는 기술이다.
이 기술은 데이터를 변환하는 기술이다.
JVM의 시스템 내부에서 사용되는 Object 혹은 Data는 자바 외에서는 쓸 수 없다.
이 때 자바 외부에서 이러한 데이터를 사용할 수 있게끔 byte 형태로 데이터를 변환하는 기술이
직렬화(serialize) 이다.
즉, jvm 메모리에 있는 개게 데이터를 byte 형태로 변환하는 기술이다.
2. Deserialize
역직렬화이다.
Object to Byte 인 기술이 직렬화라면
Byte to Object 인 기술이 역직렬화이다.
3. transient
어떤 객체를 바꿀 때 직렬화에서 제외를 하고 싶은 필드에 붙이는 키워드이다.
class TransientTest implements serializable{
private int a =1;
private String b ="2";
private transient c ="얜 직렬화가 안되요";
}
이렇게 하면 json의 형태는
{"a":"1",'b":"2"}
이런 형식이 될 것이다.
transient 키워드가 붙은 c 는 json으로 변하지 않는다.
출처 및 참고
'언어 > java' 카테고리의 다른 글
... -여러개의 파라미터를 받고 싶을 때 (0) | 2021.11.15 |
---|---|
URL 객체 (0) | 2021.10.11 |
자바 스트림 collector (0) | 2021.01.11 |
기본 함수형 인터페이스 (0) | 2021.01.08 |
람다식 (0) | 2021.01.08 |