목차 자바에는 일반적으로 쓰이는 String 클래스 말고도 두 가지 클래스가 더 존재한다. 똑같이 문자열을 저장 및 관리하는 클래스가 왜 세 가지나 있을까? 차이점을 간결하게 정리하자. String vs. String Buffer / Builder String - 한 번 생성되면 할당된 메모리 주소가 변하지 않는다. '+' 혹은 concat() 메서드를 사용해 문자열을 추가하면 기존 메모리주소에 이어서 할당되는 것이 아닌 문자열이 추가된 새로운 문자열을 생성해 저장한다. 이때 힙 메모리엔 기존의 문자열이 Garbage로 남아 GC에 의해 회수되기 전까지 메모리를 차지하는데, 문자열의 수정이 자주 발생한다면 계속해서 Garbage가 쌓이게 된다. 이를 불변(immutable) 하다고 한다. 굳이 왜 이런 ..
indexOf(), lastIndexOf()는 String이나 문자열 배열에서 특정 값의 인덱스를 찾는 메서드이다. 문자열로 된 변수나 배열만 가능한 이유는 java.lang.String 클래스에 속한 메서드기 때문이다. 정확하게는 문자열 배열이 아닌 List로 변환을 해서 사용해야 한다. 정수형으로 사용하고자 한다면 구아바 등의 라이브러리를 쓰는 것도 방법이 될 수 있겠다. 어쨌거나 둘의 차이는 간단하다. indexOf() - 배열(문자열)의 왼쪽부터 탐색, 처음 등장하는 인덱스 반환 lastIndexOf() - 배열(문자열)의 오른쪽부터 탐색, 처음 등장하는 인덱스 반환 사용 예제를 확인하자. import java.util.Arrays; public class Main { public static v..
- Total
- Today
- Yesterday
- 백준
- java
- 면접 준비
- 동적계획법
- a6000
- 세계여행
- 스트림
- 세계일주
- 여행
- 칼이사
- 스프링
- RX100M5
- 리스트
- 지지
- 맛집
- spring
- 중남미
- BOJ
- 유럽여행
- 자바
- 알고리즘
- 세모
- 파이썬
- 남미
- 유럽
- 야경
- Backjoon
- Algorithm
- Python
- 기술면접
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |