code: @CheckReturnValue
      @BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
      @SchedulerSupport(SchedulerSupport.NONE)
      public final Single<T> last(T defaultItem) {
          ObjectHelper.requireNonNull(defaultItem, "defaultItem");
          return RxJavaPlugins.onAssembly(new FlowableLastSingle<T>(this, defaultItem));
      }
docs: Returns a Single that emits only the last item emitted by this Flowable, or a default item
  if this Flowable completes without emitting any items.
  <p>
  <img width="640" height="305" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/lastOrDefault.png" alt="">
  <dl>
  <dt><b>Backpressure:</b></dt>
  <dd>The operator honors backpressure from downstream and consumes the source {@code Publisher} in an
  unbounded manner (i.e., without applying backpressure).</dd>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code last} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  
  @param defaultItem
  the default item to emit if the source Publisher is empty
  @return the new Single instance
  @see <a href="http://reactivex.io/documentation/operators/last.html">ReactiveX operators documentation: Last</a>