Javaの区別がよくわからない

Javaの勉強中。
プログラム自体がほとんどわからない状態からのスタートなので苦戦しているんだけど、それ以上にJavaのいろんな区別がよくわからない。

例えば、

とか色々言葉が出てくるんだけど、何がどう違うのか。

結局Webアプリケーションを作るならどれになるんだろう?

誰か教えてください。