Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.

Similar presentations


Presentation on theme: "The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads."— Presentation transcript:

1 The Java Language

2 Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads  Applet  GUI  Networking

3  Bibliography  History  What is Java?  Environments  Security  Memory Managment  Java Syntax Chapter 1 Introduction to Java

4 Bibliography  The Java Programming Language – Ken Arnold,James Gosling  The Java Tutorial - Third Edition Mary Campione & Kathy Walrath Addison Wesley  Online : http://java.sun.com/docs/books/tutorial/index.html

5 History 1991 - language for consumer devices –small, tight,efficient –OOP –C++ ruled out –named Oak, name collision, became Java

6 History  1994 Browsers - static pages of html.  Gosling realized that Java could provide an architecture neutral browser with downloadable and executable content.  J. Gosling, J. Payne, P. Naughton build HOTJAVA  Demonstration of technology at SunWorld May 23, 1995 was “Hit” of show.  Netscape releases Java interpreter in 2.0

7 Versions  1.0 initial release  1.1 –major changes to fix event handling problems in 1.0 –support new and needed methodologies (read that as beans)  1.2, 1.3(AKA Java 2) mostly expanding capabilities.

8 What is Java ?  An Object-oriented Programming Language  A Virtual Machine Architecture (JVM)  Platform independent and secure (portable bytecodes)  A feature for dynamic WEB pages  A program library  Development tools

9 Virtual Machine  Java is both compiled and interpreted language  Java source turned into simple binary instructions  C/C++ source is refined to native instructions for a particular processor  Java compiled into a universal format - instructions for a virtual machine.

10  Compiled Java byte-code (J-code) is executed by Java run-time interpreter in a safe, virtual environment.  Executes stack-based instruction set, manages a storage heap, creates and manipulates primitive data types.  Executes in accordance with a strictly defined open specification that can be implemented by anyone on any platform.

11 Java Interpreter  Java interpreter is lightweight and small.  Written in C/C++  Interpreter can be run as –separate, self-standing, application –embedded in another piece of software, such as Web browser  Java code is implicitly portable

12

13 Environments  javac SomeName.java –a class named SomeName is defined in this file.  java SomeName –instantiates the SomeName.class and starts the static public void main(String[] x) {} method.  appletviewer File.html –file contains an applet. The browser loads the applet, calls the init(), then start() methods. If applet becomes invisible the stop() method is called. After a time the destroy() method is called.

14  package means directory.  package mechanism is a compile time (javac) visibility issue, not a #include, and does not mean the interpreter (java) will find the classes it needs.  work in a directory and be sure your interpreter looks for classes in your current directory. CLASSPATH and PATH variables are sometimes required to fix visibility issues. Environments

15 Applet vs. Application  Application - normal Java program  Applet - program to be executed by a WEB browser  Applets typically loaded from some URL on the WEB before execution new thing which makes Java popular (dynamic pages)

16 “Just in Time” Compilation  Interpreted languages slow  Java is considered to be a fast interpreted language - interpreter executes compiled byte-code.  Software implementations of the run- time system can optimize performance by compiling byte-code to native machine code on the fly.

17 Security  Java provides several layers of protection from dangerously flawed code, viruses and Trojan horses.  Java virtual machine architecture assesses the safety of the code before it’s run.  These features provide foundation for high-level security policies.

18 Security  is essential when running applets over the net  three layers of security – language – bytecode (verified before execution) – runtime (security manager to prevent unallowed IO and net operations)

19 Language Security  No direct memory addressing allowed  No pointer arithmetic  Automatic storage release with a garbage collector.  All casts checked at runtime.  All array accesses checked at runtime.

20 Memory Managment  The most important differences between Java and C/C++ involve how Java manages memory.  Java –eliminates add hoc pointers –adds garbage collection –adds true arrays  These features eliminate many problems related to safety, portability and optimization.

21 Memory Managment  Explicit memory allocation and deallocation are considered the largest source of programming errors in C/C++  Java maintains objects in memory as well as tracks all references to those objects. When an object is no longer in use, Java removes it from memory.  Garbage collector runs in the background. This means that most garbage collection is done between events (mouse clicks, keyboard hits,…)

22 Memory Managment  Java does not have pointers as we know them in C/C++. However, Java provides references - safe pointer.  A reference is a strongly-typed handle for an object. All objects, except primitive numeric types, are accessed through references.  References can be used for building linked lists, trees and other data structures.

23 Memory Managment  Pointer arithmetic can’t be done using references.  References are passed by value.  References can’t reference an object through more than a single level of indirection.  Protection of references is one of the fundamental aspects of Java security. This means that references can’t examine memory locations that should not be examined.

24 Java Syntax  Java does not allow programmer- defined operator overloading as we know it in C++, for instance.  The string concatenation operator + is the only system-defined, overloaded operator in Java.  All methods in Java are like C++ virtual methods, so overridden methods are dynamically selected at run-time.

25 Java Syntax  Java does not have a preprocessor, so it doesn’t have –macros –#define statements –conditional source compilation  Other languages need these constructs in order to address various system- dependent issues.  Another use for conditional compilation is for debugging purposes.

26 Java Syntax  Debugging code in Java can be included directly in Java source code by making it conditional on a constant (static vs. final) variable. Java compiler takes care of this at compile time - it simply removes it when it determines that it will not be called.  Java also provides a well-defined package structure for organizing class files. The compiler works with compiled Java classes (all the info is there).

27 Arrays  Arrays in Java are first-class citizens. Arrays... –can be dynamically allocated and assigned like other objects –know their own size and type  True arrays eliminate the need for pointer arithmetic.

28 Classes  Fundamental unit of Java  Class is an application component that holds executable code and data  Java classes are distributed in a universal binary format that contains Java byte-code and other class information.  Classes can be maintained discretely and stored in files or archives (local or net)  Classes are located and loaded dynamically at run-time

29 Error Handling  Java was first written for the networked devices and embedded systems. This is why Java provides robustness and intelligent error management.  Java has powerful exception-handling mechanism. Allows us to separate error-handling code from normal code - cleaner&readable code.

30 MultiThreading  Today’s apps require parallelism (unrelated tasks must execute, if possible, at the same time)  Threads provide efficient multiprocessing and distribution of tasks.  Java makes threads easy to use - support built into the language  Synchronization of threads  Java’s support of synchronization is based “lock and key system for accessing resources”.


Download ppt "The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads."

Similar presentations


Ads by Google