Java was initially designed to replace C++, but now has four distinct primary goals: one, it is object oriented-software is designed around objects it manipulates as opposed to the actions; two, it's independent of the host platform-code and runs on a virtual machine with libraries that can access resources of host machines; three, it provides libraries and facilities for networking; and four, supports the execution of code from a remote source allowing for safe access to network files.