JAVA

Views:
 
Category: Education
     
 

Presentation Description

JAVA

Comments

Presentation Transcript

Java Overview : 

Java Overview

Course Prerequisites : 

- 2 - Course Prerequisites Knowledge of Object oriented concepts A good understanding of programming principles

Course Objectives : 

- 3 - Course Objectives To provide an overview of Java

Session Outline : 

- 4 - Session Outline History of Java and its features Difference between C++ and Java Java Introduction Programming concepts of java Java Language Elements Java OOP Enhancements in JDK 5.0 Summary References

History : 

- 5 - History 1990 James Gosling (creator of Java and VP at Sun Labs) starts s/w project for consumer electronics May ‘95 - Java and HotJava announced at SunWorld ’95 Releases Nov ‘95 - JDK 1.0 released1996 Dec ‘96 - JDK 1.1 released 1998 Dec ‘98 - JDK 1.2 released JDK Major Versions 1.0 - 1.0.2 1.1 - 1.1.6 1.2 - 1.2 beta 4 1.2 - 1.2.2 1.3 – 1.3.1 1.4.1 – 1.4.2 1.5 1.6 (Java 6)

Java - Adjectives : 

- 6 - Java - Adjectives The Java programming language is a high-level language that can be characterized by all of the following buzzwords: Simple Architecture neutral Object oriented Portable Distributed High performance Multithreaded Robust Dynamic Secure

Simple & Familiar : 

- 7 - Simple & Familiar Fundamental concepts can be grasped quickly Features borrowed from Smalltalk, C/C++ etc. C++ features and syntax largely present Features that led to poor programming practices or were rarely used were removed Designed to be a simple and easy to learn language

Object Oriented : 

- 8 - Object Oriented Designed from the ground-up to be object oriented OO Programming is a powerful paradigm - complex programming problems can be reduced to simple solutions Everything in Java (except the primitive data types) is an object Extensive set of classes, arranged in packages e.g. java.awt, java.io, java.net Common root of the Java class hierarchy - Object class (java.lang)

Architecture Neutral & Portable : 

- 9 - Architecture Neutral & Portable In today’s networked environment, programmers have no idea where their programs will ultimately be run or of the target configuration. Java programs are designed to work in a networked environment on a variety of computers and operating systems. Rather than to native machine code, programs are compiled to Byte Codes - a virtual assembler language that can be interpreted on any platform that implement the JVM.

Interpreted : 

- 10 - Interpreted Compiler generates platform-independent byte codes rather than native machine code Byte codes are interpreted by the JVM (byte code interpreter + run time) Once byte code files are no longer needed, they are discarded

Dynamic & Distributed : 

- 11 - Dynamic & Distributed Fragile superclass problemAny time a new method or instance variable is added to a class, any and all classes that reference that class will require a recompilation in C++ Java defers as many decisions as possible till runtime. Provides a highly dynamic runtime environment. New code can be linked on demand from anywhere on the network and new types can be created as needed.

Robust : 

- 12 - Robust Extensive compile time type checking Second level of type checking - byte codes verified at runtime Many error-prone features of C/C++ programming removed no pointersArrays and Strings are objects rather than pointers. Arrays have type and bounds checking and programmers can’t walk off ends accidently or maliciously integers cannot be converted to addresses no user memory deallocation no #defines

Secure : 

- 13 - Secure Designed to be a distributed language. Source serving class file could be unknown/untrusted. Tamper-free programs. All memory layout decisions deferred to runtime and depend on the characteristics of the target machine. Programs can’t access forbidden areas of memory. JVM verifies all byte codes before execution ensures all programs follow the rules regarding object access and usage prevents memory underflows or overflows ensures no illegal data conversions are performed

Speed : 

- 14 - Speed Java byte codes are interpreted by the JVM Interpretation of program code is slower than directly executing processor instructions Speed can be improved with JIT (Just In Time) Compilers Native methods improve speed at the cost of portability Garbage collection is automatic and runs as a background thread

Multithreaded : 

- 15 - Multithreaded Threads allow multiple concurrent activities within a process Java designed to run multiple threads Easy to implement Other systems have provided facilities via light weight libraries, but Java has in-built language support Sophisticated set of synchronization primitives available Java threads can take advantage of multi-processor systems if base OS allows

Java Vs. C/C++ : 

- 16 - Java Vs. C/C++ Java is similar to C/C++ with these differences No header files No preprocessor No goto Unicode characters Automatic garbage collection No pointer arithmetic No operator overloading No multiple inheritance 100% object oriented - everything is a class No global variables or functions

Thank You : 

- 17 - Thank You