Stacks are commonly used data structures that follow the LIFO (last in, first out) principle. They can be implemented using arrays or linked lists. Operations like push add an element to the top of the stack and pop removes an element from the top. Stacks have many applications in computing including implementing function calls, parsing expressions, and undo operations.