Home
Younghwani
Cancel

[Effective Java] Item34. int 상수 대신 열거 타입을 사용하라!

Item34. int 상수 대신 열거 타입을 사용하라! 열거 타입 일정 개수의 상수 값을 정의한 다음, 그 외의 값은 허용하지 않는 타입 정수 열거 패턴 public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final...

[모두의 네트워크] Lesson 0. 네트워크 입문

학부 시절 배운 네트워크 지식을 복습하고자 이 책을 구매했다. 책 표지의 소개로는 10일만에 배우는 네트워크라 되어 있지만 조금 여유롭게 읽을 것이다. Lesson 0. 네트워크 입문 웹 브라우저에서 웹 사이트를 볼 수 있는 것은 다양한 네트워크 기술 덕분이다. 웹 사이트에 문제가 생겨 접속이 되지 않더라도 원인을 파악하고 문제를 해결하...

[Effective Java] Item33. 타입 안전 이종 컨테이너를 고려하라!

Item33. 타입 안전 이종 컨테이너를 고려하라! 타입 안전 이종 컨테이터 예를 들어 데이터베이스를 생각해보자. 데이터베이스의 행은 임의 개수의 열을 가질 것이다. 모두 열을 타입 안전하게 이용할 수 있다면 best일 것이다. 그 방법으로 컨테이너 대신 키를 매개변수화 한 후,...

[Effective Java] Item32. 제네릭과 가변인수를 함께 쓸 때는 신중하라!

Item32. 제네릭과 가변인수를 함께 쓸 때는 신중하라! 가변인수 메서드와 제네릭은 잘 어우러지지 않는다. 가변 인수의 문제점 가변인수는 메서드에 넘기는 인수의 개수를 클라이언트가 조절할 수 있다. 구현 방식에 허점이 있다. 메서드 호출 시 가변인수를 담기 위한 배열 생성 이 배...

[Effective Java] Item31. 한정적 와일드카드를 사용해 API 유연성을 높이라!

Item31. 한정적 와일드카드를 사용해 API 유연성을 높이라! 불공변 매개변수화 타입은 불공변이다. 즉, 서로 다른 타입 Type1, Type2가 있을 때, List, List는 서로 상하 관계가 없다. 예를 들어서 List가 List의 하위 타입이 아니라고 말하는 것이다. ...

[Effective Java] Item30. 이왕이면 제네릭 메서드로 만들라!

Item30. 이왕이면 제네릭 메서드로 만들라! 클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다. 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭 대표적으로 Collections의 ‘알고리즘’ 메서드(binarySearch, sort 등)는 모두 제네릭이다. 잘못된 사용 로 타...

[Effective Java] Item29. 이왕이면 제네릭 타입으로 만들라!

Item29. 이왕이면 제네릭 타입으로 만들라! 제네릭 타입을 새로 만드는 것은 조금 어려울 수 있지만, 알아두면 충분한 값어치를 할 것이다. Object 기반 스택 제네릭이 절실한 강력 후보다. public class Stack { private Object[] elements; private int size = ...