만쥬의 개발일기
article thumbnail
[이펙티브 자바] - 아이템 60 ~ 63
📖BOOK/📙Effective Java 2024. 6. 4. 17:28

아이템 60 - 정확한 답이 필요하다면 float와 double은 피하라float와 double 타입은 과학 / 공학 계산용으로 설계되었다.해당 자료형들은 부동소수 타입으로, 정확한 결과를 위해서는 사용을 지양해야 한다.실수를 표현하는 방법 두가지실수를 표현하는 방법은 다음 두가지이다.고정 소수점 방식: 소수점에 이용하는 범위를 고정해 수의 표현 범위가 크지 않다.부동 소수점 방식: 소수점을 이용하지 않아 그만큼 다른 수를 표현할 수 있도록 더 넓은 표현 범위를 가진다.부동 소수점 방식을 사용하는 자료형인 double, float등 에서는 실수 연산에서는 소수점 단위 값을 정확히 표현하는 것이 아닌 근사값으로 처리해 오차가 발생한다.정확한 계산을 위해서는따라서 정확한 계산을 위해서는 BigDecimal ..

article thumbnail
[이펙티브 자바] - 아이템 29 ~ 31
📖BOOK/📙Effective Java 2024. 2. 28. 10:21

아이템 29 - 이왕이면 제네릭 타입으로 만들라 왜 굳이 제네릭 타입을 사용해야할까? 예시와 함께 알아보자. 오브젝트를 기반으로 제작된 Stack 클래스 예시. 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 == 0 throw n..

article thumbnail
[이펙티브 자바] - 4장 아이템 18 ~ 20
📖BOOK/📙Effective Java 2024. 2. 5. 21:45

아이템 18 : 상속보다는 컴포지션을 사용하라 상속 vs 컴포지션 여기서의 상속은 클래스가 다른 클래스를 확장하는 구현 상속을 의미. 인터페이스가 다른 인터페이스를 확장하는 인터페이스 상속과는 무관하다. 상속은 한 클래스를 다른 클래스에서 derive 즉 파생 시킨다. ex) extend 받은 확장된 클래스가 파생됨 컴포지션은 parts 즉 클래스를 구성하는 부분의 합으로 정의한다 ex) 클래스 필드 내에 private or public 필드로 클래스의 인스턴스를 참조하게 하고해당 클래스를 구성하는 부분의 합으로 정의됨.클래스의 구성요소로 쓰인다는 뜻에서 composition이라고 한다. 상속이 위험한 이유 : 상위 클래스 또는 슈퍼 클래스의 릴리스마다 내부 구현이 달라질 수 있고, 이에 따라 하위 클래..

article thumbnail
[이펙티브 자바] - 1장 ~ 2장
📖BOOK/📙Effective Java 2024. 1. 2. 22:46

1장 : 들어가기 이 책은 총 90개의 아이템과, 아이템들을 주제별로 묶은 11개의 장으로 구성된다. 또한 많은 디자인 패턴과, 피해야할 안티패턴들을 소개한다. 이 책의 용어들은 대부분 자바8용 언어 명세를 따른다. 자바가 지원하는 타입은 다음 네가지이다. 인터페이스 클래스 배열 (array) 기본타입 (primitive) 위 네가지 타입 중 처음 세가지는 참조 타입(reference type)이다. 즉, 클래스의 인스턴스와 배열은 객체이지만, 기본 타입은 그렇지 않다. 클래스의 멤버로는 필드, 메서드, 멤버 클래스, 멤버 인터페이스 등이 있따. 메서드 시그니처는 메서드 이름과 파라미터의 타입들로 이뤄진다. 또한 이 책에서는 인터페이스 상속 ➡️ 클래스가 인터페이스를 구현한다 or 인터페이스가 다른 인터..