본문 바로가기

java3

immutable 객체로 만드는 방법 이번 글은 불변 객체란 무엇이고 어떻게 만들수 있을지에 대한방법을 이야기하는 글입니다. 불변 객체(immutable Object)란?불변 객체는 객체를 생성 후 그 상태를 바꿀 수 없는 객체를 말합니다.객체의 상태를 바꿀수 없다는 말은 어떤 의미를 가질까요? 이는 객체가 생성된 이후 내부 데이터(필드 값)을 변경할 수 없는 특성을 의미합니다. 대표적인 예로 String 클래스를 들 수 있습니다. 이를 코드로 확인해 보겠습니다.public class Main { public static void main(String[] args) { String immutableObject = "immutable"; immutableObject.replace("immutable", "muta.. 2025. 1. 9.
[Effective Java] 생성자 대신 팩터리 메서드를 고려하라 오늘 알아볼 주제는 "생성자 대신 팩터리 메서드를 고려하라"입니다.왜 생성자 대신 팩터리 메서드를 고려해야 할까요? 먼저 정적 팩터리 메서드가 생성자보다 좋은 장점 5가지에 대해 알아보도록 하겠습니다. 장점1. 이름을 가질 수 있습니다.2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 됩니다.3. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있습니다.4. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있습니다.5. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 됩니다. 장점이 있으면 단점도 늘 있는법 단점에 대해서도 알아보도록 하겠습니다.단점1. 상속을 하려면 public이나 protected 생성자가 필요하니 정적 팩터리 메서드만 제공하면 하위 클.. 2024. 12. 11.
자바 메모리 구조 자바 메모리 구조Deep Dive 자바 실제 메모리 구조 메서드 영역, 스택 영역, 힙 영역으로 총 3가지 영역으로 나뉜다. 메서드 영역메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 어떤 정보가?클래스 정보 : 클래스 실행 코드(바이트 코드), 필드, 메서드 생성자 코드static 영역 : static 변수들을 보관런타임 상수 풀 : 공통 리터럴 상수를 보관 스택 영역스택 영역은 자바 실행 시, 하나의 실행 스택이 생성된다. 각 스택 프레임은 지역 변수, 중간 연산 결과, 메서드 호출 정보 등이 포함된다.스택 프레임 : 스택에 쌓이는 네모 박스 하나가 스택 프레임 (메서드 호출시 하나의 스택 프레임이 쌓이고, 메서드 종료시 해당 스택 프.. 2024. 10. 2.