java는 JVM이라는 가상 machine 위에서 동작합니다. 즉, 프로그램 수행에 있어 하나의 stack이 더 있는 것입니다.
java
-----
JVM
-----
OS
반면에 C언어의 경우는 특정 OS에 종속적입니다.
C
--
OS
언어 구조상의 특징이라고 할 수 있습니다. ^^ 장점과 단점이 존재하겠죠?
왜 이런 구조가 되었는지에 대해서는 [IT인물열전] 자바의 아버지, 제임스 고슬링 요 기사를 보시면 조금은 참조가 될 것입니다.
http://it.donga.com/20869/