Set.of, List.of, Map.ofnull 값을 넣을 수 없게 방어해준다.Set,Map 은 중복값을 넣는 경우에도 오류를 발생시켜 방어해준다.Collections.unmodifiableXxxunmodifiable 컬렉션에 이 값이 반영된다. 즉, 완벽한 immutable 이 아니다.String은 char []로 표현되고 char는 UTF-16 으로 2byte 를 차지했다. byte[] 로 저장하여 1byte 단위로 공간을 차지하게 최적화 하였다.Latin-1 문자로 이루어진 경우에는 coder 라는 String 의 내부 변수를 LATIN1으로 설정하여 1 바이트 단위로 읽고UTF-16일 경우에는 coder 값을 UTF_16 으로 설정하고 2 바이트 단위로 읽는다. StringBuilder와 StringBuffer에도 최적화가 반영되어있다.StringBuilder로 만들어주었었으나 이 경우 StringBuilder의 기본 버퍼 크기를 사용하면서 버퍼 크기 부족시 성능저하가 있을 수 있음.+ 연산시 invokeDynamic으로 StringBuilder를 동적으로 최적화 해서 호출한다.+ 연결은 그냥 +를 사용하는게 훨씬 빠르다. 물론 Java 9 이상을 target 으로 컴파일해야 한다.“+ is no longer compiled to StringBuilder.” In their “Lessons from Today” slide, they state, “Use + instead of StringBuilder where possible” and “recompile classes for Java 9+.”
ISO-8859-1로 명시하고자 한다면java.util.PropertyResourceBundle.encoding=ISO-8859-1