Effective Java 3/E Item 37 ordinal 인덱싱 대신 EnumMap을 사용하라
※ Effective Java 3/E열거한 값들이 집합으로 사용될 경우, 예전에는 각 상수에 서로 다른 2의 거듭제곱 값을 할당한 정수 열거 패턴을 사용해왔다.text.applyStyles(STYLE_BOLD | STYLE_ITALIC);위와 같은 식으로 비트별 OR
※ Effective Java 3/E 리플렉션 자바에는 리플렉션이라는 기능을 이용해 알 지 못하는 클래스를 생성하거나 메서드를 호출할 수 있다. 하지만 유용해보이는 리플렉션에 많은 단점이 존재한다. 리플렉션의 단점 컴파일 타임 타입 검사가 주는 이점을 하나도 누

Compilation자바 코드를 컴파일러(javac)를 사용하여 컴파일하면 바이트 코드(class 파일)로 컴파일된다.그리고 JVM이 해당 자바 바이트코드를 인터프리팅하며 애플리케이션이 실행된다.그러므로 자바 코드를 컴파일하여 바이트 코드로 만들면 JVM이 실행될 수
※ Effective Java 3/E박싱된 기본 타입은 객체로 저장되기 때문에 식별성을 갖는다.대부분의 박싱된 기본 타입은 캐시를 갖고 있다. (-127 ~ 128)기본 타입은 초기화를 하지 않아도 유효한 값으로 초기화가 되지만 박싱된 기본 타입은 그렇지 않다.박싱된

JDK 11 버전의 ArrayList입니다. ArrayList ArrayList 필드 DEFAULT_CAPACITY 상수이며 용량의 기본값이며 10으로 초기화된다. EMPTY_ELEMENTDATA 상수이며 빈 원소들의 배열이다. DEFAULTCAPACIT

Enhanced For 문에서 ArrayList의 remove 메서드를 사용하게 되면 아래와 같은 예외를 마주칠 수 있다.exceptionEnhanced For 문에서 remove 메서드를 사용하면 왜 예외가 발생하는지 알아보자.Enhanced For 문을 사용하기 위
※ Effective Java 3/Efloat와 double 타입은 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이기 때문에 정확한 값을 계산할 수 없다.부동소수점부동소수점을 표현하는 방식도 정하는 방식에 따라 다를 수 있지만 일반적으로 사용하고 있는

※ Effective Java 3/E아래는 for 문으로 컬렉션을 순회하는 코드다.아래는 for 문으로 배열을 순회하는 코드다.위의 for 문들은 while 문을 사용하는 것보다는 안전하지만 가장 좋은 방법은 아니다.반복자와 인덱스가 사용되어 코드를 지저분하게 하며 추
OAuth 2.0 다른 서비스의 OAuth를 이용하는 개발자의 시선에서 글을 작성하였습니다. 기존의 문제점 before-oauth 우리가 A라는 애플리케이션을 만들었다고 가정하자. 우리 애플리케이션은 사용자의 구글 캘린더에 있는 정보들을 이용하는 서비스다. 그렇
※ Effective Java 3/E지역변수의 범위를 최소화하면 코드 가독성, 유지보수성이 높아지고 오류 가능성이 낮아진다.다음은 지역변수의 범위를 줄이는 3가지 방법이다.지역변수는 사용할 시점에 선언하는 것이 가장 좋다.만약 미리 선언하게 되면 코드가 어수선해져 가독

※ Effective Java 3/E생성자에 매개변수가 많을 경우 사용할 수 있는 3가지 패턴이 있다.생성자에 매개변수가 많이 있을 경우에 점층적 생성자 패턴(Telescoping Constructor Pattern)을 사용하여 다음과 같이 구현할 수 있다.위와 같이

스키마란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다.데이터 모델은 다음과 같은 3단계로 이루어진다.외부 모델: 사용자가 보는 데이터베이스 구조개념 모델: DB 내의 전체 테이블 집합 (전체 DB 구조)내부 모델: 디스크 저장 구조의 세부 사항과 DB