A self-contained Java microkernel can be built in less than 220 kilobytes. Java is intended for writing programs that will be reliable. A lot of emphasis goes on early checking for potential problems and avoiding situations which are error prone. One example of this is Java's pointer model. No more pointer arithmetic, Java has true arrays.
Programmers can worry less about corrupting memory.
This helps make Java Robust. The pointer model described above does not allow applications to gain access to object data structures to which they have no access. Combined with public-key encryption techniques, this helps the robustness and secureness of Java. Networked environments contain lots of different types of equipment. To build a system which can be used to develop code which runs on all of these, it's got to be both architecture neutral and portable.