Una Pila en palabras sencillas es un lugar donde se almacenan datos, al igual que en un Array, pero una Pila tiene una filosofía de entrada y salida de datos, esta filosofía es la LIFO (Last In First Out, en español, ultimo en entrar, primero en salir). Esta estructura de datos tiene muchas aplicaciones debido a su simplicidad.
Ahora vamos a implementar esta estructura en lenguaje de programación Java, aunque debemos tomar en cuenta que esta clase Pila ya existe en el API de Java, con el nombre Stack (Pila en ingles) en el paquete java.util pero de esta clase hablamos en otro Post. Ahora implementemos desde cero, que nos ayudara a entender su funcionamiento y además porque nos lo piden en materias de estructura de datos. La versión que veremos esta muy bien estructurada y con tipo de datos primitivos, por eso utilizaremos un Array para almacenar los datos asiéndolo así no dinámica (porque no la dimensión de un vector la declaramos en cuando se la crea, es de dimisión fija).
Gráficamente a una pila la representamos así: