셋의 공통점 : 같은 문자열은 메모리에 하나의 공간만 할당된다.
예를들어
string a = "aa";
string b = "aa";
if(a==b)
Console.WriteLine("equal");
의 코드는 equal을 출력한다.
하지만 위와 같이 문자열 비교를 하다간 큰일난다.. compare 류의 함수를 쓰자!
string
mutable
<Java>
String
immutable
<C#>
string , String
immutable
Java와 C#에서는 문자열이 immutable 하므로
클래스가 제공하는 메소드를 통해서만 문자열을 조작할 수 있는데
이 때마다 새로운 instance가 만들어진다.
이는 + 연산을 할 때에도 마찬가지인데,
따라서 + 연산을 많이 하는 경우(for loop 을 돈다거나) 매우 비효율적이다.
그래서 StringBuffer, StringBuilder 와 같은 클래스가 존재한다.
얘네들은 mutable 하므로 인스턴스 하나를 가지고 계속 작업할 수 있다.
'C#, .NET' 카테고리의 다른 글
atoi ,itoa (0) | 2011.06.17 |
---|---|
다차원 배열. jagged array (0) | 2011.06.17 |
Monitor 사용시 value type에 대한 유의 와 쓰레드 동기화 (0) | 2011.06.17 |
combobox 색선택, readonly 로 만들기 (0) | 2011.06.17 |
Brushes 에 정의된 색 (0) | 2011.06.17 |