Java Technology
Java Programming Language
developed in early 1990s by James Gosling et. al. as the programming language
component of the Green Project at Sun Microsystems
originally named Oak and intended for programming networked “smart” consumer
electronics
launched in 1995 as a “programming language for the Internet”; quickly gained
popularity with the success of the World Wide Web
currently used by around 5 million software developers and powers more than 2.5
billion devices worldwide, from computers to mobile phones
Java Programming Language
design goals
– simple: derived from C/C++, but easier to learn
– secure: built-in support for compile-time and run-time security
– distributed: built to run over networks
– object-oriented: built with OO features from the start
– robust: featured memory management, exception handling, etc.
– portable: “write once, run anywhere''
– interpreted: “bytecodes” executed by the Java Virtual Machine
– multithreaded, dynamic, high-performance, architecture-neutral
Java Platform
Java Virtual Machine, or JVM: a virtual machine, usually implemented as
a program, which interprets the bytecodes produced by the Java
compiler; the JVM converts the bytecode instructions to equivalent
machine language code of the underlying hardware; compiled Java
programs can be executed on any device that has a JVM
Java Platform
Java API
Java Application Programming Interfaces, or Java API: large collection
of ready-made software components that provide many useful
capabilities; latest version has almost 4000 predefined library classes in
it, organized in packages
Java API
Examples of Java API Class Library Packages
– java.lang : basic language functionality
– java.io : input and output capabilities
– java.util : utility classes, collection classes
– java.net : network access
– java.sql : database access
– java.awt : graphical user interfaces (old)
– javax.swing : graphical user interfaces (new)
– java.beans : reusable components
Java Platform Tools and Utilities
javac - compiler
java - bytecode interpreter (JVM)
appletviewer - runs applets without a
browser
jdb - debugger
javadoc - documentation tool
jar - archive utility
Version History
May 1995 : product launching
Jan 1996 : JDK 1.0 (initial release)
Feb 1997 : JDK 1.1
Dec 1998 : J2SE 1.2 (a.k.a Java 2 Platform, codename Playground)
May 2000 : J2SE 1.3 (codename Kestrel)
Feb 2002 : J2SE 1.4 (codename Merlin, first release under the Java
Community Process as JSR 59)
Sep 2004 : J2SE 5.0 (a.k.a. Java 5, codename Tiger)
Java SE 6 (codename Mustang, JSR 270, released late 2006)
Java SE 7 (codename Dolphin, released 2011)
Java SE 8 (released 2014)
Java SE 9 (released 2017)
Java SE 10 (released March 2018)
Java SE 11 (released September 2018)
Java SE 12 (March 2019)
Java SE 13 (September 2019)
Java Platform Editions
J2SE, or Standard Edition
– basic Java platform development
J2EE, or Enterprise Edition
– development of distributed multi-tier applications for enterprise-scale use
J2ME, or Micro Edition
– development of applications targeted on resource constrained devices such
as cell phones, PDAs, and other appliances
Types of Java Programs
stand-alone applications
applets : small Java programs embedded in web pages and designed to
run on web browsers
servlets : applications that provide dynamic content capabilities for web
servers
portlets : pluggable user interface components used in web portals
MIDlets : applications designed to run on Mobile Information Devices
such as cell phones and PDAs