自分はメインでC#を使っているのですが、とある理由でJavaもやらないといけなくなったのでまず両者の違いを知る意味も含めて簡単にまとめてみます。(適切ではないかもしれない) C#とは オブジェクト指向言語で、マイクロソフトの提唱する.NET Frameworkという実行環境での実行を前提とする。 メモリ管理 .NET Frameworkは自動メモリ管理で、ガベージコレクション(GC)が使われているためメモリを明示的に開放する処理が必要ない。 Javaも同様である。(C++は手動でメモリ管理する必要あり) これは仮想実行環境(VES)で提供される。 C# Java 実行環境 .Net Frameworkなど JRE(Java Runtime Environment) 仮想実行システム CLR(共通言語ランタイム) JVM(Java Virtual Machine) 共通中間言語 CIL バイ