CS2200 Software Development Lecture: Java Platform. Lecturer: Adrian O’Riordan Course Webpage: http://www.cs.ucc.ie/~adrian/cs2200.html. Java Programming Language.
Lecturer: Adrian O’Riordan
Course Webpage: http://www.cs.ucc.ie/~adrian/cs2200.html
1994. First made public as Oak programming language developed under James Gosling at Sun as part of a project codenamed Green. As a prototype, Patrick Naughton wrote a small web browser, WebRunner, later renamed HotJava. Oak was renamed Java.
1995. Achieved prominence following the announcement at 1995's SunWorld that Netscape would be including support for it in their Navigator browser.
1996. Initial release JDK 1.0.
1997 JDK 1.1 Released. Adds inner classes to core language. Also adds Java Beans, JDBC and RMI
1998. Version 1.2 introduces major changes including Swing graphical API, This and subsequent releases branded Java 2. JVM has a JIT compiler for the first time. Collections framework added.
2000. J2SE 1.4 released. Adds assert keyword, regular expressions, and Java WebStart among changes.
2004. Major new release Java 5 (Release 1.5) codename Tiger introduces a number of new features.
2006 Java SE 6 released. Performance improvements. GUI improvements
Sun has defined three platforms targeting different application environments and segmented many of its APIs so that they belong to one of the platforms. The platforms are:
Programmers can create Java applications using simple tools such as editors, and command line tools such as provided by Sun’s JDK (Java SE Development Kit).
Basic tools include:
Many other tools for e.g. security, networking, monitoring
†a model of computation in which the computer's memory takes the form of one or more stacks - data structures based on the principle of Last In First Out (LIFO)
HotSpot contains class loader, bytecode interpreter, Client and Server runtime compilers, garbage collectors, a set of supporting runtime libraries.
Many JVM implementations, e.g.
Exists programming languages for the Java virtual machine aside of Java itself, e.g. AspectJ, JRuby, Groovy