자바에서 스트링은 매우 중요하고 어려운 자료형이다. 이것은 C 언어에서도 마찬가지인데, 사실 자바의 스트링은 C 언어의 char*에 비해서는 매우 쉽고 편리하다. 그러나 메모리 관리를 하지 않으므로 효율성의 면에서 주의하지 않으면 성능에 심각한 문제를 가져올 수도 있다. 이 포스트에서는 스트링의 기본 개념과 연산에 대해서 살펴본다. 자바에서 스트링은 객체다. 객체라 함은 데이터를 내부적으로 가지고 있는 메모리 인스턴스이고 외부로 노출된 메소드에 의해서 접근할 수 있다는 뜻이다. 이러한 객체는 String 타입의 변수에 의해 참조된다. 프로그램 안에서 쓰이는 스트링 객체의 한 형태는 쌍따옴표로 표시되는 문자열을 스트링 리터럴(상수값)이라고 부른다. 스트링 리터럴도 하나의 스트링 객체여서 메모리 상에 저장되..
앞에서 equals 메소드의 오버라이딩으로 비교와 검색을 할 수 있음을 보았다. 그런데 두 객체에 대한 비교가 같다/같지않다로 할 수도 있지만 정렬을 하고 싶다면 크다, 같다, 작다의 세 가지 경우를 구분할 수 있어야 한다. C의 strcmp가 이러한 비교 함수의 원조다. strcmp는 두 char* 포인터를 받아서 앞의 것이 작으면 -1, 같으면 0, 크면 1을 돌려준다. 반환형은 int다. 자바에서 이런 비교를 해주는 메소드가 compareTo다. compareTo는 많은 라이브러리 클래스에 이미 구현되어 있는데, 대표적인 예로 역시 String 클래스를 살펴보자. String str1 = scan.next(); String max = str1; while (scan.hasNext()) { str1 ..
자바를 처음 배울 때 어려운 개념 중 하나가 변수의 참조다. 참조는 어떤 객체를 가리키는 값인데 C의 포인터와는 좀 다르지만 비슷하게 이해할 수 있다. 객체를 가지고 프로그램을 만들어야 하는 것이 자바이므로 참조는 자바에서는 가장 근본이 되는 개념이다.이것은 프로그래밍 언어의 개념에서 값과 참조의 구분에 해당한다. 자바 언어에서 변수는 기본 타입(int, short, long, byte, float, double, char, boolean 8개)은 값 변수, 객체 타입(또는 복합타입이라고도 함)은 참조 변수다. 값 변수는 자체로 메모리와 값을 가진다. 참조 변수는 어딘가에 저장되어 있는 객체를 가리킨다(참조만 가짐). 참조 변수는 일반적으로 선언할 때 null로 초기화하고 필요할 때 new Student..
- Total
- Today
- Yesterday
- Lazy evaluation
- comparable
- TypeError
- 이터레이터
- contains
- 패턴
- 이터러블
- format
- indexof
- rust
- python exercise
- zip
- Iterator
- 지연계산
- contentEquals
- 자바regex
- follow
- typedef
- Camel Style
- ToString
- python example
- 콜렉션
- APPEND
- sort key
- max
- CompareTo
- 동적바인딩
- 스트링 +
- C++ 클래스
- 스트링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |