C and C++ allow developers direct access to low-level features of the underlying operating system , giving skilled programmers the opportunity to write highly optimized code. Since Java runs within a virtual machine, access to such low-level functions is abstracted.