public static final1 [Effective Java] public static final 만약 클래스의 특정 필드를 public으로 열어두면 어떤일이 발생할까? public 으로 공개된 필드는 Thread Safe 하지 못하다. 즉 Lock 관련 작업(synchronized 로 처리한다거나 @Transactional 어노테이션으로 순서를 보장한다던가 하는 작업...)을 걸 수가 없다는 뜻이다. 이는 프로그램에 심각한 문제를 일으킬 수 있는 요소가 된다. 예를 들어 은행 계좌 클래스가 있거 금액을 의미하는 필드가 있을때 이 필드가 public으로 제공이 되는 경우에는 동시 다발적으로 금액 필드에 접근하여 심각한 문제를 야기할 수 있다는 말이다. 만약에 정말 필요한 상수로 사용할 생각이라면 필드를 public static final 을 통해서 공개가 가능하다. private class Item .. 2023. 2. 7. 이전 1 다음