며칠전 알고리즘 스터디 모임에서 참여자 한 분께서 문자열 비교를 == 연산자로 했다가 프로그래머스에서 통과되지 않아 equals()로 바꾸어서 통과됐는데 왜 IDE에서는 == 연산자로 통과된건지 물어보셨음. String 이 배열과 같이 주소를 참조하기 때문에 값을 비교하기 위해서는 equals() 메소드를 사용해야 한다는건 알고있었으나 왜 IDE에서 정상작동 하는지 이유를 몰라서 찾아봄. String의 생성 알고 있듯이 String은 문자열 객체의 인스턴스 주소를 담고 있는 참조변수이다. 하지면 생성 방식에 따라 생성되는 메모리 영역은 달라지게 된다. String aa = "abc"; 위와 같이 리터럴로 생성하게 되면 aa 변수는 stack 메모리에 생성되고 "abc"라는 값은 heap 메모리 내에 St..