Download History, Features, Architecture, Hello Java Program etc

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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.
– didn’t 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
Java Bytecode
<file>.java
<file>.class
Java
Dis-assembler
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
CPU
compiled
code
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 JVM’s
– 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
The Simplest Java Application:
Hello,World!
• 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.
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 …