Java Fundamentals Tutorial

ProTech's Java Fundamentals Tutorial

Aleksandar Gargenta


1. Overview of Java

Introduction to Java Development

1.1. History of Java

1991

Stealth Project for consumer electronics market (later Green Project)

Language called Oak then renamed to Java

1993

First Person Project for set-top boxes

1994

LiveOak Project for new OS

HotJava Web Browser

1995

Sun formally announces Java at SunWorld

Netscape incorporates support for Java – Internet Explorer add support for Java

1996

JDK 1.0 Basic support for AWT

1997

JDK 1.1 JavaBeans, RMI, AWT, JDBC, servlets, JNDI, JFC, EJB

1998

Java 1.2 Reflection, Swing, Java Collections Framework, plug-in, IDL

Becomes known as Java 2, Port to Linux, Java Community Process

1999

Jini, PersonalJava, Java 2 Source Code, XML support, JavaServer Pages, Java Editions (J2ME, J2SE, J2EE)

2000

J2SE 1.3 HotSpot, RMI/CORBA, JavaSound, JNDI , JPDA

2001

Java Connector Architecture, patterns catalog, Java Web Start 1.0, J2EE 1.3

2002

J2SE 1.4 assert, regular expressions, exception chaining, NIO, logging, image I/O, integrated XML/XSLT, integrated Web Start, integrated JCE, JSSE, JAAS, J2EE 1.4 beta (Web Services)

2004

J2SE 1.5 (Java 5) Generics, auto-boxing, metadata (annotations), enums, “for-each”

2005

Java 10th Anniversary

2006

Java 1.6 (Java 6)

1.2. What is Java?

Java Technology consists of:

  • Java Language
  • Java Platform
  • Java Tools

Figure 1. Java technology

images/JDK.png

Java language is a general-purpose programming language. It can be used to develop software for mobile devices, browser-run applets, games, as well as desktop, enterprise (server-side), and scientific applications.

Java platform consists of Java virtual machine (JVM) responsible for hardware abstraction, and a set of libraries that gives Java a rich foundation.

Java tools include the Java compiler as well as various other helper applications that are used for day-to-day development (e.g. debugger).

1.3. Why Java?

  • Object oriented
  • Interpreted
  • Portable
  • Simple yet feature-full
  • Secure and robust
  • Scalable
  • High-performance multi-threaded
  • Dynamic
  • Distributed

Object Oriented
Everything in Java is coded using OO principles. This facilitates code modularization, reusability, testability, and performance.
Interpreted/Portable
Java source is complied into platform-independent bytecode, which is then interpreted (compiled into native-code) at runtime. Java’s slogan is "Write Once, Run Everywhere"
Simple
Java has a familiar syntax, automatic memory management, exception handling, single inheritance, standardized documentation, and a very rich set of libraries (no need to reinvent the wheel).
Secure/Robust
Due to its support for strong type checking, exception handling, and memory management, Java is immune to buffer- overruns, leaked memory, illegal data access. Additionally, Java comes with a Security Manager that provides a sand-box execution model.
Scalable
Thanks to its overall design, Java is scalable both in terms of performance/throughput, and as a development environment. A single user can play a Java game on a mobile phone, or millions of users can shop though a Java-based e-commerce enterprise application.
High-performance/Multi-threaded
With its HotSpot Just-in-Time compiler, Java can achieve (or exceed) performance of native applications. Java supports multi-threaded development out-of-the-box.
Dynamic
Java can load application components at run-time even if it knows nothing about them. Each class has a run-time representation.
Distributed
Java comes with support for networking, as well as for invoking methods on remote (distributed) objects through RMI.

1.4. Java After 15 years

  • 6.5+ million software developers
  • 1.1+ billion desktops with Java installed
  • 3+ billion mobile devices with support for Java
  • Embedded devices based on Java: set-top boxes, printers, web cams, games, car navigation systems, lottery terminals, medical devices, parking payment stations, etc.

Source: http://www.java.com/en/about/