Q1. 제네릭 프로그래밍이란 무엇인가?
제네릭 프로그래밍을 사용함으로써 얻는 이점은 무엇인가?
- 제네릭 프로그래밍이란
Q2. 제네릭 프로그램이 참조 자료형으로 변환될 때, 검증을 무엇이 하는가?
그로 인한 이점이 무엇인가?
- 컴파일러가 합니다. 그로 인한 이점은 컴파일 타임에 오류를 검증해낼 수 있다는 것입니다.
Q3. 제네릭 프로그래밍이 아닌 Object 클래스를 사용했을 때의 단점은 무엇인가?
- 데이터를 꺼내올 때 추가적으로 직접 형변환을 해줘야 한다는 것입니다.
Q4. 왜 static 변수의 자료형이나 static 메서드 내부 변수의 자료형으로 제네릭을 사용할 수 없는가?
Q5. 제네릭이 있기 전에는 어떤 일이 발생했는가?
Q6. 왜 로 타입은 사용하지 말아야 하는가?
Q7. 애초에 왜 로 타입을 만들었는가?
Q8. 로타입을 써야 하는 경우는 어떤 경우인가?
Q9. 제네릭을 사용할 때 제거해야 하는 경고는 무엇인가?
Q10. Q9의 경고를 제거해야 하는 이유는 무엇인가?
Q11. 경고를 제거할 수는 없지만 타입 안전하다고 확신할 수 있다면
어떻게 해야 하는가?
-
Q12. Q11에 사용한 애너테이션은 어떤 범위에 적용해야 하는가?
-
Q13. Q11의 애너테이션을 사용할 때, 주의해야 하는 점은 무엇인가?
-
Q14. Q9의 경고를 무시할 때, 발생할 수 있는 문제점은 무엇인가?
-
Q15. 배열보다는 리스트를 사용해야 하는 이유는 무엇인가?
-
Q16. 자바는 여러 타입들이 존재하기 때문에 '무엇'을 하면서 많은 예외가 발생할 수 있는가?
-
Q17. 제네릭은 '무엇'에서 발생할 수 있는 문제점을 '사전'에 없애기 위해서 만들어졌는가?
-
Q18. Q17에서 '사전'의 의미는 무엇인가?
-
Q19. 제네릭의 꺾쇠 안에는 되도록이면 '무엇'과 동일하게 지정하는 것이 좋은가?
-
Q20. 제네릭 타입을 선언할 때, 자바에서 정의한 기본 규칙은 어떤 것이 있는가?
-
Q21. 제네릭을 사용할 때 <> 안에 들어가는 타입은 기본적으로 '무엇'이라도 상관 없는가?
-
Q22. 제네릭에 ?가 있는 것은 무엇인가? 그리고 그것을 무엇이라고 부르는가?
-
Q23. WildCard로 사용하는 타입을 제한하기 위해서는 어떻게 해야 하는가?
그리고 이것을 무엇이라고 부르는가?
-
Q24. '무엇' 또한 제네릭하게 선언할 수 있는가?
-
Q25. 제네릭이 자바에 추가된 이유는 무엇인가?
-
Q26. 제네릭 타입의 이름은 T나 E처럼 하나의 캐릭터로 선언되어야 하는가?
-
Q27. 메소드에서 제네릭 타입을 명시적으로 지정하기 애매할 경우에는 <> 안에 어떤 기호를
넣어 주어야 하는가?
-
Q28. 제네릭 선언시 wildcard라는 것을 선언했을 때 어떤 제약 사항이 있는가?
-
Q29. 메소드를 제네릭하게 선언하려면 리턴 타입 앞에 어떤 것을 추가해주면 되는가?
-
참고
- Q1~Q4 Do it 자바 프로그래밍 입문5/13
- Q5~Q15 이펙티브 자바 5/16
- Q16~Q29 자바의 신 6/9
'Java' 카테고리의 다른 글
자바 일반 (0) | 2022.05.20 |
---|---|
클래스와 인터페이스 (0) | 2022.05.20 |
Wrapper 클래스 (0) | 2022.05.20 |
String 클래스 (0) | 2022.05.20 |
equals()와 hashcode() (0) | 2022.05.20 |