슈퍼코딩/주특기(JAVA)

2024.05.08(수) 슈퍼코딩 신입연수원 6주차 Day 3 후기 - Wrapper, Generic

곰돌이볼 2024. 5. 8. 14:58
  • 강의
    • 44강(여러 기분 클래스) ~ 45강(자바 제너릭과 Wrapper)

Wrapper


  • 기본 자료형을 위한 클래스
  • 박싱과 언박싱
    • 박싱(Boxing) : 기본 타입 → 래퍼 클래스
    • 언박싱(Unboxing) : 래퍼 클래스 → 기본 클래스
  • 정리
기본 타입 래퍼 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
void Void
  • 요즘은 오토박싱, 오토언박싱이 이루어짐
    • 박싱을 사용하지 않은 추세 ex) Integer integer = 20;
  • 기본자료형과 wrapper 클래스들끼리 혼합해서 사용 가능
  • new 생성자를 이용해서 선언한 경우, 같은 같이어도 == 연산자에서는 false가 나옴
    • equals는 true
  • 속도 : 기본타입 > wrapper 클래스
    • 요즘은 거의 차이가 없음(미세한 정도의 차이)
  • 존재하는 이유
    • 객체지향적 프로그래밍 실형(자료구조 일관성 유지)
    • Java 라이브러리 사용 지원
    • Generic 프로그래밍 지원

Generic


  • 같은 코드를 여러 참조형을 사용할 수 있도록 하여 코드 재사용성을 올리는 프로그래밍 기법
  • 선언 : class 클래스명<T> { 내부에서는 T 사용 }
    • 꼭 T가 아니어도 됨. X, I 등등 원하는 것을 넣으면 됨
    • 두 개 이상 사용 가능
    • generic의 자료타입 유형을 제한하기 위해서 extends 사용
    • ex) <T extends Number> : T는 숫자만 선언 가능
  • 사용 : 클래스명<자료형> 객체명 = new 생성자()
    • 자료형은 참조형으로, 기본자료형은 사용 X → wrapper 클래스 O
  • static은 generic 사용 X
    • static : 클래스 로드 시점
    • generice : 인스턴스 생성 시점