본문 바로가기

Language/Java2

Constructor chaining(생성자 연쇄) 클래스를 생성했을 때 생성자를 따로 설정하지 않아도 기본적으로 default 생성자가 super();를 호출 super();를 호출함으로서 부모 클래스의 생성자를 먼저 실행 - 그 이유는 객체가 제 모양을 갖추려면 그 객체의 부모클래스의 일부도 제 모양을 갖춰야 하기 때문 - 따라서 상속 트리에 있는 모든 클래스의 인스턴스 변수가 선언되고 초기화되어야 함 a~z까지의 클래스가 있을 때, a-b, b-c, ..., y-z 로 상속을 받는다면 z클래스의 default 생성자의 super();는 a-y까지의 생성자를 우선 실행 - 최상위 클래스인 Object 클래스에 다다르면 종료 따라서 new z(); 하면 a-y까지 모두 생성한 후 z 클래스 실행 + abstract 클래스도 부모클래스 구현한 하위 클래스.. 2020. 6. 21.
Serializable, Externalizable Serializable ▶ 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술 JVM의 메모리에 상주(heap 또는 stack)되어 있는 객체 데이터를 byte 형태로 변환 implements 해주면 자동으로 object 안에 있는 모든 변수들이 serializable하게 됨 - primitive type만 해당 해당 클래스에서 다른 object를 serialize하고 싶으면 해당 object도 serializable해야 정상 동작 serialVersionUID : 분산처리 환경에서 unique한 클래스라는 것을 증명하기 위한 신분증 - 직렬화 복원 중 직렬화 객체의 송신측과 수신측이 사용하는 객체가 직렬화에 호환성.. 2020. 4. 7.