본문 바로가기
Back-end/JAVA

equals() Method

by BsDev. 2018. 3. 12.
AlgorithmQuizToday I Learned작성 규칙분류코틀린 시작하기java 8 Download TutorialJava or JDK 1.8 for Windows자바 환경변수 설정equals() Method

equals() Method

equals() 메소드는 Object 클래스에 정의되어 있고 다른 클래스들에서 오버라이딩되어 있다.

일반적으로는 주소값을 비교하지만 String 클래스에서는 실제 값을 비교한다.

하지만 equals() 메서드의 문제점이 있다. 다음의 코드를 보자.

String name = "Byeongsoon Jang";

boolean boolOne = name.equals("Byeongsoon Jang");
boolean boolTwo = "Byeongsoon Jang".equals(name);

system.out.println(boolOne);
system.out.println(boolTwo);
true
true

당연히 boolOne과 boolTwo가 모두 true를 출력하는것을 볼 수 있다.

하지만 다음과 같은 경우에 어떻게 되는지 살펴보자.

String name = null;

boolean boolOne = name.equals("Byeongsoon Jang");
boolean boolTwo = "Byeongsoon".equals(name);

system.out.println(boolOne);
system.out println(boolTwo);
Exception in thread "main" java.lang.NullPointerException

boolOne에서 NullPointerException이 발생하게 된다. boolTwo만 출력해보면 false가 출력 되는것을 볼 수 있다.

이처럼 변수에 담은 문자열이 null일 경우엔 프로그램이 NullPointerException이 발생하며 비정상적으로 종료되게된다.

그래서 Java 개발자들은 보통 다음과 같은 방법으로 코드를 작성한다.

String 변수 = "변수";

boolean bool = "상수".equals(변수);

이런식으로 작성하게 된다면 적어도 NullPointerException은 발생하지 않을것이다.

앞으로 equals() Method를 사용하게 된다면 상수값이 앞에 위치하게 하는 방법을 이용해야한다.

'Back-end > JAVA' 카테고리의 다른 글

Java 8 Download  (0) 2018.03.12
Bean Validation Tutorial  (1) 2018.03.12