Java Virtual Machine (JVM)

Download Report

Transcript Java Virtual Machine (JVM)

2 types of Java programs
• Application
– Stand-alone program (run without a web browser)
– Relaxed security since user runs program locally
• Applet
– Small app embedded in a webpage
- requires a Java enabled web browser
to run app
– Enhanced security since
user goes to a web page & applet runs itself
© 2012 Pearson Education, Inc. All rights reserved.
1-1
Why Java (vs. other languages)?
• Java is “cross platform”
• Portability
– Program written for 1 type of device/HW/OS
runs on ANY OTHER device/HW/OS
without rewriting/recompiling program
© 2012 Pearson Education, Inc. All rights reserved.
1-2
Normal Compiler
1. Programmer writes program
– in high-level progr. lang. (C, C#, COBOL,…)
– using text editor
or IDE (Integrated Development Environment)
 source code file = set of programming language
statements
2. Compiler translates source code into
machine language
(=executable code: SomeProgram.exe)
© 2012 Pearson Education, Inc. All rights reserved.
1-3
Compiler = a program
• IPO (Input / Processing / Output)
• processes:
– Input data: source code file
– Output data: machine language file
• finds syntax errors
– ~ spelling, grammar, structure errors
– that violate rules of that programming language
.
© 2012 Pearson Education, Inc. All rights reserved.
1-4
A typical Compiler
vs. the Java compiler (& the JVM)
• Most compilers translate
source code file into executable file
(= machine code for a specific CPU / OS)
• Java compiler translates Java source file into
a file containing byte code instructions
• Byte code instructions are
the “machine language”
of the Java Virtual Machine (JVM)
& can NOT be executed directly by a CPU
© 2012 Pearson Education, Inc. All rights reserved.
1-5
Java Virtual Machine (JVM)
• JVM = a program that emulates a CPU
• JVM executes each byte code instruction
as it’s read (unlike a compiler)
– So it’s called an interpreter (vs. a compiler)
• Java = an interpreted language
© 2012 Pearson Education, Inc. All rights reserved.
1-6
Program Development Process
Text editor
(or IDE)
Saves Java statements
Source code
(.java)
Java compiler
(javac)
Produces
Byte code
(.class)
Java
Virtual Machine
(java)
Results in
Program
Execution
© 2012 Pearson Education, Inc. All rights reserved.
1-7
Portability
• Portable = program written for 1 type of computer
runs on a wide variety of computers
(with little/no modification) (e.g., applets)
• Java byte code runs on the JVM (on a computer),
not on any particular CPU
• So compiled Java programs highly portable
• Specific JVMs exist for many platforms:
•Windows
•Mac
•Linux
© 2012 Pearson Education, Inc. All rights reserved.
•Unix
•BSD
•etc.
1-8
Portability
• most programming languages’ programs:
portability by re-compiling program
for each different platform/CPU
– so, many different .exe files
– (what about applets for web?)
• Java provides a JVM for each platform
– so only 1 .class (byte code) file for everywhrte
– Byte code program runs on ANY JVM
© 2012 Pearson Education, Inc. All rights reserved.
1-9
Portability
Byte code
(.class)
Java Virtual
Machine for Windows
Java Virtual
Machine for Linux
© 2012 Pearson Education, Inc. All rights reserved.
Java Virtual
Machine for Unix
Java Virtual
Machine for Mac
1-10
Java Versions
• JDK (Java Development Kit)
– software used to write Java programs
• different editions of JDK:
– Java SE - Standard Edition.
– Java EE - Enterprise Edition.
– Java ME - Micro Edition.
• Available for free download
© 2012 Pearson Education, Inc. All rights reserved.
1-11
2 ways to compile Java program
1. In command-prompt (B&W) window
– javac is Java compiler (for specific JVM)
– to compile: javac SomeProgram.java
– must use .java file extension
2. IDE autBomates (& hides) this
– called Build (instead of compile)
– Automatic build when program is Run
© 2012 Pearson Education, Inc. All rights reserved.
1-12
Programming Languages
Common Language Elements (all languages)
• Some common concepts
– Key words
– Operators
– Punctuation
– Programmer-defined identifiers
– Strict syntactic (grammar) rules
© 2012 Pearson Education, Inc. All rights reserved.
1-13
Sample Java Program – key words
public class HelloWorld
{
public static void main(String[] args)
{
String message = "Hello World";
System.out.println(message);
}
}
• Key words:
public, class, static, void
– lower case (Java is a case-sensitive)
– can’t use these as programmer-defined identifiers
© 2012 Pearson Education, Inc. All rights reserved.
1-14
Java – lines vs. statements
• A statement = a complete instruction that
causes computer to perform an action.
• Semi-colon at end of every statement
– not at end of every line
System.out.println(
message);
• This is 1 statement written on 2 lines
© 2012 Pearson Education, Inc. All rights reserved.
1-15
Variables
•
•
•
•
store data in a program (in memory)
variable name represents a location in memory
also called fields
variables created by programmer – specify:
1) name
2) data TYPE
3) starting value (optional)
int age = 18;
String name;
© 2012 Pearson Education, Inc. All rights reserved.
1-16
Variables
Variable = a name given to a location in memory
– 8 locations below
0x000
0x001
0x002
0x003
0x004
0x005
0x006
0x007
© 2012 Pearson Education, Inc. All rights reserved.
1-17
Variables
int length = 72;
0x000
JVM
0x001
(not programmer) 0x002
decides where
0x003
in memory the
0x004
declared variable 0x005
is stored
0x006
0x007
© 2012 Pearson Education, Inc. All rights reserved.
72
Variable called length
is a symbolic name for
memory location 0x003.
Programmer does NOT
know or care
it’s in 0x003.
1-18