9월 14일 개인공부

안효빈·2022년 9월 14일
0

개인 공부

목록 보기
10/36

직렬화에 대해

직렬화는 프로그램을 실행 종료할때마다 객체를 계속해서 새로 생성하기 때문에 그 과정을 생략하기위해 객체의 정보를 바이트로 바꾸어 객체를 다시 만들지 않고도 해당 바이트 스트림을 역직렬화를 통해 불러올수 있는것을 의미한다.

왜 바이트로 하냐?

https://okky.kr/articles/224715

Jason Wang 이라는 분의 설명을 참고함

자바에서 데이터를 두가지 형식으로 분류하면

float int char등 단순한 값 형태의 데이터와

클래스를 이용한 참조형의 형태 두가지로 나눌수 있는데

디바이스나 프로그램으로 전송할수있는건 값 형태의 데이터이고

아닌 경우를 전송, 저장하기 위해 바이트형태로 직렬화해서 보낸다는것.

정리하면 직렬화는 보통 파일 저장이나, 패킷 전송시에 '파싱할 수 있는 데이터를 만들기 위해' 사용됩니다.

라고함


직렬화 할떄 쓰이는 Serializable이 뭘까

쟤는 implements를 사용하는데 이건 extends와 비슷하지만

보통의 클래스가 아닌 인터페이스를 이어받는다는 의미로 쓰임

안에 들어가보면 아무런 메소드도 없고

실제로 저 코드가 저 안에있는 어떤 메소드도 오버라이딩 하지 않았는데도 돌아감

최상위 클래스? 최상위라서 그런것같음.


입출력 스트림과 보조 스트림

입출력 스트림은 FileOut풋스트림 뭐 이런거고

보조스트림은 버퍼드, 오브젝트아웃풋어쩌고처럼

입출력으로는 한계가 보이는 성능, 기능들을 도와주기위해 존재하는 스트림임


추상클래스랑 인터페이스는 뭔 차이냐

  • 그나마 추상은 뭐라도 적어놓고 그걸 상속받아 확장시키는것이고 인터페이스는 진짜로 빈 껍데기만 있음.
profile
다들 화이팅

0개의 댓글