Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Java CSIS 3701: Advanced Object Oriented Programming.

Similar presentations


Presentation on theme: "Introduction to Java CSIS 3701: Advanced Object Oriented Programming."— Presentation transcript:

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: /* */ //

10 Simple Types Numeric types: –int 32 bits –short 16 bits –byte 8 bits –long 64 bits –float 32 bits, ~7 digits after decimal –double 64 bits, ~13 digits after decimal Defined standard in Java language

11 Simple Types Boolean type –keywords true and false –Example: boolean b = true; Char type –16-bit Unicode for international purposes –Examples: char c1 = ‘A’; char c2 = ‘\u3218’ –Numeric representation of non-ASCII character Tradeoff: memory vs. internationalization

12 Type Conversion int x = 3.7; –What does this do? Weak typing (C/C++) –Language attempts to convert one type to another –3.7 truncated to 3 and stored in x Strong typing (Java) –Must be no possible ambiguity or information loss –Otherwise syntax error

13 Type Conversion Other examples: –if (1) {…} Condition must be true or false –long y; int x; Possible information loss x = y; Must explicitly cast to less precise type –int x = (int)3.7; Tradeoff: safety vs. convenience

14 Constants and Types What type is the number 3 ? The number 3.7 ? –Number without decimal is int. –Number with decimal is double. Possible type conversion problems Example: float y = 3.7; –Syntax error – trying to store double as float –Java hack: Follow constant with f float y = 3.7f;


Download ppt "Introduction to Java CSIS 3701: Advanced Object Oriented Programming."

Similar presentations


Ads by Google