코코코딩공부/JAVA

    [JAVA] equals와 hashCode를 Override 해야하는 이유

    들어가며 우테코 사다리타기 미션을 진행하던 중에 값을 비교하기 위해 equals를 사용했다. equals는 단지 값을 비교하기 위해 사용하면 되지 않나 ?' 라는 생각을 가지고 있던 나는 잘못 생각하고 있었다. 그래서 부끄러워서 정리 한번 해보려고 한다. 문제가 되었던 코드 중 하나 private void validateWinner(Names names, String winner) { if (!(names.nameContains(new Name(winner))) { throw new IllegalArgumentException(ExceptionMessage.EXCEPTION_WINNER_RESULT.getExceptionMessage()); } } names내에서 new Name(winner) 로 이루어..

    [JAVA] 정규표현식

    우아한 테크코스 LV1 사다리 게임을 진행하면서 Validation 처리로 정규표현식을 사용할 일 이 생겼다. 알파벳 외에는 입력받지 않는 것이였는데 이에 정규 표현식을 사용하여 처리하면 쉽게 해결 할 수 있다는 것을 배웠다. 자바 정규 표현식 자바에서는 주로 Pattern 클래스와 Matcher 클래스를 사용하여 자바 정규 표현식을 사용한다. Pattern 이란 주어진 문자열이 정규식에 매칭되는지 테스트 하는 것이며 Matcher란 문자열의 패턴을 해석하고 주어진 패턴과 일치하는지 체크할때 사용한다. 자바 정규 표현식 문법 ^ - 정규식의 시작 $ - 정규식의 끝 . - 임의의 한글자가 존재한다 ? - 앞의 문자가 하나이거나 없거나 * - 앞의 문자가 0 ~ 무한한 것 + - 앞의 문자가 1 ~ 무한한..

    [JAVA] static, final, static final 이란 ?

    레이싱 경주를 구현하다보니 static, final, static final의 차이가 궁금해져서 작성하게되었다. 뭔가 세개가 다 같다고 느껴져서 작성해보았다. static 공용으로 가지는 필드이다. 객체 생성 없이 사용할 수 있는 필드와 메소드를 의미한다. static 변수,메소드는 Heap영역이 아닌 Static영역에 할당된다. Static 영역에 할당된 메모리는 모든 객체가 공유할 수 있다. 하지만 Static영역에 있는 멤버들은 프로그램의 종료시까지 메모리가 할당된 채로 존재하게 되므로 메모리차지를 통해 시스템 성능이 안좋을 수 있다. 지역변수, 메소드 라고 생각하면 될 것 같다. final final 키워드는 딱 한번 값이 할당 될 수 있는 필드이다. final 클래스 - 상속할 수 없는 클래스 ..

    [JAVA] ENUM

    우아한 테크코스 프리코스에서 ENUM을 이용하여 코드를 구현하라는 미션이 있었다. 당시 나는 ENUM이라는 것에 대해서 알지도 못했고 필요성을 느끼지도 못하였다. 그 후 최종코딩테스트에서 메뉴 관련된 코드를 구현하다가 ENUM을 사용한다면 조금 더 효율적으로 코드 작성을 할 수 있지 않을까 라는 생각이 들었다. 물론 나의 최종 코드는 ENUM 같은 것은 사용되지 않은 코드였다 .. ENUM 이란 JDK 1.5부터 사용 가능한 서로 연관된 상수들의 집합 이다. 자바의 열거체는 실제 값뿐만 아니라 타입을 체크하며 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없습니다. 아래는 사용했던 방법이다. enum 열거체이름 { 상수1이름, 상수2이름, ... } public enum Score { zero(0..