YS's develop story

Java ) Java 에서 문자열 생성을 위한 두 가지 방법의 차이점 본문

Java

Java ) Java 에서 문자열 생성을 위한 두 가지 방법의 차이점

Yusang 2020. 9. 19. 08:44

안녕하세요 ~

 

오늘은 java에서 문자열 생성을 위한 두 가지 방법의 차이점에 대해서 궁금해서 직접 찾아보고

이를 정리하고자 글을 작성합니다. ~!

 

 

 

자바에서 문자열 정보를 담고 있는 String 인스턴스 생성방법에는 두가지가 있습니다.

String str1 = "check string";

String str2 = new String("check string");

 

보편적으로는 str1의 생성방법으로 생성을 많이 하죠 ~

그럼 첫번째 줄의 생성방법과 두번째 줄의 생성방법에는 어떤 차이가 있을까요?? 

 

 

아래의 예시를 통해서  확인해보죠 !

첫번째 방법으로 String 인스턴스를 생성했습니다 !

class JavaPractice {
	
public static void main(String[] args) {
	
	String str1="new string";
	String str2="new string";
	
	if(str1==str2)
		System.out.println("same string");
	else
		System.out.println("different string");
	
	}
}

위 소스코드에 대한 콘솔 값 입니다.

 

이번에는 다른 소스 코드입니다 

두번째 방법으로 String 인스턴스를 생성했습니다 !

class JavaPractice {
	
public static void main(String[] args) {
	
	String str1=new String("new string");
	String str2=new String("new string");
	
	if(str1==str2)
		System.out.println("same string");
	else
		System.out.println("different string");
	
	}
}

 

마찬가지로 소스코드에 대한 콘솔값 입니다.

 

 

분명 같은 문자열임에도 불구하고 String 인스턴스의 생성방법에 따라 결과가 다릅니다.

 

첫번째 방법으로 String 인스턴스를 생성하는 경우에는 문자열의 내용이 같으면 하나의 인스턴스를 생성해

이를 공유하는 방식으로 코드를 처리하게 됩니다.

이로 인해 생성되는 인스턴스 수는 줄고 성능은 향상될 수 있죠.

 

두번째 방법으로 생성한 인스터스는 문자열의 내용이 같아도 하나의 인스턴스를 생성해 공유하지 않고 

각각 따로 처리하게 된다는 것을 알 수 있습니다 !!

 

 

Comments