2025.02.11 (화)

윤혜진·2025년 2월 11일

📍오늘의 학습 키워드

  • 팀 프로젝트 진행
  • 대문자 String과 소문자 string의 차이
  • StringBuilder
    • StringBuilder를 쓰는 이유
    • StringBuilder의 동작 방식

📍학습 내용

  • 대문자 String과 소문자 string의 차이

    • String은 근본적인 클래스 명이다.
    • 대문자 String은 소문자 string의 원형이고, 소문자 string은 대문자 String의 키워드라고 할 수 있다.
    • 동작 면에서 차이는 없지만, 대체로 클래스의 메소드를 활용할 때는 대문자를 쓰고, 선언을 할 때는 소문자를 쓴다.
  • StringBiilder 를 쓰는 이유

    • string은 기본적으로 불변이라 문자열을 수정할 때마다 새로운 객체가 생긴다.
    string text1 = "안녕";
     string text2 = "하세요";
     string text3 = " 반갑습니다";
    
     Console.WriteLine(text1 + text2 + text3);
    • 예를 들어, 위와 같은 코드가 있다고 하면 text1 + text2 를 할 때 “안녕”이 담긴 메모리 공간에 “하세요”가 붙는게 아니라, “안녕”과 “하세요”가 담긴 메모리 공간은 그대로 둔 채 “안녕하세요”가 담긴 메모리 공간이 새롭게 생긴다.
    • text3를 합칠 때도 마찬가지로, “안녕하세요”가 있는 메모리 공간에 “반갑습니다”가 붙는게 아니라, “안녕하세요 반갑습니다”를 담을 메모리 공간이 새로이 생긴다.
    • 우리가 생각하는 것처럼 한 메모리 공간에 바로 붙여주려면 String이 아닌 StringBilder를 사용해야 한다.
    • StringBillderstring과 달리 가변이고, 기존 문자열을 직접 수정하므로 메모리를 절약하고 속도가 빠르다. (메모리를 할당하는 과정에서 시간이 많이 소요됨)
  • StringBuilder의 동작 방식

    • StringBuilderList는 동작 방식이 유사하다.
    • 기존 변수들은 크기가 정해져 있지만, StringBuilderList는 값을 저장할 메모리의 공간을 처음부터 여유롭게 잡아두고, 잡아둔 크기를 넘어서게 되면 더 큰 새로운 저장소에 다시 집어넣는 방식으로 돌아간다.

0개의 댓글