if else문 비교 == 과 equals 의 차이점은 뭘까? :: 2012/03/23 13:25
if else문 비교 == 과 equals 의 차이점은 뭘까?
오늘 오전중 작업하면서 겪은것을 적어보도록 하겠다....
if else 이것은 프로그램 코드를 하다보면 누구나 접해본 것일것이다...
기본중이 기본!! 쉬우면서도 조건걸때 사용하는 것인데...
여기서 사람들이 질문하는것은 == 과 equals일것이다.
언뜻 보기엔 둘다 값을 비교하는거라 같아 보이고 특히 c언어에서는 ==만 사용하면 왠만한것은 if문으로 조건 가능하다.
하지만 자바에서는 객체 비교할때는 ==이 아닌 equals로 비교를 할것이다.
그럼 여기서 간단한 소스로 비교를 해보는것도 좋을것이다!
code = (Stirng)session.getAttribute("code");
들어오는 값은 A12
1. 첫번째
if(code == "A12"){
조건실행문
else{
조건이 아닌경우 실행문
}
2. 두번째
if(("A12".equals(code))
조건실행문
else{
조건이 아닌경우 실행문
}
위와 같이 1. 첫번째 2. 두번째 소스가 있다.
여기서 1. 첫번째에는 if문을 넘어서 else문으로 넘어가버리고,
2. 두번째에서는 if문을 실행한다.
뭐가 다른것일까?
String으로 code값이 들어오기 때문에 그럴것이다.
근데? 왜 다른 클래스를 만들어서 하면 equals도 if문을 실행하는걸까?
참 알수 없다;;
그저 클래스만 다를뿐인데;;;


