Download presentation
Presentation is loading. Please wait.
Published byTheodore Turner Modified over 9 years ago
1
Introduction to Java CSIS 3701: Advanced Object Oriented Programming
2
Java Background Original purpose: web page applets –Executable/dynamic applications running on web page –No longer main use, but affected language design Server applet Client browser requested by browser copy downloaded to browser applet Java code executed on client computer
3
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
4
Platform Independence Stage 2: JVM on client runs “byte code” –Converted to native machine code line-by line and executed on the fly –JVM can be: Part of browser Built into NetBeans Run separately from command line ( java Hello.class ) Built directly into chip (mobile devices) browser applet Line 1 Line 2 Line 3 Line 4 … Client JVM processor convert and execute
5
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
6
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
7
Safety and Exception Handling Java programs cannot “crash” to OS Exceptions caught and handled within JVM –Browser/NetBeans/etc. notified –Can handle as needed (error message displayed, etc.) applet JVM int x = 0/0; ArithmeticException thrown ;
8
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
9
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: /* */ //
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.