java kodları ve çalıştırıldığı donanım katmanı arasındaki ara katman. bunun sayesinde platform bağımsızlık sağlanır. java programı kendine muhatap olarak jvm'i alır. bu güzelim ortamın içine tek sıçan microsoft olmuştur. (bkz: microsoft visual j plus plus)
java teknolojisinin dayandığı şeydir diyebiliriz. java sanal makinesi standartlaşmayı sağlayan yegane şeydir şöyle ki :
efenim mesela bir tamsayının kodlanmasını göz önüne alalım. javada bir tamsayı(int) 32 bit ile ifade olunur. ee nolmuş diyceksiniz zaten günümüzde işlemciler 32 bit. iyi de bu java programı 8 veya 16 bitlik bir mikrodenetleyici üzerinde çalışacaksa ? (8 - 16 bitlik derken işlemcinin bir defada adresleyebildiği veri bloğundan bahsediyoruz) işte bu durumda jvm devreye girer. bakar ki üzerinde çalıştığı donanım örneğin 16 bitlik , 32 bitlik kodlama yapabilmek için iki blok ayırmak ve bunları bir tek sayı gibi işlemek üzere donanıma hükmeder. bu basit örneğin dışında platformdan platforma değişiklik gösterebilecek herşeyi standartlştırır. baya ram yer ee ama baya da iş yapar..