Download Introduction to Object

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
Introduction to Java
CSIS 3701: Advanced Object Oriented Programming
Java Background
Original purpose: web page applets
– Executable/dynamic applications running on web page
– No longer main use, but affected language design
Server
Client
requested
by browser
applet
browser
applet
copy
downloaded
to browser
Java code
executed on
client computer
Platform Independence
• Java applet must run on any client
– Different OS, architecture, etc.  different machine code
– Cannot compile applet to single executable used by all
• Stage 1:
Java source code compiled to “byte code”
– Code for an abstract “Java virtual machine” (JVM)
Hello.java
Source code
(must end in .java)
Hello.class
Byte code stored
on server
Platform Independence
• Stage 2: JVM on client runs “byte code”
– Converted to native machine code line-by line and
executed on the fly
Client
browser
– JVM can be:
• Part of browser
• Built into NetBeans
• Run separately from
command line
(java Hello.class)
• Built directly into chip
(mobile devices)
JVM
applet
Line 1
Line 2
Line 3
Line 4
…
convert and
execute
processor
Security and Safety
• Applet = unknown code running on your computer!
– How to prevent malicious applets?
• Applets vs. Applications
– Applets not allowed access to local files, network, etc.
– Application: separate standalone process not run in
browser
Security and the Sandbox
• All Java programs execute in restricted area of
memory (the “sandbox”)
• No explicit pointers
– int *ptr = 100; // outside sandbox
– *ptr = 0;
// overwrite that memory
• Array bounds checking
– int A[100];
– A[1000000] = 0; // outside sandbox
Safety and Exception Handling
• Java programs cannot “crash” to OS
• Exceptions caught and handled within JVM
– Browser/NetBeans/etc. notified
JVM
applet
int x = 0/0;
ArithmeticException thrown;
– Can handle as needed (error message displayed, etc.)
Tradeoffs
• Many tradeoffs in language design
– No “best” choices
– Different languages make different choices
• Portability vs. Speed
– “On the fly” interpretation slower than direct execution
of machine code
• Safety vs. Speed
– Array bounds checking
– Exception handling
Require extra time
Basic Java Syntax
• Java syntax mostly same as C++
– Java developed by C++ programmers
• Examples
– Lines/blocks: ; {}
– Control structures: if else for while switch…
– Operators:
= + - * / ++ -- +=…
== != > < >= <= && ||…
– Comments: /*
*/
//