Replit neymiş diye baktım, cloudda containerlarla çalışan bir kodlama platformu diye anladım. Yani java hello world programın için sana java kodu çalıştıracak bir ortam yaratıp gerisini sana bırakıyorlar diye özetleyebiliriz, keza python ya da başka bir app de benzer şekilde. Disk kullanımı, hız farkı vs. replit sebepli değil muhtemelen.
Python interpreterı python kodunu satır satır okur ve çalıştırır. .py uzantılı dosyanda print "hello world" yazdığını görünce yazdırır.
Java kodu ise önce compile edilir, java compilerı senin kodundaki ana classı, class içindeki main methodunu, main içindeki system.out.println("hello world"); kodunu vs. güzelce okur ve bytecode denen, java virtual machine tarafından anlaşılabilecek bir hale dönüştürür. Kod çalıştırılacağı zaman JVM bu bytecodeu okur, bilgisayarın anlayabileceği makine koduna dönüştürür ve kod çalışmış olur. Compile edilmiş dosyalar da diskte tutulur, yani hem senin program.java diye source kodun hem de program.class diye bytecode dosyaların yer kaplar. Compiler bu bytecodeu oluştururken javadaki pek çok temel library'yi de compile edilmiş kodun çalışabilmesi için içine ekler, sen sadece "hello world" yazdıracak bir kod olarak düşünsen de javadaki object, class, int, string vb. yapılar, veri tipleri de compile işleminde .class dosyasına eklenir (programına import blabla diye başka libraryler eklersen onlar da eklenecektir, bu demin saydıklarım default olarak eklenen şeyler).
Özetle,
pythonda sadece .py dosyasındaki source kod var, çalıştırınca o satır okunuyor ve ekrana yazdırılıyor.
java önce .java dosyasındaki source kodu okuyup compile işlemi yapıyor, .class dosyası oluşturuyor, sonra .class dosyasını jvm alıp bu neymiş diye bakıyor, ekrana yazdırma komutunu görünce ekrana yazdırıyor, boyut farkı ve neden yavaş çalıştığı bu şekilde açıklanabilir.
not: Aslında jvm compile edilmiş bir kodu pythonun satır satır okuyup işlemesinden daha hızlı çalıştırır bu arada, hello world ölçeğinde bir programda ise tam tersi bir sonuçla karşılaşırsın.