eterno

[JAVA] 문자열 연결하는 메서드 String.concat() 본문

JAVA

[JAVA] 문자열 연결하는 메서드 String.concat()

영원한별똥별 2023. 2. 8. 11:31
728x90
반응형

java.lang.String 클래스는 문자열을 다루는 클래스입니다.

 

String 클래스에는 두가지 규칙이 있는데

1. 초기화하는규칙

  • 상황에 따라 지역변수를 ""(빈문자열) 또는 null로 초기화하는데 "" 으로 초기화 하는걸 권장함
    ( null은 오류날 확률이 큼)

2. 원본 불변성(immutable) 규칙

  • 한번 생성된 문자열은 변경되지 않음(원본이 변경되면 안됨)

불변성 규칙이란 ?

자바는 새로운 값이 들어오면 기존 값은 지우고 새로운 값으로 출력합니다.

→ final char[ ] 배열로 되어있어서 새로운 값이 생성되면 새로운 주소값을 갖게됩니다.

 

 

 

 

.concat()
: 문자열을 연결해주는 메서드

문자열 a 와 문자열 b가 있다고 하면 

a = a.concat(b);

이렇게 사용할 수 있고

a문자열에 b가 연결되어 새로운 메모리에 새로운 문자열이 생성됩니다.

 

package object;

public class StringEx {

	public static void main(String[] args) {
	
		String a = "Hello,";
		String b = "Java!";
		
		System.out.println(a);  // 결과값 : Hello,
		System.out.println(a.hashCode()); //결과값 : -2137068102
		
		a = a.concat(b);
		System.out.println(a); // 결과값 : Hello,Java!
		System.out.println(a.hashCode()); //결과값 : -531414875
	}
}

만약 많은 문자열을 연결해야 한다고 가정하면

계속 새로운 메모리가 할당되어 많은 용량을 차지하게 됩니다.

 

문자열을 메모리 낭비없이 연결하고 싶다면 StringBuffer 또는 StringBuild 를 사용하면 됩니다.

 

 

 

 

728x90
반응형