<p>This is probably a very simple question, but what is the technical term for this class of language?  </p>

<p>They use an "intermediate" assembly type language which is sent through the JVM or CLR.  They both are object oriented and they both depend on an intermediary such as the Java Virtual Machine or the Common Language Runtime to compile into native machine laguage.  </p>

<p>Unlike Asm/C/C++ they don't compile directly into native machine language and require intensive memory allocation knowledge.  They both use garbage collection.  </p>

<p>Is there a technical term which seperates Java and C# from C++?  </p>

A key difference between C++ and .NET/Java is the automatic reclaiming of memory that is no longer required.  This is known as
garbage collection
.  For this property, they are known as
managed
platforms.
Both Java/.NET delay the compilation of bytecode into native code until the last minute.  For this property they are known as
JIT-compiled
(Just In Time).
The C#/Java/C++ languages are known as
imperative, object-oriented
languages.
The type system in both .NET and Java only allows verifiable invocation of methods.  For this property they are known as
statically typed
.
C#/Java/C++ are
Turing complete
, meaning that, in practice, they can produce any calculation.