JDK 1.5 버전 이후부터, String의 + 연산은 컴파일시에 StringBuilder를 사용하도록 자동변환되어 성능 최적화가 이뤄진다고 알려져 있습니다. 그러나 String은 항상 StringBuilder로 변환되지 않습니다. String 연산을 수행하는 몇가지의 예제를 준비했습니다. String을 연산하는 소스코드를 컴파일하고, 다시 디컴파일하여 성능최적화가 이뤄졌는지 확인해보겠습니다. (디컴파일러는 JAD를 사용하였으며, 예제코드들은 "012"라는 문자열을 이어붙여서 만드는 작업을 수행합니다.) 예제1) 한줄로 모두 선언한 경우 //컴파일 전 소스파일 String str1 = "0" + "1" + "2"; //컴파일 이 후, 디컴파일 한 소스파일 String str1 = "012"; 한줄로 모두..
개요 Map에 많은 구현체들이 있지만 주로 HashMap을 사용하고 상황에 따라 TreeMap이나 LinkedHashMap정도를 고려해보는 것이 현실입니다. Hash를 사용하는 HashMap이면 성능적으로 충분히 훌륭하지 않은가 생각했는데, EnumMap이 HashMap보다 성능적으로 훨씬 좋다는 사실을 알게 되었습니다. EnumMap 이 뭘까 EnumMap도 Map의 구현체입니다. 대신 한가지 조건이 있는데 key값으로 enum이 들어가야 합니다. enum DayOfWeek { MON, TUE, WED, THU, FRI, SAT, SUN } public static void main(String[] args) { Map enumMap = new EnumMap(DayOfWeek.class);//키에 들어..