본문 바로가기

Java

제네릭 프로그래밍

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