Java

Java

[Java] Java Generic (2) - 타입 소거 및 제한 사항

지난 시간에는 제네릭의 종류와, 사용법에 대해서 알아봤습니다. 이번시간에는 제네릭에 대해 컴파일러가 수행하는 타입 소거와, 공식문서에서 제안하는 제네릭 사용시 제안 사항에 대해서 알아보겠습니다. ✅ Type Erasure(타입 소거) 타입 소거는 제네릭의 사용 방식이라기 보단 컴파일러가 제네릭을 대하는 방식이라고 생각할 수 있습니다. 제네릭은 컴파일시 엄격한 유형 검사를 제공합니다. 자바 컴파일러는 제네릭 구현을 위해 Type Erasure 기능을 적용합니다. 타입 소거에 대한 규칙은 다음과 같습니다. 제네릭 타입의 모든 타입 매개변수를 해당 경계 혹은 Object 타입으로 교체합니다. 제네릭 타입을 제거한 후 타입이 일치하지 않는다면 타입 캐스팅을 합니다. 확장된 제네릭 타입의 다형성을 보존하기 위해 ..

Java

[Java] Java Generic (1) - 기본적인 제네릭의 사용!

제네릭은 익숙하듯 하다가도, 시간이 지나면 내가 제대로 알고있나? 라는 생각이 들었던 부분이었습니다. 자바 뿐만 아니라 여러 언어에서도 타입에 대한 안정성을 보장하기 위해 제네릭을 차용해 사용하고 있습니다. 무백스 스터디를 진행하면서 공식문서와 레퍼런스를 통해 공부한 제네릭의 모든 내용을 정리해보려고 합니다!! ✅ 제네릭은 왜 사용할까? 컴파일 타임에 강력한 유형 검사를 할 수 있습니다. 자바 컴파일러는 제네릭을 사용한 코드가 type safety를 위반한다면 오류를 발생시킵니다. 형 변환을 제거할 수 있습니다. // 제네릭 사용 x List list = new ArrayList(); list.add("hello"); String s = (String) list.get(0); // 제네릭 사용 O Lis..

스터디/[온라인] WhiteShip - Live Study

[Live Study 2주차] 자바 데이터 타입, 변수 그리고 배열

1주차에서 JVM의 구조를 다뤄봤고 이번 주차는 자바의 데이터 타입, 변수, 배열에 관해 공부해보자 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타입 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 자바는 statically-typed 즉 정적으로 타입됩니다. 즉, 모든 변수를 사용하기 전에 선언을 해야합니다. primitive type은 기본형(원시형)이라고 하며 실제 데이터 값을 저장하는 타입이다. 실제 값(리터럴)에는 정수..

HiiWee
'Java' 태그의 글 목록