java final 2

[Java] Java에서 final로 진짜_최종_최종_최종 불변 객체 만들기

이전 글에서 final을 앞에 달아주기만 하면 무적의 불변 객체가 되 .... .는줄 알았으나 ....불변 객체가 기본적으로 안전성을 높여주지만, 외부에서 참조하는 가변 객체를 포함하거나, 불변 객체의 일부 상태가 방어적 복사 없이 외부로 노출되는 경우 안전하지 않을 수 있다는 것. !! 그렇다면 불변 객체의 안전을 위협하는 상황에 대해서 알아보자1. 가변 객체를 포함할 때- 불변 객체 내부에 가변 객체가 포함되면, 해당 가변 객체의 상태가 외부에서 변경될 가능성이 생긴다. 예를 들어 Date 객체는 가변이므로, final 필드에 포함되더라도 객체 내부 상태가 바뀔 수 있다.public final class Period { private final Date startDate; private f..

Java/기본 2024.10.31

[Java] Java에서 final로 불변 객체 만들기

먼저 final을 이용해서 불변 객체를 만들기 전에 final의 개념과 Java에서 불변 객체가 어떤 의미인지 알아보자final은 자바에서 특정 값이나 상태를 변경하지 않도록 보장하는 키워드인데, 사용 위치에 따라 3가지로 분류할 수 있다. 1. 변수에 사용변수에 final을 붙이면 변수의 값을 한 번만 할당하도록 보장하는 역할을 한다.1-1. 기본 데이터 타입에 final 사용기본 데이터 타입(int, double, char 등)에 final을 붙이면, 값이 한 번 할당된 후에는 변경할 수 없다.public class Example { public static void main(String[] args) { final int number = 10; number = 20; ..

Java/기본 2024.10.30