src/main/java/io/reactivex/subjects/ReplaySubject.java
@CheckReturnValue
    @NonNull
    public static <T> ReplaySubject<T> create() {
        return new ReplaySubject<T>(new UnboundedReplayBuffer<T>(16));
    }
@CheckReturnValue
    @NonNull
    public static <T> ReplaySubject<T> create() {
        return new ReplaySubject<T>(new UnboundedReplayBuffer<T>(16));
    }
Creates an unbounded replay subject.
<p>
The internal buffer is backed by an {@link ArrayList} and starts with an initial capacity of 16. Once the
number of items reaches this capacity, it will grow as necessary (usually by 50%). However, as the
number of items grows, this causes frequent array reallocation and copying, and may hurt performance
and latency. This can be avoided with the {@link #create(int)} overload which takes an initial capacity
parameter and can be tuned to reduce the array reallocation frequency as needed.

@param <T>
the type of items observed and emitted by the Subject
@return the created subject