String, StringBuilder, StringBuffer


String 클래슀


  • String μ„ μ–Έ

    • String str = new String("abc"); : νž™ λ©”λͺ¨λ¦¬μ— μΈμŠ€ν„΄μŠ€λ‘œ 생성 / μƒμ„±λ λ•Œλ§ˆλ‹€ λ‹€λ₯Έ μ£Όμ†Œ κ°’

    • String str = "abc"; : μƒμˆ˜ ν’€(Constant pool, μƒμˆ˜λ₯Ό μ €μž₯ν•˜λŠ” 곡간)에 μžˆλŠ” μ£Όμ†Œ μ°Έμ‘° / λͺ¨λ‘ 같은 μ£Όμ†Œ κ°’

  • immutable(λΆˆλ³€)

  • String μ—°κ²° μ‹œ μƒˆλ‘œμš΄ λ¬Έμžμ—΄ 생성 > λ©”λͺ¨λ¦¬ λ‚­λΉ„

      public class StringTest {
    
          public static void main(String[] args) {
                
              String java = new String("μžλ°”λŠ” ");
              System.out.println(System.identityHashCode(java));
              String txt = new String("μ–΄λ ΅λ‹€");
    
              java = java.concat(txt);
              // concat()λ©”μ†Œλ“œ : λ¬Έμžμ—΄ 뢙이기
              System.out.println(System.identityHashCode(java));
          }
      }
    
      // μ„œλ‘œ λ‹€λ₯Έ μ£Όμ†Œ κ°’ 좜λ ₯
    



StringBuilder, StringBuffer 클래슀


  • mutable(κ°€λ³€)

  • .append() / .delete() λ“±μ˜ API μ‚¬μš© ν•΄ 동일 객체 λ‚΄μ—μ„œ λ¬Έμžμ—΄ λ³€κ²½ κ°€λŠ₯

  • λ¬Έμžμ—΄μ˜ μΆ”κ°€, μˆ˜μ •, μ‚­μ œκ°€ λΉˆλ²ˆν•˜κ²Œ λ°œμƒν•œλ‹€λ©΄ > StringBuilder/StringBuffer μ‚¬μš©

    • StringBuilder : 동기화 ν‚€μ›Œλ“œ 지원, λ©€ν‹°μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ μ•ˆμ „ν•¨(thread-safe)
      • String : immutable > thread-safe
    • StringBuffer : 동기화 지원 X, λ©€ν‹°μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œμ˜ μ‚¬μš©μ€ μ ν•©ν•˜μ§€ μ•ŠμŒ / λ‹¨μΌμ“°λ ˆλ“œμ—μ„œλŠ” StringBuffer보닀 λ›°μ–΄λ‚œ μ„±λŠ₯
    public class StringBuilderTest {
    
        public static void main(String[] args) {
    
            String java = new String("μžλ°”λŠ” ");
            System.out.println(System.identityHashCode(java));
            String txt = new String("μ–΄λ ΅λ‹€ γ… ");
                
            StringBuilder builder = new StringBuilder(java);
            System.out.println(System.identityHashCode(java));
                
            builder.append(txt);
            // append()λ©”μ†Œλ“œ : λ¬Έμžμ—΄ 뢙이기
            System.out.println(System.identityHashCode(java));
        }
    
    }
    
    // μ£Όμ†Œ κ°’ λͺ¨λ‘ 동일
    

Categories:

Java