사용자 도구

사이트 도구


java:9

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:9 [2023/01/14 14:46]
kwon37xi [Compact Strings]
java:9 [2023/09/18 03:06] (현재)
kwon37xi [String Concat 개선]
줄 14: 줄 14:
     * null 값을 넣을 수 있다.     * null 값을 넣을 수 있다.
  
-==== G1 GC ====+===== G1 GC =====
   * [[java:g1gc|Java G1 GC]]가 기본 Garbage Collector 가 된다.   * [[java:g1gc|Java G1 GC]]가 기본 Garbage Collector 가 된다.
  
줄 24: 줄 24:
   * ''StringBuilder''와 ''StringBuffer''에도 최적화가 반영되어있다.   * ''StringBuilder''와 ''StringBuffer''에도 최적화가 반영되어있다.
   * Memory 사용량이 줄고 줄고 그로인해 GC도 적어지고 성능이 좋아졌다.   * Memory 사용량이 줄고 줄고 그로인해 GC도 적어지고 성능이 좋아졌다.
 +
 +===== String Concat 개선 =====
 +  * Java 8 에서는 문자열 연속 연결시에 자동으로 ''StringBuilder''로 만들어주었었으나 이 경우 ''StringBuilder''의 기본 버퍼 크기를 사용하면서 버퍼 크기 부족시 성능저하가 있을 수 있음.
 +  * Java 9 는 문자열 연속 ''+'' 연산시 ''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+."
 +
 +  * [[http://marxsoftware.blogspot.com/2019/01/jep-280-indify-string-concatenations.html|Inspired by Actual Events: JDK 9/JEP 280: String Concatenations Will Never Be the Same]]
 +  * [[https://www.javaspecialists.eu/talks/pdfs/2018%20Voxxed%20in%20Thessaloniki,%20Greece%20-%20%22Enough%20java.lang.String%20to%20Hang%20Ourselves%20...%22%20by%20Heinz%20Kabutz.pdf|2018 Voxxed in Thessaloniki, Greece - "Enough java.lang.String to Hang Ourselves ..." by Heinz Kabutz]]
 +
 +  * [[https://dzone.com/articles/concatenating-strings-in-java-9|Concatenating Strings in Java 9 - DZone Java]]
 +
 ===== 참고 ===== ===== 참고 =====
   * [[http://www.slideshare.net/duriepark/java9-65665865|Java9 특징 훑어보기]]   * [[http://www.slideshare.net/duriepark/java9-65665865|Java9 특징 훑어보기]]
줄 81: 줄 94:
   * [[https://www.tutorialspoint.com/java9/java9_completablefuture_api_improvements.htm|CompletableFuture API Improvements - Tutorialspoint]]   * [[https://www.tutorialspoint.com/java9/java9_completablefuture_api_improvements.htm|CompletableFuture API Improvements - Tutorialspoint]]
  
-===== String Concat ===== 
-> Java 에서 문자열을 연결할 때는 StringBuilder 를 사용해야 한다 -> JDK 9 부터는 그냥 + 연산으로 연결하는게 제일 빠르다. 
-> "+ 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+." 
- 
-  * [[http://marxsoftware.blogspot.com/2019/01/jep-280-indify-string-concatenations.html|Inspired by Actual Events: JDK 9/JEP 280: String Concatenations Will Never Be the Same]] 
-  * [[https://www.javaspecialists.eu/talks/pdfs/2018%20Voxxed%20in%20Thessaloniki,%20Greece%20-%20%22Enough%20java.lang.String%20to%20Hang%20Ourselves%20...%22%20by%20Heinz%20Kabutz.pdf|]] 
- 
-  * [[https://dzone.com/articles/concatenating-strings-in-java-9|Concatenating Strings in Java 9 - DZone Java]] 
  
 ===== Resourcebundle UTF-8 ===== ===== Resourcebundle UTF-8 =====
java/9.1673675163.txt.gz · 마지막으로 수정됨: 2023/01/14 14:46 저자 kwon37xi