분류 전체보기

우테코 5기/레벨1

정적 팩토리 메서드로 생성자 다이어트 시키기

이펙티브 자바 아이템1(생성자 대신 정적 팩터리 메서드를 고려하라)를 읽고 사다리 미션에 적용해보며 학습한 내용들을 정리해보자. 사다리 생성 미션을 진행하며, 다음과 같은 궁금증이 들었다. Player의 일급 컬렉션 Players는, 생성자의 파라미터로 List players를 받는게 좋을까, List playerNames를 받는게 좋을까? // 1. List players 받기 public Players(List players) { this.players = players; } // 2. List playerNames 받기 public Players(List playerNames) { List players = playerNames.stream() .map(Player::new) .collect(Col..

프로그래밍

[Java] 복사와 불변 (new, unmodifiable, copyOf)

마코센세의 나이스샷 명강의를 듣고 감동을 받아 정리해보려한다! 땡큐 마코센세! new vs copyOf Java의 두 가지 복사 방법을 비교해보자. new를 통해 새로운 객체 생성 후 복사하기 copyOf 키워드 사용하기 new를 사용하여 복사하면 기존의 컬렉션과의 참조를 끊어버린다! (새로운 주소값) 하지만 가변이다. (나의 도플갱어가 생겼을 뿐이다. 얘가 지금부터 자기관리를 어떻게 하든 내 알 바 아니다!) copyOf를 사용하여 복사해도 기존 컬렉션과의 참조를 끊어버린다. 하지만 new와 다르게, 불변이다. (ImmutableCollection) (단, 원본이 불변이면 참조를 끊지 않는다. 복사할 때 참조를 끊어주는 이유에 대해 생각해보면 된다. 원본이 변할 때 복사본이 변할것을 대비해 참조를 끊어..

프로그래밍

[Java] 동일성(==)과 동등성(equals)

성동일은 아는데, 동일성은 뭘까? ㅋㅋ (죄송합니다) 동일성(Identity)은 두 객체의 메모리 주소가 같음을 의미한다. 동등성(Equality)은 두 객체의 값이 같음을 의미한다. 즉, 동일성은 유전자까지 똑같고, 동등성은 겉보기만 똑같은 것이다! 동일성은 나와 내 복제인간이라면, 동등성은 나와 내 도플갱어 쯤? java 에서 동일성은 ==로, 동등성은 equals로 확인 가능하다! 코드로 확인해보자! void 동일성() { List crews1 = List.of("ash", "ako", "maco"); List crews2 = crews1; System.out.println(crews1 == crews2); // true System.out.println(crews1.equals(crews2)); ..

프로그래밍

JUnit5란?

JUnit5란? 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크이다. Java 8 이상에서 사용 가능하다. JUnit5는 크게 세 개의 모듈로 구성되어 있다. (JUnit4는 단일 jar) JUnit Platform: TestEngine 인터페이스를 정의한다. TestEngine을 통해 테스트를 발견하고, 실행하고, 결과를 보고한다. JUnit Jupiter: TestEngine 구현체 / Jupiter API(Junit5를 위한 테스트 API)를 사용해 작성한 테스트 코드를 실행할 때 사용한다. JUnit Vintage: TestEngine 구현체 / 기존 JUnit3,4 버전으로 작성한 테스트 코드를 실행할 때 사용된다. JUnit5 Gradle 의존성 Junit Jupiter API를 사용해 테..

도둑탈을 쓴 애쉬
'분류 전체보기' 카테고리의 글 목록 (8 Page)