title: Observable that stores last value, but cannot push new ones?
body: <p>Let's say I have an <code>Person</code> interface, that have an <code>name</code> observable:</p>
  <pre><code>interface Person {
    Observable&lt;String&gt; name;
  }
  </code></pre>
  <p>And it's implementation:</p>
  <pre class="lang-java prettyprint-override"><code>class David implements Person {
    Observable&lt;String&gt; name = BehaviorSubject&lt;&gt;.createDefault(&quot;David&quot;);
  }
  </code></pre>
  <p>And now there is a problem, because I can't get current value of <code>name</code> observable:</p>
  <pre><code>class Main {
    public static void main(String[] args) {
      Person person = PersonFactory.create();
      System.out.println(??person.name.currentValue??);
    }
  }
  </code></pre>
  <p>I don't want to expose the name as BehaviorSubject in my interface, because then everyone would be able to change the name, which isn't what I want.</p>
  <p>I kind of understand a logic of Observables, so I know they aren't designed to store any value. So what is &quot;an immutable observable with current value&quot; in RxJava?</p>
  <p>In Android there is a <code>LiveData</code> and <code>MutableLiveData</code>. To my understanding <code>MutableLiveData</code> is the equivalent of <code>BehaviorSubject</code>, so what is the equivalent of <code>LiveData</code> in RxJava?</p>