java 3

[Effective Java] 아이템 10. equals는 일반 규약을 지켜 재정의하라

예제 코드는 여기서 보실 수 있습니다. 0. 들어가며 equals 메서드는 두 개체가 같은지 확인하는데 사용됩니다. Java 에서 두 개체가 같은지 확인하는 기준은 동일성 과 동등성 두가지로 나누어집니다. 0.1 동일성 동일성 : 두 개 이상의 사상(事象)이나 사물이 서로 같은 성질. 동일성이란 두 개체가 완전히 같은지를 나타내는 성질입니다. 위 그림의 refVar2 와 refVar3 는 지역변수로서는 개별적으로 존재하지만, 같은 객체2를 가리킵니다. 즉, refVar2 == refVar3 이 성립하며 이는 두 변수 refVar2, refVar3 은 동일하다고 표현할 수 있습니다. 0.2 동등성 동등성 : 가치, 등급 따위가 서로 똑같음. 동등성이란 두 개체가 논리적으로 같은지를 나타내는 성질입니다. S..

Java 2022.12.28

[Effective Java] 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라

예제 코드는 여기서 보실 수 있습니다. 0. 들어가며 이번 아이템은 싱글턴 패턴을 안정적으로 구현하기 위한 방법들에 대한 내용입니다. 각각의 방법들을 예제 코드와 함께 알아보겠습니다. 1. 싱글턴이란? 싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. (Effective java 책 23p) '오직 하나만 생성할 수 있다' 라는 말은 '인스턴스가 하나만 존재해야 한다' 라고 해석할 수도 있습니다. 즉, 싱글톤 구현을 위해서는 Java 의 런타임 환경인 JVM 에서 단 하나의 인스턴스만 생성되도록 구현해야 한다고 생각할 수 있습니다. 1.1 싱글턴의 특징 1. 메모리 절약 모든 객체는 생성되면 JVM 의 heap 메모리에 저장됩니다. 그러나..

Java 2022.12.14

[Java] JUnit의 assertThat보다 assertj의 assertThat을 써야하는 이유

이 글은 JUnit4를 기준으로 작성되었습니다. 테스트 코드를 작성할 때, 크게 두 부분으로 나누어서 생각할 수 있습니다. 1. 실행 단계 2. 검증 단계 실행 단계에서는 사용자 입력을 모방하여 테스트할 로직을 실행시킵니다. 검증 단계에서는 실행 단계가 예상한 대로 동작하는지 검증하게 됩니다. JUnit에서 이 검증 단계를 도와주는 메소드가 바로 org.junit.Assert.assertThat이라는 메소드 입니다. org.junit.Assert.assertThat 공식 문서 org.junit.Assert.assertThat의 기본 형태는 아래와 같습니다. public static void assertThat(T actual, Matcher

Java 2021.10.13