변성이란? 변성(Variance)은 서로 다른 타입 간에 어떤 관계가 있는지를 나타내는 개념이다. 변성에는 공변, 반공변, 무공변(불공변)이 있는데 각 변성의 특징은 다음과 같다. Child가 Parent의 하위 타입일 때, 공변 Child[]는 Parent[]의 하위 타입이다. List는 List의 하위 타입이다. 반공변 Parent[]는 Child[]의 하위 타입이다. List는 List의 하위 타입이다. 무공변(불공변) List와 List는 서로 다른 타입이다. // 공변성 Number[] covariance = new Integer[5]; // 반공변성 Integer[] contravariance = (Integer[]) covariance; 마치 업캐스팅, 다운캐스팅의 개념과 유사하다고 볼 수 ..
제네릭이란?! 제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. ArrayList list = new ArrayList(); 주로 Collection Framwork를 선언할 때 꺽쇠 괄호() 를 함께 사용하는데 그 꺽쇠 괄호가 제네릭이다. 괄호 안에 타입을 쓰면 해당 컬렉션의 자료형 타입이 지정되는데 위 예제의 경우 list에는 Integer 타입만 저장할 수 있게 된다. 제네릭에 대해 공부하기 전에는 변수에 타입을 지정하듯이 컬렉션에 타입을 지정하는 것이라고 추측하였었는데 맞는 말이긴 하지만 변수 타입보다 더 깊은 내용이 있다. String[] str = new String[5]; ArrayList list = new ArrayList(5); 제네릭 타입 매개변수 정의 제네릭..
- Total
- Today
- Yesterday
- Nest
- 스프링
- Algorithm
- Queue
- 자바트리
- 스프링부트
- java
- 자바스크립트
- 리액트
- 자바dp
- 백준
- Spring
- Comparator
- 형변환
- JavaScript
- 정렬
- SQL
- 알고리즘
- 프로그래머스
- DP
- BFS
- dfs
- SQLD
- 자바bfs
- 해시맵
- CS
- JPA
- 타입스크립트
- 이분탐색
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |