The way it is used with browsers uses an extension to HTML which will be generalised to cope with similar uses as Java. For example, there are no explicit pointers, instead Java uses recursive data structures. It is architecture neutral, in other words it is not solely aimed at one platform and runs on most existing hardware platforms and operating systems to be found on the desktop. It also has a platform independent graphics model. Java has exceptions and is multi-threaded.
All programming is object-oriented.
All variables are initialised to a default value, bang goes another class of problems. All the sizes of the low-level types are fully defined and are independent of the platform. The advantages of these features is that both the learner and the accomplished user can concentrate on higher-level abstractions. Advanced features can then be used in later units such as those on operating systems, or concurrent programming. The question is then on the usability issues of this form of interface.