You are on page 1of 29

Getting Started

What is Java?
A programming language
Fully buzzword-compliant:
A simple, object oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded, dynamic language. From: Java: An Overview James Gosling, Sun Microsystems, February 1995.

What Else is Java?


According to Gosling:
An environment A platform A way of thinking ok, whatever

Java is a phenomenon
Took the world by storm in 1995 when introduced with the HotJava web Browser Quickly integrated with Netscape browser

Some History
1993 Oak project at Sun small, robust, architecture independent, Object-Oriented, language to control interactive TV. didnt go anywhere 1995 Oak becomes Java Focus on the web 1996 Java 1.0 available 1997 (March) Java 1.1 - some language changes, much larger library, new event handling model 1997 (September) Java 1.2 beta huge increase in libraries including Swing, new collection classes, J2EE 1998 (October) Java 1.2 final (Java2!) 2000 (April) Java 1.3 final 2001 Java 1.4 final (assert) 2004 Java 1.5 (parameterized types, enum, ) (Java5!) 2005 J2EE 1.5

What is Java?
Java is a general-purpose, high-level programming language.
The features of Java
Java program is both compiled and interpreted. Write once, run anywhere

Java is a software-only platform running on top of other, hardware-based platforms.


Java Virtual Machine (Java VM) The Java Application Programming Interface (JAVA API)

Features of Java
Simple Architecture-neutral Object-Oriented Distributed Compiled Interpreted Statically Typed Multi-Threaded Garbage Collected Portable High-Performance Robust Secure Extensible Well-Understood

How Will Java Change My Life?


Get started quickly Write less code Write better code Develop programs faster Avoid platform dependencies with 100% pure Java Write once, run anywhere Distribute software more easily

Java Applications and Java lets


Stand-alone Applications
Just like any programming language

Applet
Run under a Java-Enabled Browser

Midlet
Run in a Java-Enabled Mobile Phone

Servlet
Run on a Java-Enabled Web Server

Switchlet

Java Developer's Kit (I)


Java's programming environment
Core Java API compiler interpreter debugger dis-assembler profiler more...

Java Developer's Kit (II)


Java Compiler Java Interpreter

Java Source <file>.java Java Dis-assembler

Java Bytecode <file>.class

Prepare and Execute Java


Source Computer Java Program Compilation Java ByteCode

Internet Verification Your computer Java ByteCode Execution Restricted Env.

Write Once, Run Anywhere

ByteCode: Food for the VM


For most languages, compilation produces machine code Java compilation produces bytecode
Intermediate code readable by the VM Transferable across the Internet as applets

VM interprets BC into instructions


Partly responsible for performance lag

ByteCode produced on any platform may be executed on any other platform which supports a VM

execution model of Java


source (text) compiler bytecode (aka. class file) JVML dynamic loading virtual machine bytecode interpreter verifier JIT compiler

compiled code

CPU

The JIT
Just-In-Time compiler Translates bytecode into machine code at runtime
1-time overhead when run initiated Performance increase 10-30 times

Now the default for most JVMs


Can be turned off if desired JIT can apply statistical optimizations based on runtime usage profile

Not just one JVM, but a whole family


JVM (J2EE & J2SE)
Well-known Java Virtual Machine.

CVM, KVM (J2ME)


Small devices. Reduces some VM features to fit resourceconstrained devices.

JCVM (Java Card)


Smart cards. It has least VM features.

And there are also lots of other JVMs

Java Platform & VM & Devices

Java VM and API


Java API and Virtual Machine insulate the Java program from hardware dependencies. Java API

Java API
Collection of readymade software components that provide many useful capabilities. Grouped into libraries (packages) of related components. Core API
Essentials: Object, String, Input and Output... Applets Networking Internationalization Security Software Components Object Serialization Java Database Connectivity (JDBC)

The Hello World Application

Create a Java Source File


public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }

Compile and Run


Compile
javac HelloWorld.java

One file named HelloWorld.class is created if the compilation is succeeds. Run


java HelloWorld

Since Java is object-oriented, programs are organized into modules called classes, which may have data in variables and subroutines called methods. Each program is enclosed in a class definition. main() is the first method that is run.

The Simplest Java Application: Hello,World!

class HelloWorld { public static void main (String[] args) { System.out.println(Hello World!); } }
The notation class.method or package.class.method is how to refer to a public method (with some exceptions). Syntax is similar to C - braces for blocks, semicolon after each statement. One difference: upper and lower case matter!

The Hello World Applet

Create a Java Source File HelloWorldApplet.java


import java.applet.Applet; import java.awt.Graphics; public class HelloWorldApplet extends Applet { public void paint(Graphics g) { g.drawString(Hello World!, 5, 25); } }

Compile the Source File


javac HelloWorldApplet.java One file named HelloWorldApplet.class is created if the compilation is succeeds.

Displaying your applet from a Web page.


Create an HTML file with an applet tag to display the results of drawing the applet.

<html><head> <title>Simple Hello Page</title> </head> <body> Name of your applet class. My Java applet says: <applet code=HelloWorldApplet.class width=150 height=25> </applet> </body></html>
The browser will use a rectangle of width 150 pixels and height 25 pixels to display the applet within the other html.

The Simplest Java Applet: Hello, World!


Java applets are part of the class hierarchy that can call methods to display on a screen (within the browser window). One way to draw on the screen is to call the method drawString from the standard method paint. The import statement allows the use of methods from the Graphics class without the dot notation .

import java.awt.Graphics;

Puts this as a subclass of Applet.

public class HelloWorldApplet extends java.applet.Applet { public void paint (Graphics g) { g.drawString(Hello World!, 5, 25); } }
The paint method displays a graphics object on the screen - one of the standard methods that takes the place of main for applets.

No main method
Yes, applets have a main method... ...but it's in the browser, not in your code! More about that later in the course

You might also like