Earlier today, a coworker asked what exactly Apex was. My lazy answer for those unfamiliar with Salesforce development is usually "it's like Java, but for Salesforce.com," to which he replied "is it built on Java?"
I realized that I truly do not know - a few searches turn up a lot of answers such as "Apex itself is based on Java" but I realized "based on" might be referring to the syntax and not the actual language that it compiles to. The syntax and conventions are obviously very similar, but was this just for familiarity's sake?
tl;dr - what does Apex compile into on the Salesforce provider side?
"common.apex.runtime.bytecode"in your favourite search engine for hints at the internals. All sorts of exceptions show up. Like
common.apex.runtime.bytecode.BytecodeExecutionContext cannot be cast to common.apex.runtime.impl.Execution.