Arr[i]는 Integer 객체입니다. 객체 사이의 == 연산은 두 객체가 완전히 같은 객체인지를 검사합니다.
Integer의 경우 127까지는 미리 객체를 생성해두고, 사용하려 할 때는 그 객체를 반환만 하기 때문에 127 이하의 Integer 객체들에 대해서 == 연산을 하면 원하는 대로 결과가 잘 나옵니다. 하지만 그 값이 128 이상이 될 경우 Integer는 매번 새로운 객체를 만들어 주므로, Arr[0]와 Arr[1]이 내부적으로 같은 값을 저장하고 있더라도 == 연산은 false를 반환할 수 있습니다.
그래서 Integer 객체의 비교에서는 반드시 equals 메서드를 써서 비교해 줘야 합니다.
그리고 97, 65 같은 수를 쓰는 건 좋지 못한 습관입니다. 'a', 'A' 로 쓰는 것이 훨씬 명확하고 가독성이 좋은데 굳이 아스키 코드로 쓸 필요가 없죠.
dbdvn12 4년 전
다른 예들도 넣어봤는데
맞게 나오는데
결과가 틀렸다고 나오네요.. ㅠㅠ