☕ 자바 JAVA/☕ 변수와 자료형 Variables & Data Type

[JAVA]String 특징

뉴이 NUEY 2024. 11. 6. 15:00
반응형

 

String class

String 클래스는 데이터(char[]) + 메서드들(문자열 관련 함수)로 묶여있다.


final로 되어있어 실제로는 내용을 변경할 수 없다.

예제

  • 여기서 a의 값은 a + b가 되어 교체된 것처럼 보인다.
  • 하지만 a의 주소와 함께 새로운 값을 연결한 것일 뿐,
    a 값은 사라지지 않는다.
  • 따라서 덧셈(+)을 이용한 문자열 결합은 성능이 떨어진다.
※ 참고
클린코드에서는 StringBuffer를 비추천한다.
하지만 성능으로 보면 StringBuffer가 낫다.

new String()

  • 마찬가지로 new String도 더 메모리를 차지하기에 권장하지 않는다.

문자열 비교는 equals()

무엇이 다른지에 대한 예시

  • str1, 2, 3, 4의 값은 모두 "abc"입니다.
  • 하지만 결과는 다릅니다.
  • 이유는 비교연산자 == 는 주소값이 같은 지 확인하기 때문입니다.
  • equals는 주소가 아닌 실제값을 비교합니다.
  • new를 사용하면 새로운 주소를 가지기 때문입니다.

권장 예시

 

  • 따라서 문자열을 비교할 때는 실제 값을 비교하는 equals를 사용해야만 합니다.

빈 문자열 ""
크기가 0

  • 크기가 0이어도 int→String으로 변환한다든 지 유용하게 사용 가능.
※ 빈 문자열 선언 시 권장코드

크기가 0인 배열은 어느 타입으로나 만들 수 있습니다.

 

 

참고 : https://youtu.be/PG8kPjwWbWU?si=9j0suzLhun1evdCK

반응형