1. Introduction to Java
Programming Language
By
Norazah Yusof
Software Engineering Department
Faculty of Computer Science and I f
F lt f C t S i d Information Systems
ti S t
1
3. Origin of Java
In 1991, Java was developed by a team led by James
I 1991 J d l db t l db J
Gosling and Patrick Naughton at Sun Microsystems.
Originally named Oak ‐ Gosling liked the look of
Originally named Oak Gosling liked the look of
an oak tree that was outside his window at Sun.
3
4. History of Java
The challenge: For use in embedded consumer
Th h ll F i b dd d
electronic appliances ‐ the cable TV switchboxes.
Different manufacturers may choose different central
Different manufacturers may choose different central
processing units (CPUs).
The cable TV switchboxes devices do not have a lot of
power or memory.
The language;
Had to be small and generate very tight code.
Not be tied to any single architecture.
4
6. History of Java
In 1994, Java was used to develop a Web browser,
I 1994 J dt d l W bb
named HotJava.
The browser able to download and run small Java
The browser able to download and run small Java
programs over the internet, known as the applets.
Capable to display animation and interact with the user.
In 1995, Netscape incorporated Java technology
into its Netscape browser.
Then, other Internet companies followed . . .
6
7. Java Capabilities
Java is a full‐featured and general‐purpose
J i f ll f t d d l
programming language that is capable of
developing a robust mission critical applications for:
developing a robust mission‐critical applications for:
Desktops
Servers
Mobile devices
The Java programming language is a relatively high‐
level language, class‐based and object‐oriented.
7
10. Application Program Interface
Java application program interface (API) contains
the predefined classes and interfaces for developing
Java programs.
In 1995, Java 1.0 was introduced.
With 211 classes and interfaces.
In December 1998, Java 2 platform was announced.
Applies to current Java technology.
l h l
10
12. Java API
There are 3 editions of the Java API:
Java 2 standard edition (J2SE)
Java 2 standard edition (J2SE)
• Client‐side standalone applications or applets.
Java 2 Enterprise Edition (J2EE)
p ( )
• Server‐side applications, such as Java servlets and
JavaServer Pages.
Java 2 Micro Edition (J2ME)
Java 2 Micro Edition (J2ME)
• Mobile devices, such as cell phones or pda.
12
14. J2SE versions and JDK
There are many versions of J2SE.
Sun releases each version of J2SE with a Java
Development toolkit (JDK).
Development toolkit (JDK)
JDK consists of a set of separate programs for
developing and testing Java programs.
developing and testing Java programs
Each of which is invoked from a command line.
For J2SE 5.0, the Java development toolkit is called
For J2SE 5 0 the Java development toolkit is called
JDK 5 – formerly was known as JDK1.5.
The latest version is J2SE 6.
14
15. Java Development Tools
A software that provides an integrated development
A software that provides an integrated development
environment (IDE) for rapidly developing Java programs.
Java development tools on the market:
p
NetBeans by Sun (open source)
JBuilder by Borland
Eclipse by IBM (open source)
Other useful tools:
Code warrior by Metroworks
TextPad Editor
JCreator LE
Jedit
BlueJ
15
16. Byte‐Code and the
Java Virtual Machine (JVM)
i l hi ( )
The Java compiler translates Java programs into
byte‐code.
Once compiled to byte‐code, a Java program can be used
on any computer, making it very portable machine.
The Java Virtual Machine (JVM) translates the byte
The Java Virtual Machine (JVM) translates the byte
code into machine language.
16
17. Portability
Portable means that a program may be written
on one type of computer and then run on a wide
variety of computers, with little or no
y p
modification.
Java byte code runs on the JVM and not on any
particular CPU therefore, compiled J
ti l CPU; th f il d Java
programs are highly portable.
JVMs exist on many platforms:
Windows
Macintosh
Linux
17
18. Portability
Byte code
(.class)
Java Virtual
Java Virtual
Machine for Windows
Machine for Unix
Java Virtual Java Virtual
Machine for Linux
M hi f Li Machine f M i t h
M hi for Macintosh
18