# Class SynchronizedStack<T>

java.lang.Object
org.apache.tomcat.util.collections.SynchronizedStack<T>

Type Parameters:
  `T` - The type of object managed by this stack

Direct Known Subclasses:
  `AbstractProtocol.RecycledProcessors`

public class SynchronizedStack<T> extends Object
This is intended as a (mostly) GC-free alternative to `Stack` when the requirement is to create a pool of re-usable objects with no requirement to shrink the pool. The aim is to provide the bare minimum of required functionality as quickly as possible with minimum garbage.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT_SIZE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SynchronizedStack()`
  `SynchronizedStack(int size, int limit)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  `T`
  `pop()`
  `boolean`
  `push(T obj)`
  `void`
  `setLimit(int limit)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_SIZE

    public static final int DEFAULT_SIZE
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### SynchronizedStack

    public SynchronizedStack()

  - ### SynchronizedStack

    public SynchronizedStack(int size, int limit)

- ## Method Details

  - ### push

    public boolean push(T obj)

  - ### pop

    public T pop()

  - ### clear

    public void clear()

  - ### setLimit

    public void setLimit(int limit)