C++ is quite possibly one of the worst possible languages you could choose to do web development in, but it is supported on DreamHost, for what it's worth.
C# is not supported on DreamHost. As you've surmised, it's primarily a Microsoft technology (although some Linux implementations, such as Mono, do exist), and as such isn't well-suited for use on our servers.
Java is partially supported on DreamHost. Most Java web applications run through a servlet engine such as Apache Tomcat or Jetty, which we do not currently support on DreamHost (although you may be able to set up and run one yourself on a VPS or Dedicated Server). Java applets require no server-side support, though, and as such they work just fine.