The stack in Java allows us to access data in a last in, first out manner and in the best case scenario, both of these operations are performed in constant time. In this course, you'll get started by examining the behavior and characteristics of the stack data structure. The stack is often referred to as LIFO - or last in, first out - since the last element that you push on to a stack is the first element that you access. You'll learn how you can implement the stack data structure using arrays and linked lists and how to assess the trade-offs between these two implementations. Lastly, you'll see how to write code to perform common operations on a stack such as push(), pop(), and peek() and how to assess the running time for each of these operations.