Java programs are portable across operating systems due to three features: 1) the standardized Java language, 2) the portable class library, and 3) translating source code to portable byte code rather than platform-specific machine code. The Java language is secure through interpreter-level checks and browser-level restrictions for applets. It is also robust through features like garbage collection and bounds checking that prevent crashes. Java programs come in two flavors - standalone applications or applets for web programming. Applets have additional restrictions and predefined lifecycle methods that are automatically invoked by web browsers.