お使いの Windows のバージョンによって異なります。ただし、基本的なメカニズムでは、すべての .NET アセンブリに5バイトのアンマネージ コードが含まれます。EXE の場合、c:\windows\system32\mscoree.dll の _CorExeMain() への JMP 命令です。次に、CLR を初期化し、プログラムの Main() メソッドを開始するという面倒な作業を行います。
それ以降のバージョンの Windows には、.NET アセンブリの形式を認識し、mscoree.dll と直接統合するローダーがあります。32 ビットの実行可能ファイルが 64 ビット プロセスを開始できるという非常に珍しい機能をサポートするために必要です。詳細については、この回答を参照してください。
これは 10,000 フィート ビューです。.NET と Java の本質的な違いは、.NET アセンブリにはアンマネージ コード (JMP など) とデータ (アセンブリ マニフェストと IL) の両方を含めることができることです。Java .class または .jar ファイルは純粋なデータです。