- 첫번째. 설명 찾은거

자바의 경우는 자바소스-(컴파일)->바이트코드 로 변환이되구요.
이 바이트 코드는 JVM상에서 번역되어 실행됩니다. 즉, JVM상에서 바이트코드가 네이티브코드로
바뀌어 실행되게 된단 말이죠. 그러나 이 네이티브 코드가 저장되거나 하는 것은 아닙니다.

 


.NET의 경우는 .NET코드-(컴파일)->IL 로 바뀌구요. IL은 CLR에 의해 실행시
네이티브 코드로 바뀝니다. 그리고 이 네이티브 코드를 실행하며 이 네이티브 코드는 캐슁됩니다.
두번째 실행시엔 바로 이 네이티브 코드를 실행하게 되죠.

 

 

 

- 두번째. 설명 찾은거

자바vm(JVM) 과 CLR 는 말씀하신데로 동작의 원리가 거의 흡사합니다.

 

다만, 가장 큰 차이는 JVM 은 자바 런타임으로 자바만 동작할 수 있지만,
CLR 은 공용언어 런타임으로 C# 이나 기타 비주얼베이직닷넷과 같은 언어 즉 CLS 를 따르는 언어는 모두 
CLR 하에서 동작할 수 있다는 것이겠지요.