개발블로그

  • 홈
  • 태그
  • 방명록

불변 2

String vs StringBuffer vs StringBuilder

String : 문자열 연산이 적고 멀티쓰레드 환경일때 (문자의 변동이 적을때 - 불변성) String의 예시로 아래 코드를 살펴보자. (hello로 선언한 값을 hello world로 바꿔주는 예) 기존에 hello라는 값을 가지고 있던 memory영역이 있고 hello world는 새로운 영역에 할당된다. 그렇다면 처음에 할당된 hello가 담겨있는 메모리 영역은 Garbage로 남아있다가 GC(Garbage Collection)에 의해 사라지게된다. String 클래스는 불변하기 때문에 기존의 memory영역이 수정되지 않고 새로운 영역이 생성되는것 String str = new String("hello"); str = str + " world"; 만약 문자열 추가, 수정, 삭제 등의 연산이 많은 ..

JAVA 2022.07.05

[JAVA] 값 타입과 불변객체

값타입은 단순하고 안전하게 다룰 수 있어야 한다. 값 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험함 부작용(side effect) 발생 한다. 예시 ) member1과 member2 모두 city, street, 1234 의 주소를 가진다. 이때 member1의 city명만 newCity로 변경해보자 Address address = new Address("city", "street", "1234"); Member member = new Member(); member.setUsername("hello"); member.setHomeAddress(address); em.persist(member); Member member2 = new Member(); member2.setU..

JAVA 2022.01.11
이전
1
다음
더보기
프로필사진

개발블로그

개발자 박응디 cjdrud123@naver.com

  • 분류 전체보기 (126)
    • JAVA (81)
    • Python & Django (6)
    • Server(설정 등) (5)
    • DB (2)
    • Git (4)
    • Swift (7)
    • React (6)
    • AWS (2)
    • CT (5)
    • 참고사항 (8)

Tag

TDD, 개발, mapping, code, query, testcode, python, DB, entity, IOS, IP, java, test, React, APP, Spring, 설정, swift, 개발자, JPA,

Calendar

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Copyright © Kakao Corp. All rights reserved.

티스토리툴바