MNT_Dev
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Development (140)
      • Languege (36)
        • Java & Spring (24)
        • C# & ASP.NET (5)
        • JavaScript (2)
        • Kotlin (5)
      • DB (0)
        • Oracle (0)
      • Study (72)
        • 네트워크 (3)
        • 이펙티브 자바 (41)
        • 우아한 테크 코스 (7)
        • Next Step (3)
        • Certificate (5)
        • Side Proejct (6)
      • Error (17)
        • 개발환경 (9)
        • 트러블슈팅 (6)
      • Algorithm (12)
      • 개발환경 (1)
      • 회고 (2)
  • 홈
  • 태그
  • 방명록
Study/이펙티브 자바

[Effective Java 3E] 이왕이면 제네릭 타입으로 만들라

💥 개요 JDK가 제공하는 제네릭 타입과 메서드를 사용하는 일은 일반적으로 쉬운 편이지만, 제네릭 타입을 새로 만드는 일은 조금 더 어렵다. 그래도 배워두면 값어치는 충분히 한다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public Object pop() { if (size =..

2023. 11. 28. 23:08
Study/이펙티브 자바

[Effective Java 3E] 배열보다는 리스트를 사용하라

💥 개요 배열과 제네릭 타입에는 중요한 차이가 두가지 있다. 배열의 경우 Sub가 Super의 하위 타입이라면 배열 Sub[]는 배열 Superp[]의 하위 타입이 된다.(공변) 하지만 제네릭은 불공변이다. List가 List의 하위 타입이 아니다.(불공변) 그럼 제네릭이 더 안 좋은걸까? 배열의 문제점 Object[] objectArray = new Long[1]; objectArray[0] = "타입이 달라 넣을 수 없다."; // ArrayStoreException을 던진다. 위의 코드는 런타임에 실패한다. 하지만 다음 코드는 컴파일 시점에 실패한다. List ol = new ArrayList(); // 호환되지 않는 타입이다. ol.add("타입이 달라 넣을 수 없다."); 어느쪽이든 문자열을 넣..

2023. 11. 10. 22:01
Study/이펙티브 자바

[Effective Java 3E] 로 타입은 사용하지 말라

💥 개요 한글 용어 영문 용어 예시 매개변수화 타입 parameterized type List 실제 타입 매개변수 actual type parameter String 제네릭 타입 generic type List 정규 타입 매개변수 formal type parameter E 비한정적 와일드카드 타입 unbounded wildcard typ List 로 타입 raw type List 한정적 타입 매개변수 bounded type parameter 재귀적 타입 한정 recursive type bound 한정적 와일드카드 타입 bounded wildcard type List에는 (null 외에는) 어떤 원소도 넣을 수 없다. 다른 원소를 넣으려 하면 컴파일 시점에 오류가 발생한다. @Test void 와일드카드타..

2023. 11. 1. 20:57
  • «
  • 1
  • »

공지사항

  • GitHub & WorkSpace

전체 카테고리

  • Development 140
    • Languege 36
      • Java & Spring 24
      • C# & ASP.NET 5
      • JavaScript 2
      • Kotlin 5
    • DB 0
      • Oracle 0
    • Study 72
      • 네트워크 3
      • 이펙티브 자바 41
      • 우아한 테크 코스 7
      • Next Step 3
      • Certificate 5
      • Side Proejct 6
    • Error 17
      • 개발환경 9
      • 트러블슈팅 6
    • Algorithm 12
    • 개발환경 1
    • 회고 2
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #객체지향
  • #AWS
  • #GCP
  • #effective java
  • #클라우드
  • #제네릭
  • #TDD
  • #saa
  • #spring boot
  • #도메인 주도 개발
  • #구글 클라우드
  • #Java
  • #백준
  • #이펙티브 자바
  • #김영한
  • #kotlin
  • #김영한 스프링
  • #BOJ
  • #백엔드
  • #자바
  • #스프링부트
  • #후기
  • #스프링
  • #spring
  • #개발자
  • #이펙티브자바
  • #코틀린
  • #우테코
  • #파이썬
  • #트러블슈팅
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © MNT_Dev All rights reserved. TistoryWhaleSkin3.4

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.