Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기
Java 2011. 11. 24. 22:43
왠지 도움이 될것 같다면 추천을 *(-_-)*
오늘 이클립스에서 작업하다 스트링 객체 다음에 . 을 찍고 뭐 쓸만한게 없나 문득 살펴봤다.
왠지 늘 쓰던거만 쓰면 재미없지 않은가! 뭐 재미진 메소드가 없나 하는 요런 마음?
고러던 와중 그동안 즌혀 관심 1g 조차 없었던 intern() 이라는 메소드가 보였다.
이클립에서 뽓 튀어 나오는 설명을 대충 쪽 읽어보니 == 으로 스트링이 똑같은지 비교를 해주게 하는것 같았다.
뭐! 요런게 있었던 말이가! 하면서 요즘 나온 JAVA7 에 새로 추가된 메소드 인가 하고 API 를 찾아보니 JDK 1.3 부터도 있었던 메소드였다 -_-;;
아무튼 요 메소드를 쓸 일은 거의 1% 미만이지만 왠지 재미진것 같으니깐 알아는 둬야지
대충 요딴식으로 사용한다.
String a = new String("3269"); String b = new String("3269"); System.out.println(a == b); // false System.out.println(a.intern() == b); // false System.out.println(a.intern() == b.intern()); // true
음 막상 코드를 작성하고 나서 보니 "3269".equals(a); 가 훨씬 더 좋구나 라고 생각이 든다 -_-; 분명히 무슨 용도가 있기 때문에 맹근 메소드일껀데 아직까진 그 용도가 잘 파악이 안된다.
※ 비교연산자는 == 요것만 되는것 같다 < , > 요런건 안됨. 컴파일 에러남
2011/11/23 - [Java] - xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/09/27 - [Java] - JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
2011/11/16 - [Java] - JAVA/JSP SQL Injection 해킹 방지를 위한 코딩
2011/10/10 - [Java] - Runtime 에 jar 파일 클래스패스에 추가 시키기 : RuntimeJarLoader
2011/09/27 - [Java] - JDK 설치시 이것저것 물어보는 대화창 없이 커맨드창에서 한번에 쭉 설치하기(Winodws)
2011/08/12 - [Java] - Java JSON 처리 라이브러리 Jackson JSON Processor #1 : Map, List 를 JSON String으로~
'Java' 카테고리의 다른 글
Java 정규표현식으로 문자열 중에서 ip 문자열을 배열로 추출하기 (0) | 2012.05.31 |
---|---|
Java Servlet과 jQuery를 이용한 환율정보(from 네이버) 가져오기 (6) | 2012.05.24 |
Java 에서 문자열 비교할때 equals() 말고 == (비교연산자) 로 비교하기 (1) | 2011.11.24 |
Java에서 파일로 부터 데이터 읽어서 정렬(bubble sort)하기 (0) | 2011.11.24 |
xpath 를 이용, java 에서 xml 문서 쉽게 파싱하기 (4) | 2011.11.23 |
재귀함수(Recursive funtion)을 이용한 특정 폴더 아래의 모든 파일정보 읽어서 출력하기 (0) | 2011.11.16 |
-
과객 2012.03.04 19:34
intern 메소드는 원래 String 객체의 특성이 고려된 메소드입니다.
String 객체의 특성은 일종의 케쉬(pool)이면서 불변의 원칙을 가지고 있죠
즉 이미 생성된 문자열이 있다면 케쉬에서 가져와서 반환하고..
없으면 생성하여 저장하면서 반환합니다.
다음에 동일한 문자열을 요청하게 되면 이미 생성된 객체가 리턴되는데..
이때 이미 등록되어 있는지 않되어 있는지 내부적으로 확인하는 메소드가 intern 입니다.
따라서 개발자가 쓸 용도도 아니고.. 쓰일일이 String 객체를 확장하거나.. 등등
아주 특정한 상황이 아닌 담에는 쓰이지 않습니다.
음.. 뭘 찾다가 여길 온건지 까먹은 @.@