목록string (2)
고코딩
자바의 최상위 클래스는 Object클래스이다. Object클래스에는 기본적으로 equals(), hashCode(), toString(), clone(), notify()등 여러 메소드가 존재한다. 그 중에서도 우리가 가장 많이 사용하는 equals()에 대해서 알아보자. ==연산자 처음 코딩을 배울때 '같다, 동등하다' 의 의미로 쓰는 것이 ==라고 배웠다 그래서 if(10 == 10)으로 작성해 if문을 실행하였다. 그때는 그저 같으면 됬지 라는 생각으로 사용하고 있었다. 그런데 어느 순간 String을 배우고 나니 equals()가 뿅 하고 나타났다. 그러고는 String은 객체여서 equals()로 비교해야 한다. 원래 그렇다 라고 밖에 설명을 듣지 못했다. 나는 그저 '아 ..
지인이 코딩테스트 문제를 풀던중 계속해서 메모리 초과가 발생하는 문제가 있었다. 문자열들을 입력받아 정렬하는 문제였는데 아무리 봐도 메모리초과가 발생할만한 곳이 없었다. 문자열도 String이 아닌 StringBuffer로 받아서 사용하고 있었기에 의심을 하지 못했다. 문제는 + 연산에서 발생했다. 생각해보니 StringBuffer에서는 append를 사용하도록 기능을 주고 있었다. 그럼 append와 + 연산은 무슨 차이일까? String, StringBuffer,StringBuilder의 특징 String과 StringBuffer, StringBuilder의 가장 큰 차이점은 String은 Imutable이라는 점이다. Imutable은 불변하지 않는 이라는 뜻을 가지고 있는데 String은 문자열 ..