본문 바로가기
My Image
반응형

불변객체2

[Java] String vs StringBuffer vs StringBuilder 1. String immutable 불변클래스 초기 문자열을 할당 한 후 부터 수정이 불가하다.변경된것처럼 보이는 이유는, 내부적으로 변경된 문자열을 새롭게 만들기 때문이다. 즉 기존에 만들어 놓은 문자열을 수정하는 것이 아니라, 기존에 있는 문자열은 그대로 둔 상태에서, 변경된 문자열을 새롭게 만든다. 이 때문에 String을 기반 문자열을 substring이나 concat, toLowercase등의 메서드를 실행했을 때 매번 새롭운 String 객체가 만들어 지는 것이다. 이 대문에 시스템 자원(시간,메모리)등이 낭비될 여지가 있다. 그렇다면 왜? immutable기능을 String은 탑재하고 있을까? 바로 안정성 때문이다. 읽기 목적이 뚜렷한 경우 String 생성시 처음에만 문자열을 할당하고 그 .. 2017. 10. 26.
[Java] Immutable Class (불변 클래스) 안녕하세요 이번시간은 Immutable Class(불변 클래스)에 대해서 알아보겠습니다. Immutable 란? Immutable을 사전적으로 찾아보면, 불변의, 변경할 수 없는 이라는 뜻임을 알 수 있습니다. 사전적인 의미에서도 알 수 있듯이 Immutable은 변경이 불가합니다. 즉 Immutable Class는 변경이 불가능한 클래스이며, 가변적이지 않는 클래스입니다. 만들어진 Immutable Class는 레퍼런스 타입의 객체이기 때문에 heap영역에 생성됩니다. 자바에서 이런 Immutable Class로 어떤 것들이 있을까요? 대표적으로 String, Boolean, Integer, Float, Long 등등이 있습니다. 이러한 Immutable Class들은 heap영역에서 변경불가능 한 것.. 2017. 7. 29.
반응형