
사진 출처 : https://namu.wiki/
문자열을 표현하는 자바에서 가장 많이 사용하는 클래스이다.
자바 String 인스턴스 생성 방법
1. String + 변수명에 new 없이 원하는 문장 입력
String str1 = "Hello";
String str2 = "Hello";
두 변수가 생성되었을 때 상수 영역에 저장된다.
두 변수 똑같은 값을 입력하면 에러 뜨진 않지만, 이와 같이 표현하면 두 변수가 "Hello" 자체를 가리키게 되는 것이다.
2. String + 변수명에 new 연산자를 이용해 인스턴스 생성
String str3 = new String("Hello");
String str4 = new String("Hello");
이런 경우는 상수를 가리키는 것이 아닌, 다른 래퍼런스를 가리키게 된다.
new연산자를 이용해 인스턴스 생성하면 무조건 새롭게 생성된다.
if(str1 == str2)
System.out.println("str1과 str2는 같은 레퍼런스(참조) 값 입니다.");
if(str1.equals(str3))
System.out.println("str1과 str3는 같은 내용입니다.");
if(str3 == str4)
System.out.println("str3과 str4는 같은 레퍼런스(참조) 값 입니다.");

결과 값 출력해보면 ' == ' 은 참조 값을 확인하는 것이고 equals() 는 내용 자체를 확인해보는 것이다.
마지막 값이 출력되지 않았는데, 둘 다 다른 래퍼런스이기 때문에 출력되지 않는다.
System.out.println(str1.substring(3));
System.out.println(str1);
Substring은 문자열을 자르는 함수이다. 3번 쨰 자리 이전까지 자르고 반환하는 걸 볼 수 있다.