Java is a general-purpose programming language that is both compiled and interpreted. It allows developers to "write once, run anywhere," meaning that Java code can run on any device that supports a Java Virtual Machine (JVM), without needing to be recompiled. The key features of Java include being simple, object-oriented, robust, secure, portable, and high-performance. Java code is first compiled into bytecode, which can then be executed by a JVM on various operating systems like Windows, Linux, and macOS.
2. 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.
Vibrant Technology & Computers
3. 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
Vibrant Technology & Computers
4. 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
Vibrant Technology & Computers
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) Vibrant Technology & Computers
7. 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
Vibrant Technology & Computers
8. 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
– …
Vibrant Technology & Computers
13. 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
Vibrant Technology & Computers
14. virtual machine
execution model of Java
source
(text) compiler
CPU
bytecode
interpreter
bytecode
interpreter
dynamic
loading
JIT
compiler
JIT
compiler
compiled
code
compiled
code
JVML
verifier
bytecode
(aka. class file)
Vibrant Technology & Computers
15. 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
Vibrant Technology & Computers
16. 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 resource-
constrained devices.
• JCVM (Java Card)
– Smart cards.
– It has least VM features.
• And there are also lots of other JVMs
Vibrant Technology & Computers
21. Create a Java Source File
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Vibrant Technology & Computers
22. Compile and Run
• Compile
– javac HelloWorld.java
• One file named HelloWorld.class is
created if the compilation is succeeds.
• Run
– java HelloWorld
Vibrant Technology & Computers
23. 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.
class HelloWorld
{ public static void main (String[] args)
{ System.out.println(“Hello World!”);
}
}
Each program is enclosed in a class definition.Each program is enclosed in a class definition.
main() is the first method that is run.main() is the first method that is run.
The notation class.method orThe notation class.method or
package.class.method is how topackage.class.method is how to
refer to a public method (withrefer to a public method (with
some exceptions).some exceptions).
Syntax is similar to C - braces forSyntax is similar to C - braces for
blocks, semicolon after eachblocks, semicolon after each
statement. One difference: upperstatement. One difference: upper
and lower case matter!and lower case matter!Vibrant Technology & Computers
25. 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);
}
}
Vibrant Technology & Computers
26. Compile the Source File
• javac HelloWorldApplet.java
• One file named HelloWorldApplet.class is
created if the compilation is succeeds.
Vibrant Technology & Computers
27. 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>
My Java applet says:
<applet code=“HelloWorldApplet.class” width=150 height=25>
</applet>
</body></html>
Name of your applet class.
The browser will use a rectangle of width 150 pixels andThe browser will use a rectangle of width 150 pixels and
height 25 pixels to display the applet within the other html.height 25 pixels to display the applet within the other html.
Vibrant Technology & Computers
28. 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.
import java.awt.Graphics;
public class HelloWorldApplet extends java.applet.Applet
{ public void paint (Graphics g)
{ g.drawString(“Hello World!”, 5, 25);
}
}
The import statement allows the use of methodsThe import statement allows the use of methods
from the Graphics class without the dot notation .from the Graphics class without the dot notation .
The paint method displays a graphics object on theThe paint method displays a graphics object on the
screen - one of the standard methods that takes thescreen - one of the standard methods that takes the
place of main for applets.place of main for applets.
Puts this as a subclass of Applet.Puts this as a subclass of Applet.
Vibrant Technology & Computers
29. 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 …
Vibrant Technology & Computers