Java Background
Java Background
To adapt to changing environments and uses
To implement refinements and improvements in the art of programming
When a computer language is designed, trade-offs are often made,
such as the following:
Ease-of-use versus power
Safety versus efficiency
Rigidity versus extensibility
‘C’ Programming Language
Prior to C, programmers usually had to choose
between languages that optimized one set of
traits or the other. For example, although
FORTRAN could be used to write fairly efficient
programs for scientific applications, it was not
very good for systems code.
‘C’ Programming Language
BASIC was easy to learn, it wasn’t very
powerful, and its lack of structure made its
usefulness questionable for large programs.
‘C’ Programming Language
BASIC, COBOL, and FORTRAN were not
designed around structured principles. Instead,
they relied upon the GOTO as a primary means
of program control. As a result, programs
became virtually impossible to understand.
‘C’ Programming Language
BASIC, COBOL, and FORTRAN were not designed around
structured principles. Instead, they relied upon the GOTO as
a primary means of program control. As a result, programs
became virtually impossible to understand.
Pascal are structured, they were not designed for efficiency,
and failed to include certain features necessary to make them
applicable to a wide range of programs.
‘C’ Programming Language
Dennis Ritchie on a DEC PDP-11 running the
UNIX operating system, C was the result of a
development process that started with an older
language called BCPL, developed by Martin
Richards. BCPL influenced a language called B,
invented by Ken Thompson, which led to the
development of C in the 1970s.
‘C’ Programming Language
The C Programming Language was invented by
Brian Kernighan and Dennis Ritchie (Prentice-
Hall, 1978). C was formally standardized in
December 1989, when the American National
Standards Institute (ANSI) standard for C was
adopted.
‘C++’ Programming Language
OOP through C++ is a programming methodology that
helps organize complex programs through the use of
inheritance, encapsulation, and polymorphism.
C++ was invented by Bjarne Stroustrup in 1979, while he
was working at Bell Laboratories. Stroustrup initially called
the new language “C with Classes.” However, in 1983, the
name was changed to C++. C++ extends C by adding
object-oriented features.
‘C++’ Programming Language
Development of the World Wide Web and invention
of the Internet started the search of a new
programming language. Reasons:
1. Cross-platform environment
2. High security features requirements
3. More complex text and other needs.
Java Programming Language
Java was conceived by James Gosling, Patrick
Naughton, Chris Warth, Ed Frank, and Mike
Sheridan at Sun Microsystems, Inc. In 1991.
This language was initially called “Oak” but was
renamed “Java” in 1995.
Java Programming Language
Original impetus for Java was not the Internet!
Instead, the primary motivation was the need
for a platform-independent (that is, architecture-
neutral) language that could be used to create
software to be embedded in various consumer
electronic devices, such as microwave ovens
and remote controls.
Java Programming Language
Java Is Important to the Internet:
Java expands the universe of objects that can move
about freely in cyberspace.
Two very broad categories of objects are transmitted
between the server and your personal computer:
passive information and dynamic or active programs.
Java Features
Simple
Java was designed to be easy for the professional
programmer to learn and use effectively.
Apart from similarity with C/C++, there are a small
number of clearly defined ways to accomplish a
given task.
Java Features
Object-Oriented
The object model in Java is simple and easy
to extend, while simple types, such as
integers, are kept as high-performance non-
objects.
Java Features
Robust
Checks code at compile time because Java is a strictly typed
language. However, it also checks
code at run time.
Handles memory management mistakes and mishandled
exceptional conditions (that is, run-time errors) efficiently.
Allocates or deallocates memory for objects for the programs.
Provides efficient exception handling mechanisms
Java Features
Multithread
Java was designed to meet the real-world
requirement of creating interactive, networked
programs. To accomplish this, Java supports
multithreaded programming, which allows you to
write programs that do many things simultaneously
Java Features
Architecture-Neutral
A central issue for the Java designers was that of
code longevity and portability. A same program
written in C/C++ would not run on different
platforms. Java provides mechanism to make the
same program run on different platform.
Java Features
Distributed
Java is designed for the distributed environment
of the Internet, because it handles TCP/IP
protocols. Remote Method Invocation (RMI). This
feature brings an unparalleled level of abstraction
to client/server programming.
Java Features
Dynamic
Java programs carry with them substantial
amounts of run-time type information that is used
to verify and resolve accesses to objects at run
time. This makes it possible to dynamically link
code in a safe and convenient manner.
Java Program Execution
Java Compiler
(javac)
Bytecode
(.class)
Abstraction:
An essential element of object-oriented programming is abstraction.
Humans manage complexity through abstraction. For example,
people do not think of a car as a set of tens of thousands of
individual parts. They can ignore the details of how the engine,
transmission, and braking systems work. Instead they are free to
utilize the object as a whole.
Object-Oriented Programming Features
Encapsulation:
Encapsulation is the mechanism that binds together code and the data
it manipulates, and keeps both safe from outside interference and
misuse. One way to think about encapsulation is as a protective
wrapper that prevents the code and data from being arbitrarily
accessed by other code defined outside the wrapper. Access to the
code and data inside the wrapper is tightly controlled through a well-
defined interface.
In Java the basis of encapsulation is the class.
Public, private, protected are the keywords to enforce encapsulation.
Object-Oriented Programming Features
Inheritance:
Inheritance is the process by which one object acquires the
properties of another object. This is important because it supports
the concept of hierarchical classification.
Inheritance interacts with encapsulation as well. If a given class
encapsulates some attributes, then any subclass will have the same
attributes plus any that it adds as part of its specialization.
Thus it provides facility of code reuse.
Object-Oriented Programming Features
Polymorphism:
Polymorphism (from the Greek, meaning “many forms”) is a feature
that allows one interface to be used for a general class of actions.
The concept of polymorphism is often expressed by the phrase “one
interface, multiple methods.” This means that it is possible to
design a generic interface to a group of related activities. This helps
reduce complexity by allowing the same interface to be used to
specify a general class of action.
Object-Oriented
Programming Features
Example