Aslında bunun syntax değil semantic farklılığı olarak değerlendirilmesi lazım diye düşünüyorum.

Sınıfa benzer bir hali var mı? int olarak tanımlanmış ve int dönen bir method o incelersen. Bir kod 0 dönüyorsa başarıyla çalışmış bitmiş anlamına gelir, 0 harici dönüşler error anlamına gelir, yazılan program, çağrılan bir script 0 dönüyorsa iyidir yani.
Java'da çalışan bir program için illa bir tane sınıfın, bir tane de main methodunun olması lazım. C++'da classa gerek yok gördüğün üzere.
C++ daha low bir dil olduğu için işlemleri sana bırakıyor. Kodunda input alacaksan ya da ekrana yazdıracaksan iostream kütüphanesini import etmeni bekliyor. Java ise bunu core sınıflar olarak görüp sen yapmadan otomatikman import eder. Java programında bu tür bir işlem yapmasan da gereksiz yere bir şeyler import edilmiş oluyor, pythonun javaya nazaran sağladığı kolaylık gibi, javanın sağladığı kolaylıklardan biri, aynı zamanda dezavantajlardan da biri anlayacağınız.