// Heap 영역에 객체가 생성
// 서로 다른 번지를 가짐
// str1 != str2
String str1 = new String("JAVA");
String str2 = new String("JAVA");
// 리터럴 풀로 객체가 생성
// 서로 같은 번지를 가짐
// str3 == str4
String str3 = "PYTHON";
String str4 = "PYTHON";
// 1-new instance
String str1 = new String("JAVA");
String str2 = new String("JAVA");
Boolean isJava;
// 번지 확인
isJava = (str1 == str2) ? true : false;
System.out.println(isJava); // false
// 문자열 확인
isJava = (str1.equals(str2)) ? true : false;
System.out.println(isJava); // true
// 2-literal pool
String str3 = "PYTHON";
String str4 = "PYTHON";
// 번지수 확인
isJava = (str3 == str4) ? true : false;
System.out.println(isJava); // true
// 문자 확인
isJava = (str3.equals(str4)) ? true : false;
System.out.println(isJava); // true
String a = "Python";
String b = "Java";
System.out.println(a.equals(b)); // false
System.out.println(a.indexOf("t")); // 2
System.out.println(a.replaceAll("h", "x")); // Pytxon
System.out.println(a.substring(3, 5)); // ho
문자열을 추가하거나 변경할 때는 String보다 StringBuffer가 빠르다.
StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
System.out.println(sb.toString()); // hello jump to java