Io sono passato a java dal delphi, perché il delphi mi sembrava troppo complicato per le conoscenze che avevo e avevo scelto java perché è molto più semplice e non me ne pento.
Più è astratto, più è potente, più è complesso(punto di vista).
Il main ce anche in c++, ed è un metodo lanciato automaticamente dalla JVM quando avvii l'applicazione. Il main ti serve praticamente se vuoi far partire l'applicazione in java, altrimenti ti da errore e non parte. Ogni variabile chiamata da un generico metodo static deve essere statica se non è locale.