Vous êtes sur la page 1sur 39

UNIT I

INTRODUCTION

History of Java Java Byte code Buzzwords Compiling and Running Java Program Fundamental Programming Structure in Java Data Types Arrays Variables

Operators Control Statements String Handling


JAVA is platform independent programming language, which provides developers with the means to create powerful applications, which are very small in size, platform independent, HISTORY OF JAVA secure and robust.

JAVA is language that has evolved from C++ which is a direct descendant of C. Most of the characters of JAVA is inherited from C and C++. Derives its Syntax from C. Object Oriented features influenced by C++. Java was conceived by James Gosling (popularly known as Creator of Java), Patrick Naughton, Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems, Inc.in 1991.

It took 18 months to devolop the first working version. This was initially named Oak but was renamed as JAVA in 1995. Although the Java programming language is usually associated with World Wide Web, its primary motivation was to develop a language which is platform - independent(i.e., architecture neutral) that could be used to create software to be embedded in various consumer electronic devices, such as microwave ovens and remote controls.

Reasons Which Led To JAVA Language Development


1. To create software to be embedded in various consumer electronic devices many CPUs are used as controllers. The problem with C and C++ is that they are designed to be compiled for a specific target. + Even though C++ programs can be developed for

any type of CPU, to do so it requires a full C++ compiler targeted for that CPU. The problem here is compilers are expensive and time consuming to create.

To overcome this the work began on developing a

portable, platform-independent language that could be used to produce code that run on a variety of CPUs under differing environments, which led to the creation of JAVA. 2. World Wide Web also took shape at the same time Java was implemented. With the emergence of WWW, Java was propelled to the forefront of computer language design, because the Web also demanded portable programs.

Why Java was Successful?


1. JAVA was designed, tested and refined by real, working programmers. 2. JAVA is cohesive and logically consistent. 3. JAVA gives the programmer,full control. Its a language for professional programmers.

NOTE
JAVA sometimes referred to as Internet version of C++, because of its application in World Wide Web. Java is to Internet programming what C was to systems programming.

JAVA BYTECODE

Byte code is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). JVM is an Interpreter for Byte code.

THE JAVA VIRTUAL MACHINE The JVM is a virtual computer that resides in memory only. Translating a program into bytecode makes it easier to run a program in a wide variety of environments. Reason : Only the JVM needed to be implemented for each platform. The Java programs are compiled for the JVM is what makes the language so unique but in order for java programs to run on a particular platform, the JVM must be implemented for that platform.

The JVM is the reason why Java is Portable. It provides a layer of Abstraction between the compiled Java Program and the underlying hardware platform and operating system.

JAVA TECHNOLOGY

JAVA TECHNOLOGY IS BOTH A PROGRAMMING LANGUAGE AND A PLATFORM. JAVA PROGRAMMING LANGAUGE With most programming languages, you either compile or interpret a program so that you can run it on your computer. The Java programming language is unusual in that a program is both compiled and interpreted. With the compiler, first you translate a program into an intermediate language called Java bytecodes the platform-independent codes interpreted by the interpreter on the Java platform. The interpreter parses and runs each Java bytecode instruction on the computer.

Compilation happens just once; interpretation occurs each time the program is executed. The following figure illustrates how this works.

You can think of Java bytecodes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's a development tool or a Web browser that can run applets, is an implementation of the Java VM. Java bytecodes help make "write once, run anywhere" possible. You can compile your program into bytecodes on any platform that has a Java compiler. The bytecodes can then be run on any implementation of the Java VM. That means that as long as a computer has a Java VM, the same program written in the Java programming language can run on Windows 2000, a Solaris workstation, or on an iMac.

THE JAVA PLATFORM A platform is the hardware or software environment in which a program runs. We've already mentioned some of the most popular platforms like Windows 2000, Linux, Solaris, and MacOS. Most platforms can be described as a combination of the operating system and hardware. The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other hardware-based platforms. The Java platform has two components: 1. The Java Virtual Machine (Java VM) -- (Already exaplained) 2. The Java Application Programming Interface (Java API)

The Java API is a large collection of ready-made software components that provide many useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped into libraries of related classes and interfaces; these libraries are known as packages. The following figure depicts a program that's running on the Java platform. As the figure shows, the Java API and the virtual machine insulate the program from the hardware.

Native code is code that after you compile it, the compiled code runs on a specific hardware platform. As a platformindependent environment, the Java platform can be a bit slower than native code. However, smart compilers, welltuned interpreters, and just-in-time bytecode compilers can bring performance close to that of native code without threatening portability.

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

Simple
Java was designed to be easy for professional programmer

to learn and use effectively.


Its simple and easy to learn if you already know the basic

concepts of Object Oriented Programming.


C++ programmer can move to JAVA with very little effort

to learn.
In Java, there is small number of clearly defined ways to

accomplish a given task002E

Object Oriented
Java is true object oriented language. Almost Everything is an Object paradigm. All program

code and data reside within objects and classes.

The object model in Java is simple and easy to extend. Java comes with an extensive set of classes, arranged in

packages that can be used in our programs through inheritance.

Distributed
Java is designed for distributed environment of the

Internet. Its used for creating applications on networks.


Java applications can access remote objects on Internet as

easily as they can do in local system.


Java enables multiple programmers at multiple remote

locations to collaborate and work together on a single project.

Compiled and Interpreted


Usually a computer language is either compiled or

Interpreted. Java combines both this approach and makes it a two-stage system.
Compiled: Java enables creation of a cross platform

programs by compiling into an intermediate representation called Java Bytecode.


Interpreted: Bytecode is then interpreted, which generates

machine code that can be directly executed by the machine

that provides a Java Virtual machine.

Robust
It provides many features that make the program execute

reliably in variety of environments.


Java is a strictly typed language. It checks code both at

compile time and runtime.


Java takes care of all memory management problems with

garbage-collection.
Java, with the help of exception handling captures all

types of serious errors and eliminates any risk of crashing the system.

Secure
Java provides a firewall between a networked

application and your computer.


When a Java Compatible Web browser is used,

downloading can be done safely without fear of viral infection or malicious intent.
Java achieves this protection by confining a Java program

to the java execution environment and not allowing it to access other parts of the computer.

Architecture Neutral
Java language and Java Virtual Machine helped in

achieving the goal of write once; run anywhere, any time, forever.
Changes and upgrades in operating systems, processors

and system resources will not force any changes in Java Programs.

Portable
Java Provides a way to download programs dynamically to

all the various types of platforms connected to the Internet.


It helps in generating Portable executable code.

High Performance
Java performance is high because of the use of bytecode. The bytecode was used, so that it was easily translated into

native machine code.

Multithreaded

Multithreaded Programs handled multiple tasks

simultaneously, which was helpful in creating interactive, networked programs.


Java run-time system comes with tools that support

multiprocess synchronization used to construct smoothly interactive systems.

Dynamic
Java is capable of linking in new class libraries, methods,

and objects.
It can also link native methods (the functions written in

other languages such as C and C++).

IMPLEMENTING A JAVA PROGRAM

Implementation of a Java application program consists of series of steps. 1. Create a source file. A source file contains text, written in the Java programming language, that you and other programmers can understand. You can use any text editor to create and edit source files. Save the source code file with .java extension.

2. Compile the source file into a bytecode file. The compiler,


javac,

takes your source file and translates its text into

instructions that the Java Virtual Machine (Java VM) can understand. The compiler converts these instructions into a bytecode file. To compile the program, run java compiler with the name of the source file in command line: javac <filename>.java

3. Run the program contained in the bytecode file. The Java interpreter installed on your computer implements the Java VM. This interpreter takes your bytecode file and carries out the instructions by translating them into instructions that your computer can understand. At the command prompt to run a stand-alone Java

Program, use java interpreter, type : java <filename> When executed the program displays the output.

Where, <filename> -- user defined filename.

JAVA PROGRAM STRUCTURE


Java Program may contain many classes of which only one class defines the main method. A Java Program may contain one or more sections.

Documentation Section Package Statement Import Statements Interface Statements Class Definitions Main Method Calss { Main Method Definition

Of the above Sections shown in the figure, the Main Method class is Essential part, Documentation Section is a suggested part and all the other parts are optional. Documentation Section It Comprises a Set of comment lines giving the name of the program, the author and other details. Comments help in Maintaining the Program. Java uses a Style of comment called documentation comment. /* * */ This type of comment helps is generating the documentation automatically. Package Statement The first statement allowed in a Java file is a package statement. It declares the package name and informs the compiler that the classes defined belong to this package. Example : package student; It is an optional declaration.

Import Statements The statement instructs the interpreter to load a class contained in a particular package. Example : import student.test; Where, student is the package and test is the class. Interface Statements An interface is similar to classes which consist of group of method declaration. It is used when we want to implement the feature of Multiple Inheritance in Java It is an optional declaration. Class Definitions A Java Program can have any number of class declarations. The number of classes depends on the complexity of the program. Main Method Class Every Java Stand alone program requires a main method as its starting point.

A Simple Java Program will contain only the main method class. It creates objects of various classes and uses those objects for performing various operations. When the end of main is reached the program terminates and the control transferred back to the Operating system.

VARIABLES
A Variable is a named piece of memory that is used for storing data in java Program. An object stores its state in variables. A variable is an identifier used for storing a data value.

Definition: A variable is an item of data named by an identifier. A Variable may take different values at different times during the execution if the program, unlike the constants. We must explicitly provide a name and a type for each variable you want to use in your program. The variable's name must be a

legal identifier --an unlimited series of Unicode characters that begins with a letter. You use the variable name to refer to the data that the variable contains. The variable's type determines what values it can hold and what operations can be performed on it. General form of variable declaration :
type name

In addition to the name and type that you explicitly give a variable, a variable has scope. Example of Variable names : average height total height classStrength Rules followed for variable names ( consist of alphabets, digits, underscore and dollar characters) 1. They must not begin with digits. 2. Uppercase and lowercase are not the same. Example: Total and total are two variables which are distinct. 3. It should not be a keyword. 4. Whitespace is not allowed. 5. variable names can be of any length.

EXAMPLE PROGRAM

The MaxVariablesDemo program, shown below, declares eight variables of different types within its main method. The variable declarations are bold:

public class MaxVariablesDemo { public static void main(String args[]) { // integers byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; // real numbers float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; // other primitive types char aChar = 'S'; boolean aBoolean = true; // display them all System.out.println("The largest byte value is " +

largestByte); System.out.println("The largest short value is " + largestShort); System.out.println("The largest integer value is " + largestInteger); System.out.println("The largest long value is " + largestLong); System.out.println("The largest float value is " + largestFloat); System.out.println("The largest double value is " + largestDouble); if (Character.isUpperCase(aChar)) { System.out.println("The character " + aChar + " is upper case."); } else { System.out.println("The character " + aChar + " is lower case."); } System.out.println("The value of aBoolean is " + aBoolean); }

} OUTPUT The largest byte value is 127 The largest short value is 32767 The largest integer value is 2147483647 The largest long value is 9223372036854775807 The largest float value is 3.40282e+38 The largest double value is 1.79769e+308 The character S is upper case. The value of aBoolean is true SCOPE AND LIFETIME OF VARIABLES Java allows variables to be declared in any block. A block defines a scope. Each time when we start a new block we are starting a new scope. Scope determines what objects are visible to other parts of the program and also determines the lifetime of those objects. Two major scopes in Java are Defined by a class. Defined by a method. The Scope defined by a method begins with its opening curly brace. As a general rule, a variable declared inside

a scope are not visible to the code that is defined outside the scope.

Final Variables
o You can declare a variable in any scope to be final. The value of a final variable cannot change after it has been initialized. Such variables are similar to constants in other programming languages. o To declare a final variable, use the final keyword in the variable declaration before the type: final int aFinalVar = 0; o The previous statement declares a final variable and initializes it, all at once. Subsequent attempts to assign a value to aFinalVar result in a compiler error. o A final local variable that has been declared but not yet initialized is called a blank final. Again, once a final local variable has been initialized, it cannot be set, and any later attempts to assign a value to blankfinal result in a compile-time error.

DATA TYPES

Every variable must have a data type. A variable's data type determines the values that the variable can contain and the operations that can be performed on it. Data types in Java are of two types: 1. Primitive Types( Intrinsic or built-in types ) 2. Derived Types (Reference Types).

The following table lists, by keyword, all of the primitive data types supported by the

Java platform, their sizes and formats

Primitive Data Types Keyword Description (integers)


byte

Size/Format

Byte-length integer

8-bit two's complement

short

Short integer

16-bit two's complement 32-bit two's complement 64-bit two's complement (real numbers)

int

Integer

long

Long integer

float

Single-precision floating point

32-bit IEEE 754

double

Double-precision floating point (other types)

64-bit IEEE 754

char

A single character A boolean value (true or


false)

16-bit Unicode character true or false

boolean

Arrays, classes, and interfaces are reference types. The value of a reference type variable, in contrast to that of a primitive type,

is a reference to (an address of) the value or set of values represented by the variable. A reference is called a pointer or a memory address in other languages. The Java programming language does not support the explicit use of addresses like other languages do. You use the variable's name instead.

OPERATORS
Operators are used in programs for manipulating data and variables. An operator performs a function on one, two, or three operands. An operator that requires one operand is called a unary operator. For example, ++ is a unary operator that increments the value of its operand by 1. An operator that requires two operands is a binary operator. For example, = is a binary operator that assigns the value from its right-hand operand to its left-hand operand. A ternary operator is one that requires three operands. The Java programming language has one ternary operator
?:

The various categories of operators are as follows:


Arithmetic Operators Relational and Conditional Operators Shift and Logical Operators Assignment Operators Other Operators

Arithmetic Operators The following table lists the basic arithmetic operators provided by the Java programming language. Except for +, which is also used to concatenate strings, these operators can be used only on numeric values.

Binary Arithmetic Operators Operator Use


+ op1 + op2

Description Adds op1 and op2; also used to concatenate strings

* /

op1 - op2 op1 * op2 op1 / op2

Subtracts op2 from op1 Multiplies op1 by op2 Divides op1 by op2

op1 % op2

Computes the remainder of dividing op1 by op2

These short cut operators increment or decrement a number by one. Shortcut Arithmetic Operators Operator Use Description
++ op++

Increments op by 1; evaluates to the value of op before it was incremented

++

++op

Increments op by 1; evaluates to the value of op after it was incremented

--

op--

Decrements op by 1; evaluates to the value of op before it was decremented

--

--op

Decrements op by 1; evaluates to the value of op after it was decremented

Here are the Java programming language's other arithmetic operators. Unary Arithmetic Operators

Operator Use Description


+ +op -op

Promotes op to int if it's a byte, short, or char Arithmetically negates op

Relational and Conditional Operators Use these relational operators to determine the relationship between two values. Relational Operators Operator Use
> op1 > op2

Description Returns true if op1 is greater than op2 Returns true if op1 is greater than or equal to op2

>=

op1 >= op2

<

op1 < op2

Returns true if op1 is less than op2 Returns true if op1 is less than or equal to
op2

<=

op1 <= op2

== !=

op1 == op2 op1 != op2

Returns true if op1 and op2 are equal Returns true if op1 and op2 are not equal

You can use the following conditional operators to form multi-part decisions.

Conditional Operators Operator Use


&& op1 && op2

Description Returns true if op1 and op2 are both true; conditionally evaluates op2

||

op1 || op2

Returns true if either op1 or op2 is true; conditionally evaluates op2

!op

Returns true if op is false Returns true if op1 and op2 are both

&

op1 & op2

boolean and both true; always evaluates


op1

and op2; if both operands are numbers,

performs bitwise AND operation Returns true if both op1 and op2 are boolean and either op1 or op2 is true;
| op1 | op2

always evaluates op1 and op2; if both operands are numbers, performs bitwise inclusive OR operation Returns true if op1 and op2 are different

op1 ^ op2

that is, if one or the other of the operands, but not both, is true

Shift and Logical Operators Each shift operator shifts the bits of the left-hand operand over by the number of positions indicated by the right-hand operand.

The shift occurs in the direction indicated by the operator itself.

Shift Operators Operator Use


<< op1 << op2

Description Shift bits of op1 left by distance op2; fills with zero bits on the right-hand side Shift bits of op1 right by distance op2;

>>

op1 >> op2

fills with highest (sign) bit on the lefthand side

>>>

op1 >>> op2

Shift bits of op1 right by distance op2; fills with zero bits on the left-hand side

These operators perform logical functions on their operands.

Logical Operators Operator Use Operation Bitwise AND if both operands are numbers;
& op1 & op2

conditional AND if both operands are boolean

op1 | op2 op1 ^ op2 ~op2

Bitwise OR if both operands are numbers; conditional OR if both operands are boolean Bitwise exclusive OR (XOR) Bitwise complement

Assignment Operators The basic assignment operator looks as follows and assigns the value of op2 to op1.
op1 = op2;

In addition to the basic assignment operation, the Java programming language defines these short cut assignment operators that perform an operation and an assignment using one operator. Shortcut Assignment Operators

Operator Use
+= -= *= /= %= &= |= ^= <<= >>= >>>= op1 += op2 op1 -= op2 op1 *= op2 op1 /= op2 op1 %= op2 op1 &= op2 op1 |= op2 op1 ^= op2 op1 <<= op2 op1 >>= op2

Equivalent to
op1 = op1 + op2 op1 = op1 - op2 op1 = op1 * op2 op1 = op1 / op2 op1 = op1 % op2 op1 = op1 & op2 op1 = op1 | op2 op1 = op1 ^ op2 op1 = op1 << op2 op1 = op1 >> op2

op1 >>>= op2 op1 = op1 >>> op2

Summary of Other Operators The Java programming language also supports these operators.

Other Operators Operator


?:

Use
op1 ? op2 : op3

Description If op1 is true, returns op2. Otherwise, returns op3.

[]

type []

Declares an array of unknown length, which contains type elements.

[]

type[ op1 ]

Creates and array with op1 elements. Must be used with the new operator. Accesses the element at op2 index

[]

op1[ op2 ]

within the array op1. Indices begin at 0 and extend through the length of the array minus one.

op1.op2

Is a reference to the op2 member of


op1.

Declares or calls the method named


op1 () op1(params)

with the specified parameters. The

list of parameters can be an empty list. The list is comma-separated. Casts (converts) op1 to type. An
(type) (type) op1

exception will be thrown if the type of


op1

is incompatible with type.

Creates a new object or array. op1 is


new new op1

either a call to a constructor, or an array specification.

op1 instanceof instanceof op2

Returns true if op1 is an instance of


op2

ARRAYS
An array is simply a sequence of either objects or primitives, all the same type and packaged together under one identifier name. An array is a structure that holds multiple values of the same type. The length of an array is established when the array is created (at runtime). After creation, an array is a fixed-length structure. An array element is one of the values within an array and is accessed by its position within the array. Arrays are useful for grouping related information.

Declaring a Variable to Refer to an Array


To create an array, we have to first create an array variable of desired type. General Syntax of Array Declaration type var-name[];

or type[] var-name; Where, type declares the base type of the array. Example int[] anArray; // declare an array of integers An array declaration has two components: Array's type Array's name.

Creating an Array

Arrays are created explicitly using Java's new operator. The next step is allocating an array with enough memory for ten integer elements and assigns the array to the variable anArray declared earlier. anArray = new int[10]; // create an array of integers

when creating an array, we use the new operator, plus the data type of the array elements, plus the number of elements desired enclosed within square brackets ('[' and ']'). Syntax new elementType[arraySize]

EXAMPLE PROGRAM

public class ArrayDemo { public static void main(String[] args) { int[] anArray; array of integers anArray = new int[10]; integers // assign a value to each array element and print for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[i] + " "); } System.out.println(); } } // create an array of // declare an

Getting the Size of an Array


To get the size of an array, arrayname.length

length is not a method. length is a property provided by the Java platform for all arrays.

The for loop in our sample program iterates over each element of anArray, assigning values to its elements. The for loop uses anArray.length to determine when to terminate the loop.

Vous aimerez peut-être aussi