Abstract를 왜 사용하는가?
- 구조적 : 다른 클래스들이 Pclass의 [자손으로 관리]가 되어질 필요가 있는 경우
- 기능적 : 다른 클래스들이 Pclass에서 제공되는
normalMethod() 공통 기능을 사용하고,
일부 메서드
abstract
- 인스턴스를 못 만드는 추상
- ~이고, 이걸 위해 쓴다. 라는 형식으로 쓸 수 있어야 한다.
abstract 클래스는 왜 사용하나
- 공통 기능을 제공하며, 각자가 구현해야할 메서드가 필요할 때 사용합니다.
인터페이스를 쓰는 이유
- 공통의 메서드를 모아놓고, 부모가 되려는 목적으로 사용합니다.
- 관계없는 클래스를 연결해서 구조적으로 관리가 용이하고, 유지보수가 편리하며,
확장 용어
컬렉션 프레임워크
컬렉션 프레임워크란 무엇인가요?
- 여러 데이터들을 편리하게 다룰 수 있는
자료구조의 모음을 제공하는 프레임워크입니다.
직렬화는? ( Serialization )
- 바이트로 만드는 것입니다. ( 객체를 바이트로! )
역직렬화는? ( De-Serialization )
Java API Docs 보기
- 이제 블로그를 보기 보다는, API Docs를 본다.
- Docs는 원서를 보자!
컬렉션 프레임워크는 제네릭과 함께 사용하던 것이 아니었다.
- 컬렉션 프레임워크는 원래, Object 타입을 다 담을 수 있기에
모든 타입을 담을 수 있었다.
Map<K,V>
- List, Set, Map
- Map : { key1=val1, key2=val2, key3=val3 } 와 같이 표시한다.
- REST 서비스 JSON(JavaScript Object Notation)
- Map과 JSON이 비슷하지만, 중간에
**:** ← 요 부분때문에 좀 그렇다.
- Spring에는 JSON Parser
- Python, Django / Flask는 JSON을 받으면 내부적으로 알아서 dict로 바꿔줌.
큰 놈에서 작은 놈으로 올 때 ⇒ 다운캐스팅
업캐스팅 ( 자식 → 부모, ,
다운캐스팅 (부모→자식, 강제 형변환 해줘야함 )
자식 → 부모에게 간다 ( = 빈 손으로 감 ) [ 낮은 애가 높은 애를 찾아간다 ]
부모 → 자식에게 간다. ( = 다운 캐스팅 하고 감 )
부모가 나에게 찾아올 때는 뭔가를 바리바리 싸들고 온다..
나에게 잘 맞는 것으로 들고 온다.
내 타입으로 들고 온다..
제네릭
- 클래스, 메서드 등에서 사용할 데이터 타입을 컴파일 시
미리 지정하는 방법
- 컴파일 시 미리 사전 타입 체크
- 왜 쓰는가?
- 타입의 안정성
- 코드의 가독성이 좋아진다.
- 런타임에 캐스팅 작업을 할 필요가 없어, 오버헤드가 줄어든다. ( 성능 향상을 기대할 수 있다. )
특정 인스턴스의 타입이 궁금할 때?
**instanceof** 를 통해 클래스와 비교 가능
**getClass()** 메소드를 호출하여 해당 인스턴스의 클래스 객체를 통해 이름을 알 수 있다.
면접 질문 답변 템플릿
- 정의를 이야기하고, 왜 쓰는지 이야기한다.
- 배열은 같은 타입의 데이터를 가리키는 변수입니다.
같은 타입의 변수를 여러개 다루는 것이 불편하여,
이론
실습
[ 컬렉션 프레임워크와 DB의 Entity의 진화 ] ★★★