char처럼 문자 하나가 아닌, “Hello World”와 같이 문자의 나열을 의미
정수(int), 실수(double) 등은 ‘기본 타입’이지만, String은 ‘클래스 타입’이다. 즉, 참조 타입(Reference Type)에 해당한다.
" ")로 감싼다.String name = "자바";문자열 내부에 특수 문자를 포함하고 싶을 때 역슬래시(\)를 사용한다.
"홍길동입니다." → "\"홍길동\"입니다." (따옴표 출력)C:\Temp → "C:\\Temp" (역슬래시 출력)자바 21에서는 여러 줄의 문자열을 훨씬 깔끔하게 작성할 수 있는 텍스트 블록을 지원한다.
// 기존 방식
String html = "<html>\n" +
" <body>\n" +
" <p>Hello</p>\n" +
" </body>\n" +
"</html>";
// 자바 21 텍스트 블록 방식
String htmlBlock = """
<html>
<body>
<p>Hello</p>
</body>
</html>
""";
==는 ‘메모리 주소’를 비교하기 때문에 쓰지 않는 것이 원칙이다.
.equals() 메소드 사용String str1 = "Java";
String str2 = new String("Java");
System.out.println(str1 == str2); // false (주소가 다름)
System.out.println(str1.equals(str2)); // true (내용이 같음)
자바 21에서 도입된 String Templates를 사용하면 변수를 문자열 안에 직관적으로 넣을 수 있다. (※ Preview 기능이므로 설정이 필요할 수 있음)
String name = "Gemini";
String greeting = STR."Hello, \{name}!"; // "Hello, Gemini!"