멀티 스레드 환경에서 원자성을 보장하는 Integer 변수가 필요하다면 대체로 AtomicInteger를 많이 사용한다. 그런데 AtomicInteger를 클래스 내부 변수에 추가해 사용하면 클래스 객체를 만들 때 마다 내부에 AtomicInteger 객체도 만들어지므로 이중으로 객체가 생성된다고 볼 수 있다. 예를 들면 아래와 같다. public class BaseClass { private final AtomicInteger counter = new AtomicInteger(); public add() { counter.getAndIncrement(); } } AtomicInteger는 getAndIncrement, getAndDecrement 같은 함수를 제공하며, 멀티 스레드 어플리케이션에서 카운..