>Java >java지도 시간 >Java의 문자열 초기화

Java의 문자열 초기화

WBOY
WBOY원래의
2024-08-30 16:07:271128검색

문자열 초기화는 프로그래밍의 기본 부분 중 하나입니다. 문자열 초기화는 Java 프로그램에서 사용되기 전에 변수에 값을 할당하는 것을 의미합니다. 문자열 초기화는 두 가지 방법으로 수행할 수 있습니다:

  • 객체 초기화
  • 직접 초기화

문자열은 Java의 객체입니다. 문자열은 일련의 문자를 나타냅니다.  문자 배열이라고도 합니다. 문자열은 항상 따옴표 안에 표시됩니다. 따옴표도 문자열의 일부가 아닙니다. 문자열 초기화도 두 단계로 이루어집니다. 첫 번째 단계는 선언이고 두 번째 단계는 초기화입니다. 문자열 선언은 명시적으로 값을 할당하지 않고 문자열을 선언하는 것을 의미합니다. 대부분의 사용 사례에서 문자열의 유일한 선언에는 초기화가 필요하지 않습니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

Java의 문자열 초기화 유형

Java에서는 문자열이 여러 가지 방법으로 초기화됩니다. 생성자를 사용하거나 리터럴을 사용합니다. 새로운 키워드를 사용하여 String을 초기화하는 것과 Literal을 사용하는 것은 차이가 있습니다. 새로운 Java 객체를 생성할 때마다 새로운 키워드를 사용하여 문자열을 초기화합니다. 정의되었으나 초기화되지 않은 변수는 아무런 값도 갖고 있지 않기 때문에 프로그램에서 사용할 수 없습니다.

1. 객체 초기화

new 키워드를 사용한 문자열 초기화. new 키워드를 사용하여 String을 초기화하면 메모리 힙에 새 객체가 생성됩니다. 객체를 통해 초기화된 문자열이 변경 가능하다는 것은 초기화 후에 문자열의 값을 다시 할당할 수 있다는 의미입니다.

String strMsg = new String("Be specific towards your goal!");

생성자를 사용하여 객체를 시작할 때 Java 컴파일러는 힙 메모리에 새 객체를 생성합니다. 힙 메모리는 JVM용으로 예약된 메모리입니다.

2. 직접 초기화

리터럴을 사용한 문자열 초기화. 리터럴을 사용하여 문자열을 초기화하면 메모리의 풀링된 영역에 개체가 생성됩니다.

String strMsg = "Be specific towards your goal!";

리터럴과 할당된 값을 사용하여 문자열을 초기화하는 경우 이미 다른 문자열에서 초기화되었습니다. 이러한 시나리오에서는 Literal을 통해 생성된 String은 새 객체를 생성하지 않습니다. 이전에 생성된 개체에 대한 참조를 전달했습니다.

Java의 문자열 초기화 예

다음은 Java에서 문자열 초기화의 다양한 예를 설명합니다.

예시 #1

아래 생성된 String에서는 두 String 모두 Literal을 사용하여 생성되었습니다.

코드:

String ObjStringFirst="Welcome";
String ObjStringSecond="Welcome";

위의 String에서는 String Literal을 사용하여 객체를 생성하고 있습니다. 이러한 상황에서 개체가 이미 동일한 값으로 존재하는 경우 동일한 개체를 반환합니다. 그렇지 않으면 새 개체가 생성됩니다.

예시 #2

아래 예시에서는 문자열이 어떻게 초기화되는지 확인할 수 있습니다.

코드:

public class StringExample {
public static void main(String[] args)
{
String nameFirst = "Alister";
String nameSecond = "Campbell";
String nameThird = new String("Adam");
String nameFourth = new String("Martin");
//String nameFifth;
String strNullFirst  = null;
String strNullSecond = null;
String strNullThird  = null;
System.out.println("String initialized :");
//printing variable which are initialized
System.out.println("First : " + nameFirst);
System.out.println("Second : " + nameSecond);
System.out.println("Third : " + nameThird);
//printing variable which are declared but not initialized
//System.out.println("String declared but not initialized :");
//System.out.println("Fifth : " + nameFifth);
}
}

출력:

Java의 문자열 초기화

예시 #3

이 예에서는 String 변수의 선언이 제공됩니다. 프로그램 컴파일 시 선언되었지만 초기화되지 않은 변수가 포함되어 있습니다.

코드:

public class StringExample {
public static void main(String[] args)
{
String nameFirst;
//printing variable which are declared but not initialized
System.out.println("String declared but not initialized :");
System.out.println("Fifth : " + nameFirst);
}
}

출력:

위 프로그램의 출력은 다음과 같습니다. 위에 제공된 프로그램은 컴파일 시 오류를 생성합니다. 문자열이 선언되었지만 초기화되지 않았습니다.

Java의 문자열 초기화

String 선언 후 나중에 선언된 String 변수에 값이 할당되면 컴파일 시 오류가 발생하지 않습니다(문자열 초기화는 두 부분으로 이루어지므로). 첫 번째는 선언이고 두 번째는 과제입니다.

예시 #4

이 예에서는 빈 값을 사용하여 문자열 초기화를 진행해 보겠습니다. 빈 값을 통해 시작된 모든 문자열 변수는 세 가지 모두에 대해 서로 다른 개체를 갖게 됩니다. Literal을 통해 초기화된 문자열은 문자열 풀에 개체를 생성하고 new 키워드를 통해 초기화된 문자열은 메모리의 힙 영역에 개체를 생성하기 때문입니다.

코드:

public class StringExample {
public static void main(String[] args)
{
String strVal1 = "";
String strVal2 = new String();
String strVal3 = new String("");
//printing variable which are initialized with empty values
System.out.println("String Values :");
System.out.println("First : " + strVal1);
System.out.println("Second : " + strVal2);
System.out.println("Third : " + strVal3);
}
}

출력:

위 프로그램에서는 Strings에 대한 객체도 다르지만 String에 할당된 값은 동일합니다. 아래 주어진 출력은 빈 값이 각 문자열 변수에 할당되는 방법을 보여줍니다.

Java의 문자열 초기화

예시 #5

아래 프로그램에서는 위에서 초기화한 문자열을 비교합니다. 여기서는 문자열을 비교하는 3가지 방법을 사용합니다.

1. == operator: In java == operator compare the references, not the values.
2. equals() method: It compares the variable’s value, not the references; hence, if the value matches both the String variable, it returns true other false.
3. compareTo() method: compareTo() method check the values & if values are identical then it return 0 otherwise it return + & – based on the below given comparison.

  • It returns 0 if str1 == str2
  • It returns positive value if str1 > str2
  • It returns negative value if str1 < str2

Code:

public class StringExample {
public static void main(String[] args)
{
String strVal1 = "";
String strVal2 = new String();
String strVal3 = new String("");
//printing variable which are initialized with empty values
System.out.println("String Values :");
System.out.println("First : " + strVal1);
System.out.println("Second : " + strVal2);
System.out.println("Third : " + strVal3);
System.out.println(" \nComparing strings using == operator :");
System.out.println("Comparing first two strings :");
System.out.println(strVal1 == strVal2);
System.out.println("Comparing last two strings :");
System.out.println(strVal2 == strVal3);
System.out.println("Comparing first & last strings :");
System.out.println(strVal1 == strVal3);
System.out.println(" \nComparing strings using equals method :");
System.out.println("Comparing first two strings :");
System.out.println(strVal1.equals(strVal2));
System.out.println("Comparing last two strings :");
System.out.println(strVal2.equals(strVal3));
System.out.println("Comparing first & last strings :");
System.out.println(strVal1.equals(strVal3));
System.out.println(" \nComparing strings using compareTo method :");
System.out.println("Comparing first two strings :");
System.out.println(strVal1.compareTo(strVal2));
System.out.println("Comparing last two strings :");
System.out.println(strVal2.compareTo(strVal3));
System.out.println("Comparing first & last strings :");
System.out.println(strVal1.compareTo(strVal3));
}
}

Output:

The output of the comparing string program is given below. It contains the output after comparing the Strings in three different ways; thus, outcomes of the comparison are also different according to the method applied.

Java의 문자열 초기화

Conclusion

The above-given article explains the initialization of String & different types of ways to initialize the String in java. Also given examples in the article describe the internal creation of objects when initiating String using Literal. It also describes the difference between declaration & initialization.

위 내용은 Java의 문자열 초기화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java의 불변 클래스다음 기사:Java의 불변 클래스