src/main/java/io/reactivex/subjects/BehaviorSubject.java
@CheckReturnValue
    @NonNull
    public static <T> BehaviorSubject<T> createDefault(T defaultValue) {
        return new BehaviorSubject<T>(defaultValue);
    }
@CheckReturnValue
    @NonNull
    public static <T> BehaviorSubject<T> createDefault(T defaultValue) {
        return new BehaviorSubject<T>(defaultValue);
    }
@ CheckReturnValue @ NonNull public static < T > BehaviorSubject < T > createDefault ( T defaultValue ) { return new BehaviorSubject < T > ( defaultValue ) ; }
Creates a {@link BehaviorSubject} that emits the last item it observed and all subsequent items to each
{@link Observer} that subscribes to it.

@param <T>
the type of item the Subject will emit
@param defaultValue
the item that will be emitted first to any {@link Observer} as long as the
{@link BehaviorSubject} has not yet observed any items from its source {@code Observable}
@return the constructed {@link BehaviorSubject}
Creates a { @link BehaviorSubject } that emits the last item it observed and all subsequent items to each { @link Observer } that subscribes to it .