Java is a lot better source (and target) to optimize for than JS. It's quite bit more work to have all numbers being floating point by default.
My understanding is that a statically typed language is inherently faster than a dynamically typed one, no matter how much you optimise the latter. The JS interpreter/VM simply has a lot more work to do than the JVM.
No. Well…it’s complicated.
I think WASM will be the mainstream for frontend before that happens... But you never can't predict the future!