1 / 9

Introduction to Java

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. browser. applet.

lewis-olsen
Download Presentation

Introduction to Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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 Client requested by browser browser applet Java code executed on client computer applet copy downloaded to browser

  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 Hello.class Byte code stored on server Source code (must end in .java)

  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) Client browser JVM applet Line 1 Line 2 Line 3 Line 4 … convert and execute processor

  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.) JVM ArithmeticException thrown; applet int x = 0/0;

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

More Related