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. Additional aspects of the use of history bookmarks, navigation issues such as open URL, back, forward, goto, links on a page, special buttons on a page, navigation using graphic maps, within the page scrolling, within the screen with multiple browser windows etc.