Please share some examples/code snippets. I read the code but my understanding is not that clear.
You can picture them all as streams.
emit
into it (can subscribe to it but also emit)Observable and Subject: If you emit a value and subscribe to one of them after that, you'll not get the latest value emitted, you'll have to wait for a new value to be emitted before you're notified
ReplaySubject and BehaviorSubject: Even if you emit a value and then subscribe to one of them, you'll directly get the latest emitted value as soon as you subscribe.