안드로이드 개발 질문/답변
(글 수 45,052)
String a = new String("ss");
String b = new String("ss");;
Log.e(a, b);
if(a == b){
Log.e("==", "same");
}else{
Log.e("==", "not same");
}
if(a.equals(b)){
Log.e(".equals", "same");
}else{
Log.e(".equals", "not same");
}
실행 하면 둘 다 not same ,same이 출력 됩니다.
String a = "ss";
String b = "ss";;
Log.e(a, b);
if(a == b){
Log.e("==", "same");
}else{
Log.e("==", "not same");
}
if(a.equals(b)){
Log.e(".equals", "same");
}else{
Log.e(".equals", "not same");
}
실행 하면 same same 이 나오겠죠
왜 다른 결과가 나오는 거죠??
안드로이드 개발 외주 아르바이트 합니다.




== 와 equals 의 차이아닐까요
==로 비교하는 것은 메모리상의 주소를 비교하는 것이기때문에 주소가 틀리면 내용이 같아도 false,
squals는 메모리상의 주소가 아니라, 내용을 비교하는 것이기때문에 내용이 같다면 true..
그럼 여기서 위에 String a = new String(); 은 클래스로의 역할, a는 메모리 주소를 바라보고 있다고 보고
미테 String a = ""; 는 자료형 변수로서의 역할로 바로 값을 바라보고 있다고 봐야하는거 아닐까요 ㅋㅋ