As I said in the comment you were commenting on, there is a JVM and a Mono VM. The IDE is running as two processes, one on the JVM (running the IntelliJ shell) and one on, currently, a Mono VM (running the ReSharper engine). They use IPC with a custom protocol to send UI events and ViewModel updates between the processes.
Frontend is in Java (and Kotlin), indeed, as it's a part of the IntelliJ platform. However, the backend that actually provides IDE features for C# is written in .NET. The backend is actually the same ReSharper logic that runs in Visual Studio but in headless mode.