最近javaを触り始めようとしているものです。4個ほど質問があります。

将来的に ユーザー管理を最低限備えたかなりずっしりとしたアプリケーションを作成するのが目的で 値を共有をするためのアクセスカウンターを制作しようと考えているのですが、(1)増やしたカウンターを保持しておくためにはどういった方法があるのでしょうか。

知り合い伝にその関係で働いているそれなりの腕の人間だという方を紹介して頂きました。
その方からapache-tomcatやantといったアプリケーションを強く進められたのですが、そもそも(2)tomcatとは一体なんなんでしょうか。
説明サイトを何個かみたのですが その概要が一切伝わって来ないため、困っています。
触ってみたところ、tomcatというサーバーがあり、そこからantによってビルド、デプロイされたアプリケーションをサーバー内の一つのエリアとして保持し、そのtomcat上のアプリで変数やインスタンスが共有化できるんでしょうかね

その方が過去にそれらを使用し作成したサンプルにと用意していただいたソースを拝見したのですが、SQLサーバーといった物は一切使用せずに変数を共有しているようでした。
こういった作りの場合サーバーが停止した場合、そのデータは何処へ行ってしまうのか凄い不安なのですが、(3)サーバー停止時にもどこかしらに保持されるものなんでしょうか

その人曰く”大小問わず javaではこういう管理が普通”だと。私は今まで そういったデータを管理する際には必ずDBのサーバーやセーブデータと言った形で値を共有していたのですごく困惑しています。
本人に直接聞きたい所ではありますが、その方が理解せずに色々な話をしているように見えたので あまり突っ込んだ話は聞かなかったのですが (4)そういったアプリケーションの作り方が本当にjavaでは普通なのでしょうか。

長い上に”そんな事知るか”と一蹴されそうな内容で本当にすみませんが、一ヶ月程悩んでも答えが出なかったので 質問させて頂きました。
本質的な質問は最初の一つ(1)の部分ですが、分かる方がいましたら2-4の方もよろしくおねがいします。