String과 소문자 string의 차이StringBuilderStringBuilder를 쓰는 이유StringBuilder의 동작 방식대문자 String과 소문자 string의 차이
String은 근본적인 클래스 명이다.StringBiilder 를 쓰는 이유
string은 기본적으로 불변이라 문자열을 수정할 때마다 새로운 객체가 생긴다.string text1 = "안녕";
string text2 = "하세요";
string text3 = " 반갑습니다";
Console.WriteLine(text1 + text2 + text3);
text1 + text2 를 할 때 “안녕”이 담긴 메모리 공간에 “하세요”가 붙는게 아니라, “안녕”과 “하세요”가 담긴 메모리 공간은 그대로 둔 채 “안녕하세요”가 담긴 메모리 공간이 새롭게 생긴다.String이 아닌 StringBilder를 사용해야 한다.StringBillder는 string과 달리 가변이고, 기존 문자열을 직접 수정하므로 메모리를 절약하고 속도가 빠르다. (메모리를 할당하는 과정에서 시간이 많이 소요됨)StringBuilder의 동작 방식
StringBuilder와 List는 동작 방식이 유사하다.StringBuilder와 List는 값을 저장할 메모리의 공간을 처음부터 여유롭게 잡아두고, 잡아둔 크기를 넘어서게 되면 더 큰 새로운 저장소에 다시 집어넣는 방식으로 돌아간다.