데이터(char[]) + 메서드(문자열 관련)
C언어는 객체지향 언어가 아니어서, char 데이터를 배열에 저장하는 것은 동일하지만 문자열 관련 메서드가 따로 존재한다. 하지만 Java는 객체지향언어이므로 String 클래스에 메서드까지 포함한다.
String 클래스의 실제 코드
public final class String implements java.io.Serializable, Comparable {
private char[] value;
...
}

따라서 덧셈 연산자를 이용한 문자열 결합은 성능이 떨어진다.
문자열의 결합이나 변경이 잦다면, 내용을 변경할 수 있는 StringBuffer를 사용

문자열은 변경이 불가능 하기 때문에 여러 참조변수가 참조해도 상관이 없다.
그래서 String str = "abc"; 방식을 더 많이 사용한다.
char[] chArr = new char[0];
int[] iArr = {};

String str1 = "";
String str2 = "";
String str3 = "";
vs
String str4 = new String("");
String str5 = new String("");
String str6 = new String("");
이 경우에도 전자가 더 메모리를 절약할 수 있다.





true + "" 보다 valueOf(true)가 더 성능이 좋다.
다만 우선적으로 가독성을 생각하고 성능을 높일 필요가 있다면 수정하는 것이 좋다.
String animals = "dog, cat, bear";
String[] arr = animals.split(",");
String str = String.join("-", arr);
System.out.println(str); // dog-cat-bear
