자료구조 스택
●스택(Stack)

●자바에서 스택은 어떻게 사용할까?
Stack이라는 클래스를 사용할 수 있지만, Deque 인터페이스 구현체를 사용하는 것이 권장이 됨 왜냐하면, Stack 클래스는 내부적으로 Vector를 상속 받고 있기 때문, Vector를 상속받은 Stack은 인덱스를 통한 접근, 삽입, 제거 등이 실질적으로 가능하며 이는 후입선출 특징에 맞지 않기 때문에 개발자가 실수할 여지가 있음
또한, Vector의 메소드들은 synchronized로 구현되어 있어 멀티 스레드 환경에서는 동기화의 이점이 있으나, 단일 스레드 환경에서는 불필요한 동기화 작업으로 인해 성능 측면에서 좋지 않음
Deque 인터페이스는 후입선출의 특성을 완전히 유지하면서도 동기화 작업을 가지는 구현체와 그렇지 않은 구현체를 선택할 수 있으며, 이는 개발자가 필요에 따라 동기화 작업의 오버헤드를 회피하고 성능을 최적화할 수 있도록 함