How Java Works Internally