JAVA 제어문

문자의 비교 : ==과 equals의 차이점

수업소개

자바에서 문자나 객체를 비교할 때는 ==가 아닌 equals를 사용해야 합니다. 그 이유와 equals의 의미를 살펴봅시다. 

 

 

 

강의

소스코드

public class AuthApp2 {

    public static void main(String[] args) {
		
		String id = "egoing";
		String inputId = args[0];
		
		String pass = "1111";
		String pass2 = "2222";
		String inputPass = args[1];
		
		System.out.println("Hi.");
		boolean isRightPass = (inputPass.equals(pass) || inputPass.equals(pass2));
		if(inputId.equals(id) && isRightPass ) {
			System.out.println("Master!");
		} else {
			System.out.println("Who are you?");
		}		

	}

}

 

 

 

 

댓글

댓글 본문
작성자
비밀번호
  1. claire
    좋은 추가 설명 감사합니다
    대화보기
    • 왜 equals를 쓰는가
      자바에는 원시데이터 타입과 비원시데이터 타입이 있는데, 자바는 이 둘을 다루는데 차별이 있다.
      요약하자면, int같은 원시데이터 타입은 ==로, String같은 비원시데이터타입은 equals()를 쓰는 것이 좋다.

      ==(동등연산자)는 '메모리 상에서 같은 주소(위치)를 가리키고 있냐'라는 물음이기 때문에 원시데이터타입의 경우 값이 동일하면 true가 반환된다.

      equals() 메소드는 '값 내용물이 같은가'라는 물음이기 때문에 비원시데이터 타입에서 사용된다.
      (String 같은 경우는 자주 쓰이기 때문에 동등연산자 ==를 사용해줄수도 있으나, 오류가 날 수도 있으므로 그냥 equals를 쓰는게 속편하다.)
    • yyrr
      완료
    • 뉸찡
      2020.03.06 완료
      감사합니다!
    • 감자
      수강 완료
    • 설탕소금
      감사합니다,
    • 임지수
      2020.01.30 완료
    • serina
      감사합니다!
    • 라또마니
      감사합니다. 근데 위에 강의6의 소스코드는 보이나 연결이 없습니다. 참고하세요!!
    • 이기호
      명 강의 감사합니다!
    • 쑤우
      수강완료. 감사합니다.
    • 허공
      감사합니다!
    • 김민호
      정주행중입니다 ㅎㅎ
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기