8/8/2019 Core Java Notes
1/68
Module-I
Java is a true object oriented language Every o o
programming language must satisfy three important features
like Encapsulation inheritance and polymorphism.
Encapsulation: is the of binding the data and methods
together into a single unit called class. The purpose of the
feature is more security to data and methods.
Inheritance: is the process by which the objects of one class
acquire the prosperities of objects of another class. Its
purpose is the reusability of data and methods.
Polymorphism: is the ability to take more than one form. It
is the process in which an interface with different method
implementory will be done. Its purpose is to reduce the code.
Benefits of oops:
OOP offers several advantages to both the programmer
and the user. The principle advantages are:-
1 Through inheritance, redundant code can be innovated
and the use of existing classes can be extended.2 The possibility of writing a body of cod once, and than
reusing that code over and over again. This leads to
saving of development time and higher productivity.
1
8/8/2019 Core Java Notes
2/68
3 Based on the objects work in a project can be
partitioned into different modules.
4The concept of data hiding helps to build secureprograms that can not be invaded by code in other parts
of the program.
5 Object oriented systems can be easily upgraded from
small to large systems.
6 Software complexity can be easily managed.
Dynamic Initialization of Variable:
Java allows variable to be initialized dynamically using any
expression valid at the time the variable in declared.
// dynamic initialization program.
Class dynamic
{ public static void main (String args [ ])
{ int a = 3, b = 4,
int c = math.sqrt(a*a + b*b); // dynamic
initialization.
System. out. println (c is+c) ;
}
}
2
8/8/2019 Core Java Notes
3/68
Control Statements:-
Control flow statements are used to make decisions
about which statements to execute and to otherwise change
the flow of execution in a program.
These are broadly of three types.
1. Selection Statements: if and switch (if else, nested if
else, else if ladder, nested switch)
2. Iteration (Looping) Statements: for, while, do while.
3. Jumping Statements:break, continue, return.
Static: It is a keyword applied to both variables and method.
These are called class members since both static variables
and static methods are accessed by the class name itself
without creating an object of a class.
These static variables are common to whole class
instead of a single object. Hence all objects of the class have
same constant value for a static variable. A static variable
may change but it is constant for whole class. It is same for
different objects of the same class.
Static methods can also be accessed without creating an
object of a class. main() method is a static method.
3
8/8/2019 Core Java Notes
4/68
They can not refer to this or super in any way.
final: final key word can be applied to variables, method
and classes. A final variable is one whose value does not
change during the execution of a program. A final class is
one, which cannot be extended; a final method is one, which
can not be overrided by its sub class.
this: It refers to the current object. this is used to avoid
hiding of instance variably by local variables.
Usage of super: The keyword super is used within methods
and usually in constructors of a derived class to refer to the
constructor of the class from which the new class was
derived .super refers to the super class.
Whenever a sub class needs to refer to its, immediate
super class, it can do so by the use of the key word super.
super has two general forms. The first call the super class
constructor. The second is used to access a members of the
super class that has been hidden by a members of sub class.
A sub class can call a constructor method defined by its super
class by use of the following form of super.
super (parameter list);
4
8/8/2019 Core Java Notes
5/68
Here parameter list specifies any parameters needed by the
constructor in the super class .super ( ) must always be the
first statement executed inside a sub class constructor. super
refers to the super class of the sub class in which it is used.
This has the general form. Super. members, here member can
be either a variable or a method.
Method overriding: When a method in a sub class has the
same name, same parameters and same return type as a
method in its super class,then the method in the subclass is
said to override the method in the super class. when an
overridden method is called from within a subclass, it will
always refer to the method defined by the sub class.
Method overriding is done in different classes. It leads
to polymorphism. Since the appropriate method is called at
run time, it is also called late-binding.
Abstract class: it is a class which may or may not contain
abstract and non-abstract methods. We cant create an object
of an abstract class.
When a class extends an abstract class it must
implement all the abstract methods or else the sub class it self
be declared as abstract.
5
8/8/2019 Core Java Notes
6/68
final: A final class is one, which can not be extended. The
execution of a final class is very fast since there is no
inheritance for a final class and hence there is no overriding
of methods.
Dynamic method Dispatch: Method overriding forms the
basis for one of Javas most powerful concept called
Dynamic method dispatch. Dynamic method dispatch is the
mechanism by which a call to an overridden method is
resolved at run time, rather than at compile time. This is
important because this is how Java implements run time
polymorphism.
Object class: It is the super class of all classes in Java.
Hence the methods in this class are overridden by its
subclasses. Some of the important methods in this class are
equals( ), finalize ( ), notify ( ), notify All ( ), to String (
), wait ( ) etc.,
********** E N D *********
6
8/8/2019 Core Java Notes
7/68
8/8/2019 Core Java Notes
8/68
Importing a package :
A package in Java can be imported by using the key
word import
Eg:
import java.awt.*;
means all classes and interfaces in that package are available
to the given Java program
********************* E N D **********
Exception Handling
A Java exception is an object that describes an
exceptional condition that has occurred in a program.
Exceptions are the errors occurred at run time. By using
Exceptional handling we can make an abnormal program as a
normal program. Bu using exception handling we can predictthe flow of a program and can take necessary steps for its
normal flow.
The super class of all the exceptions is Throwable
8
8/8/2019 Core Java Notes
9/68
class. It has two subclass namely Error and Exception
classes. Error is the class which we cant avoid those errors
occurred at run time.
Exception is the class where we can handle those
errors.Exception has two sub classes namely Checked
exception and UncheckedException
Checked Exceptions: Those are the subclasses of the
Exception class. These are the errors occurred at run time
which can not be programmatically rectified.
Unchecked Exception: These are the errors occurred at run
time which can be programmatically rectified.
These are also called RunTimeExceptions.Most of the
exceptions are subclasses of RunTimeException class.
There are five key words used in Exception Handling of
Java. They are :
try
catch
finally
throw
throws
try:
9
8/8/2019 Core Java Notes
10/68
A try block is used to encapsulate a piece of code where
we may be expecting some run time errors.If this try block
finds any run time error,it throws those errors to a suitable
catch block.
If there is no run time error in the try block, then the
execution of the program is normal.
A try block must always be associated with atleast one catch
block or a finally block or both.
A try block may have multiple catch blocks, only one of
those multiple catch blocks will be executed.
catch :
The error thrown by a try block is caught in this catch
block.A catch block is always followed by a try block.
A catch block takes one parameter of type Exception
class.
If there are multiple catch blocks for a given try block,
the catch block which contains Super class Exception should
come after all sub class Exception catch blocks.
finally :
This finally block is used to execute whether an
Exception is caught or uncaught.
10
8/8/2019 Core Java Notes
11/68
This is followed by catch blocks or a simple try block.
This is mainly used to know the follow of execution of a
given program.
throw :
This is used to throw some predefined Exceptions
explicitly.It is mainly used to create User Defined
Exceptions.
throws :
This is used to throw Exceptions from methods.Most of
the checked exceptions use throws in Java programs.
Generally this is used while writing IO programs,JDBC
programs and other advanced Java Programs like Servlets,
RMI etc
Javas built in Exceptions :
There are many built in Exceptions in Java.These
are of type Exception and its sub class Exceptions.
Some of the important built in Exceptions in Exception
class are:
ArithmeticException
NumberFormatException
11
8/8/2019 Core Java Notes
12/68
ArrayIndexOutOfBoundsException
IndexOutOfBoundsException
IOException
InterruptedException etc
User Defined Exceptions :
In addition to built in Exceptions or predefined
Exceptions, we can create User Defined Exceptions also
depending upon the type of application.
User Defined Exception can be created by extending
Exception class.
Question: List out by an example the way to create user
defined exception (or) write a program to create user defined
exception.
Solution:
Generally user defined exceptions are used in practical
applications. All user defined exceptions extend Exception
class.
The following MyownException extends exception
class.
12
8/8/2019 Core Java Notes
13/68
// program to create user defined exception class named
//MyownException
//Program solution
class MyownException extends Exception
{
MyownException ( )
{ }
public String getMessage ( )
{
return in sufficient funds;
}
}
class Exceptiondemo
{
public static void main (String args [ ] )
{
try
{
int amount= Integer. parseInt(args [0]) ;
if (amount < 500)
{
13
8/8/2019 Core Java Notes
14/68
throw new MyownException ( );
}
}
catch (MyownException m )
{
System.out. println (m. getMessage ( ) ) ;
}
}
}
In the above program, the amount is entered from the
command line and if the amount is less than 500, it will
throw an user defined exception
********* E N D *********
14
8/8/2019 Core Java Notes
15/68
Multi Threading :Multi Threading is the concept used in Java based
on Multi tasking.Multi Threading is the technique used to
perform many things simultaneously. By using multithreading, we can make CPU more busy and hence reduce
the idle time of CPU.
Java Thread Model:
This model is also similar to process based multi
tasking. A Thread is a separate path of execution in a
program. In Multi Threading model of multi tasking all
thread have same address and are called light weight
components.Thread Priorities : Thread priorities are used by thread
scheduler to decide when each thread should be allowed to
run.These are the integer values.
There are three types of Thread priorities:
They are :
MIN_PRIORITY
MAX_PRIORITY
NORM_PRIORITY
MIN_PRIORITY........VALUE IS 1
MAX_PRIORITY........VALUE IS 10
NORM_PRIORITY........VALUE IS 5
Synchronization :
When two or more threads need access to a sharedresource,they need some way to ensure that the resource will
be used by only one thread at a time.This is called
Synchronization.
By using this, the code is safe and the resource is not
15
8/8/2019 Core Java Notes
16/68
corrupted. But the draw back is the execution is little bit
slow.
Creating a thread:
We can create our own thread by extending a Thread class or
implementing a Runnable interface.
Imp.methods in Thread class:
String getName(): Obtain thread's name
int getPriority(): Obtain a thread's priority.
boolean isAlive() : Determine if a thread is still running or
not
static void sleep(long milliseconds): suspend a thread for aperiod of time.
public void start() : Start a thread by calling it's run method.
Imp.methods in Runnable interface;
public void run() :this method must be implemented by
any class that implements this interface.
Creating Multiple Threads :
We can create multiple threads either by using a
Thread class or a Runnable interface.
Eg:
Creating three user defined threads Thread1,Thread2
and Thread3 by extending a Thread class;
//creation of multiple threads
class Thread1 extends Thread{}
class Thread2 extends Thread
{}
class Thread3 extends Thread
{}
16
8/8/2019 Core Java Notes
17/68
class Threaddemo
{
public static void main(String args[])
{
Thread1 t1=new Thread1();
Thread1 t2=new Thread2();
Thread1 t3=new Thread3();
}
}
Life cycle of a thread: In multithreading a thread is a
separate path of execution in a program. Every thread has 5
life cycle stages. They are:-
1.New born state
2.Runnable state
3.Running state
4.Blocked state
5. Dead state
A thread is in one of these five states .It can move from one
state to other state.
New born state: When a thread object is created the thread
is born and is said to be in new born state.
Runnable state: in this state, the thread is ready for
execution and is waiting for the availability of the processor.
Running state: Running means that the processor has given
17
8/8/2019 Core Java Notes
18/68
its time to the thread for its execution.
Blocked state: A thread is blocked when it is prevented from
entering into the runnable state and subsequently in the
running state. This happens when the thread is suspended,
sleeping or waiting in order to satisfy certain requirements.
Dead state: it is the last stage of a thread .A running thread
ends its life when it has completed executing its run ( )
method. It is a natural death.
Interthread Communication :
Inter thread communication in Java is done by means of three
methods.
They are wait(),notify() and notifyAll() methods.These
methods are called only from a synchronized method.
************** E N D **************
18
8/8/2019 Core Java Notes
19/68
String Handling
String is an array of characters in many programming
languages.In Java String is also an array of characters.
But mainly a String is a class in Java.It is a predefined class
in java.lang package.
Java.lang package is a default package in Java.
There are two String Handling classes available in Java
namely
String
StringBuffer
Both String and StringBuffer are final classes.
Both these classes are available in java.lang package.
String :
It is a final class in java.lang package.
A String class is an object in Java.A String is immutable, which means that it is fixed and the
contents of a String are always constant.
String constructors :
We can create an object of a String class by different ways
by using different types of constructors.
String s1=new String()
String s2=new String(program);
String s3=new String(s2);String s4=program;
char name[]={J,I,T,M};
String s5=new String(name);
There are many methods available in String class.
19
8/8/2019 Core Java Notes
20/68
Some of the important methods are:
length():
This method is used to find the length or size of a
String.This method returns number of characters present in
the given String.
Syntax of the method:
int length()
Eg:
String s=CoreJava;
int i=s.length();
length() returns the length of the string and its length is
stored in i which is 8concat():
This method is used to join or concat two strings.
The return type of this method is String.
This method takes one parameter which is also a String
String concat(String str)
Where str is the String joined to the given String.
Eg:
String s1=Java;
String s2=Program;
String s3=s1.concat(s2);
Where the output of s3 is JavaProgram
Concatenation operator(+):
The operator + is called a concatenation operator.
It is similar to concat() method.
In Java + is used to join any strings.Eg:
String s1=Java;
String s2=Program;
String s3=s1+s2;
20
8/8/2019 Core Java Notes
21/68
Where the output of s3 is JavaProgram
toLowerCase():
This method is used to convert upper case letters of a String
to lowercase.The return type of this method is String.
String toLowerCase()
Eg:
String s=JAVA PROGRAM;
The output of
s.toLowerCase() is java program
toUpperCase():
This method is used to convert lower case letters of a String
to uppercase.The return type of this method is String.String toUpperCase()
Eg:
String s= java;
The output of
s.toLowerCase() is JAVA
trim():
This method is used to filter white spaces before and after a
given String.
This mehod is not used to filter white spaces between any
two words of a String.
The return type of this method is String
String trim()
String s= Learn Java Basics ;
The output of
s.trim() is Learn JavaBasicsreplace():
This method is used to replace a given character of a String
with another new character . The return type of this method
is String.
21
8/8/2019 Core Java Notes
22/68
This method replaces the occurrence of the given character
through out the String by the new character.
String replace(char original,char new)
Eg:
String s=Liver;
The output of
s.replace(L,R) is River
String Comparision Methods:
There are three types of String Comparision in Java.
They are :
(i)equals()
(ii)==(iii)compareTo()
equals():
This method is used to compare actual contents of the two
strings.The return type of this method is a boolean value.
boolean equals(String s)
Eg:
String s1=new String(rama);
String s2=new String(jaya);
String s3=new String(rama);
String s4=new String(RAMA);
The output of
if(s1.equals(s2)) is false
if(s1.equals(s4)) is false
if(s1.equals(s3)) is true
equalsIgnoreCase():
This method is used to compare actual contents of the two
strings same as equals() except that it neglects case
sensitiveness of letters.
22
8/8/2019 Core Java Notes
23/68
Eg:
String s1=new String(rama);
String s2=new String(RAMA);
The output of
if(s1.equals(s2)) is false
if(s1.equalsIgnoreCase(s3)) is true
compareTo():
This method is used to compare two strings depending on the
ASCII values of the characters of the string.
The return type of this method is int.
int compareTo(String s)
Eg:String s1=A123;
String s2=C123;
String s3=A123;
It returns,
0 if s1 is greater than s2 and the output of
s2.compareTo(s1) is 2
=0 if s1 is equal to s2 and he output of
s1.compareTo(s3) is 0
Character Extraction:
The String class provides a number of ways in
which characters can be extracted from a String object.There
are many methods used to extract characters from a
String.The important method is charAt()charAt():
This method is used to extract a single character from a
String.The return type of this method is char.
char charAt(int where)
Here, where is the index of the character.
23
8/8/2019 Core Java Notes
24/68
Eg;
String s=ABCDEF;
s.charAt(2);
where the output is C,since at location 2 there is characterC.
Modifying a String:
There are many ways of modifying a String.Mostly
used modifying method is substring().
substring():
This method is used to return a substring of the given String
starting from the startindex of the given method.
The return type of this method is also a String.
This method is overloaded.(i)String substring(int startindex)
It returns a substring starting from startindex to the end of
the String.
Eg:
String s=Learn from the Basic Concepts;
012345---posions of characters in the String
The output of
s.substring(5) is from the Basic Concepts
(ii)String substring(int startindex,int endindex):
It returns a substring starting from startindex upto the end of
the end index without including endindex.
Eg:
String s=Learn from the Basic Concepts;
0123456789
s.substring(5,9) is fromIn this character in the location of 9 will not be included.
StringBuffer:It is a final class in java.lang package.
A StringBuffer is mutable,which means thatwhich means
that it is not fixed and the contents of a StringBuffer may
24
8/8/2019 Core Java Notes
25/68
change.It is dynamic in nature,where we can insert any
character at any location.
A StringBuffer class stores an additional memory for 16
characters.
There are some methods which are available only in
StringBuffer class only.Some of the important methods are:
capacity():
This method is used to return than memory
capacity of a StringBuffer.The return type of this method is
int.
Eg:StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer(ABCDE);
Sb1.length() is 0 and sb2.length() is 5
sb1.capacity() is 16 where as
sb2.capacity is 21
append():
This method is similar to concat() method in
String class.This method is used to join any string to the
StringBuffer.
The return type of this method is StringBuffer.
StringBuffer append(String s)
Eg:
StringBuffer sb=new StringBuffer(Learn);
Sb.append(Basics);Where the output is LearnBasics
reverse():
This method is used to reverse the characters of a
given StringBuffer.The return type of this method is again a
StringBuffer.
25
8/8/2019 Core Java Notes
26/68
StringBuffer reverse()
Eg:
StringBuffer sb=new StringBuffer(ABCDEF);
sb.reverse();
Where the output is FEDCBA
******* E N D **********
26
8/8/2019 Core Java Notes
27/68
Exploring java.lang
java.lang package is the default package in Java
and it is automatically imported into all Java programs.There are many classes available in java.lang
package.Some of the important classes are :
Number
Math
ObjectRuntime
String
StringBuffer
System
Thread
ThreadGroup
Throwable
Some of the important interfaces are :
Cloneable
Comparable
Runnable
Simple Type Wrappers :
27
8/8/2019 Core Java Notes
28/68
Java uses simple data types like int,float,double,char etc
But these simple types are not objects. Java provides
Wrapper classes to convert simple types to objects.
Wrapper classes:In java all are objects except the primitive
data types.If we want to access primitive data types as
objects we should wrap the primitive data types within a
class.
There are 6 Wrapper classes.They are the sub classes of
Number.They are...
Double,Float,Byte,Short,Integer and Long.
Double d=12.33;
Double dd=new Double(d);
Int i=555;
Integet ii=new Integer(i);
float f=12.33f;
Float ff=new Float(f);
Runtime :
The Runtime class encapsulates the run-time
environment.We cannot instantiate a Runtime object.we can
get an object of Runtime class by calling method
Runtime.getRuntime();
28
8/8/2019 Core Java Notes
29/68
Memory Management:
Even though Java provides automatic garbage
collection,sometimes you will want to know how large the
object heap is and how much of it is left. To obtain these
values, use totalMemory() and freeMemory() methods
defined in Runtime class.
Object :
Object is the super class of all Java classes.
There are many methods available in Object class.
clone() method is used to create a duplicate copy of the
object on which it is called.Only classes that implements
Cloneable interface can be cloned. Cloneable interface
defines no members and it is a marker interface.
Thread :
A Thread is a predefined class in java.lang package. It is
a separate path of execution in a program.
Java uses Threads for implementing Multi Threading in
Java.By using a Thread we can create our own threads.
Runnable :
29
8/8/2019 Core Java Notes
30/68
This is an interface that must be implemented by any
class that will initiate a separate thread of
execution.Runnable defines one abstract method called,run(),
which is the entry point to the thread.
ThreadGroup :
A ThreadGroup is a class, which creates a group of
threads.This offer a convenient way to manage groups of
threads as a unit.
************** E N D *********
30
8/8/2019 Core Java Notes
31/68
Module-III
Java.util
It is the package which is mainly based on Collections.A Collection is a group of objects.Collection Frame work
standardises the way in which groups of objects are handled
by ur programs.These are available in java.util package.
Some imp. classes in java.util package.
ArrayList
HashMap
HashSetTreeSet
HashTable
LinkedList
StringTokenizer
Vector
Stack
Some imp. interfaces in java.util package are:
CollectionEnumeration
Iterator
List
Map
Set
Collection interface is the foundation upon which the
collections framework is built.A collection can not directly store values of type
int,char,double etc..If you want to
store such objects,you have to use primitive wrapers.
31
8/8/2019 Core Java Notes
32/68
List :The List interface extends Colletion and declares the
behavior of a collection that stores a sequence of elements.A
List may contain duplicate elements.
Set : A Set extends Collection and declares the behavior of a
collection that does not allow duplicate elements.
LinkedList:The LinkedList class extends
AbstractSequentialList and implements the List
interface.
ArrayList : ArrayList class extends AbstractList and
implements the List interface.ArrayList supports dynamic
arrays that can grow as needed.It can dynamically
increase or decrease in size.ArrayList are created with aninitial size.when this size is exceeded ,it is automatically
enlarged.When objects are removed,the array may be shrunk.
HashSet : HashSet extends AbstractSet and implements the
Set interface.In a HashSet the elements are not stored in a
sorted order.
TreeSet : TreeSet provides an information of the Set
interface that uses a tree for storage.
Objects are stored in sorted,ascending order.Access and
retrieval times are quite fast,which makes TreeSet an
excellent choice when storing large amounts of sorted
information that must be found quickly.
Iterator : An Iterator interface is used to cycle through the
elements in a collection.
This is also done by a ListIterator interface.Iterator enables
you to cycle through a collection,obtaining or removingelements.
ListIterator:
ListIterator extends Iterator to allow bidirectional traversal of
a list.
32
8/8/2019 Core Java Notes
33/68
Map : A Map interface is an object that stores associations
between keys and values or key/value pairs.Given a key we
can find its value.Both keys and values are objects.The
keysmust be unique,but the values may be duplicated.Some
may accept a null key and a null value.Map.Entry describes
an element(key/value pair)in a map.This is an inner class of
Map.
Enumeration : Enumeration interface defines the methods
by which you can enumerate(obtain one at a time)the
elements in a collection of objects.This is superceded by
Iterator.
Enumeration has two methods.boolean hasMoreElements()
Object nextElement()
Vector : Vector implements a dynamic array.It is similar to
ArrayList, but Vector vector is synchronised.A Vector
extends AbstractList and implements the List interface.
Stack : Stack is a subclass of Vector that implements a Last-
In,First-Out(LIFO) stack.
There are two opearation in Stack.Push n Pop operation.Push
operation adds an object to the
stack n Pop operation deletes an object from stack.
Dictionary : It is an abstract class that represents a key/value
pair like a Map.
HashTable : HashTable class is similar to a HashMap,but
HashTable is synchronized.
HashTable stores key/value pairs in a hash table.When usinga HashTable,you specify an object that is used as a key,and
the value that you want linked to that key.
StringTokenizer:It is mainly used for parsing.To use a
StringTokenizer,you specify an input string and a string that
contains Delimiters.Delimiters are characters that seperate
33
8/8/2019 Core Java Notes
34/68
tokens.Each character in the delimiters string is considered a
valid delimiter.For example ",;:"sets the delimiters to
comma,semicolon,and colon.
The Collection Algorithms:
The collections framework
Defines several algorithms that can be applied to collections
and maps.These algorithms are defined as static methods
within the Collections class.Several of the methods can throw
a ClassCastException,which occurs when an attempt is made
to compare incompatible types.
The Legacy classes and Interfaces:
Legacy classes and interfaces are sysnchronized.Butnone of the collection classes are synchronized.The legacy
classes defined by java.util package are
Dictionary
Hashtable
Properties
Stack
Vector
There is only one legacy interface called Enumeration
Random:
Random class is a generator of pseudorandom numbers.
Observable:
The Observable class is used to create sub classes that
other parts of your program can observe.When an object ofsuch a sub class undergoes a change, observing classes are
notified.
Observing classes must implement the Observer
interface, which defines the update() method.
34
8/8/2019 Core Java Notes
35/68
****** E N D ******
35
8/8/2019 Core Java Notes
36/68
Java.iojava.io is a package in Java to perform input and output
operations.
Stream is an abstraction that either produces or consumesinformation.A stream is linked to a physical device by the
java i/o system.
System class defines three predefined stream variables
namely in,out,err
System.out refers to the standard output stream.By default,
this is the console.System.err refers to the standard error
stream,which is also the console by default.System.in refers
to standard input,which is the keyboard by default.Streams are two types.Byte streams and Character
streams.
(i)Byte Streams :
Byte streams provide a convenient means for handling
input and output of bytes. Byte streams are used when
reading or writing binary data.
Byte streams are defined by two classes namelyInputStream and OutputStream
(ii)Character Streams :
Character streams provide a convenient means for
handling input and output of characters.
Character streams are defined by two classes namely
Reader and Writer.
Serialization:
Serialization is the process of writing the state of an
object to a byte stream.This is useful when you want to save
36
8/8/2019 Core Java Notes
37/68
the state of your program to a persistent storage area, such as
a file.
Serialization is mainly needed to implement
Remote Method Invocation (RMI)
Serializable :
A Serializable is an interface.This interface has no
variables or methods. It is also called as Marker interface.
A Serialazable interface is used to make a class as
serialized.If a class is serialazable,all of its subclasses are
also serializable.
****** E N D ******
37
8/8/2019 Core Java Notes
38/68
Networking:
A network is a set of computers and peripherals, which are
physically connected together. Networking enables sharingof resources and communication. Internet is a network of
networks.
Java applets can be downloaded from a website. Networking
in java is possible through the use of java.net package.
Protocols: Communication between computers in a networkor a different networks require a certain set of rules called
protocol. Java networking is done using TCP/IP protocol.
Some of the different kinds of protocols available are HTTP,
FTP, SMTP.
HTTP: hyper text transfer protocol enables interaction with
the internet. It is the underlying protocol of www
FTP: file transfer protocol enables transfer of files between
computers.
SMTP: SimpleMailTransferProtocol is used to send email
between machines.
Client /Server: A computer which requests for some service
from another computer is called client. The one that
processes the request is called a server.
38
8/8/2019 Core Java Notes
39/68
Internet Address: Every computer connected to a network
has a unique IP address. An IP address is a 32- bit number
which has four numbers separated by period. A sample IP
address is given below.
80. 0 . 0 . 53
Domain Naming Service: it is very difficult to remember a
set of numbers (IP address) to connect to the internet .The
DomainNaming Service (DNS) is used to overcome this
problem. It maps one particular IP address to a string of
characters Eg: www.yahoo.com.
Port: It is a number given for a particular application
running in a system.
For a system there will be only one connection to
network, but there could be many applications running in the
system. So, for communicating with each of these
applications unique number is given. This number is known
as a port number.
Each port is identified by a number from 0 to 65, 535.
Each port can be allocated to a particular service port number
.7 is assigned for ECHO, 21 is assigned for FTP, 23 is for
Telnet, 25 is for e-mail, 80 for HTTP and 1099 for RMI
39
8/8/2019 Core Java Notes
40/68
registry.
Networking classes and interfaces: All these classes and
interfaces are contained in java.net package.
DatagramPacket,DatagramSocket,InetAddress,Socket,
ServerSocket, URL, URLConnection etc., are some of the
important classes in networking.
FileNameMap,SocketImplFactory, SocketOptions are
important interfaces in this networking.
Whois: It is a simple directory service protocol. It was
originally designed to keep track of administrators
responsible for internet hosts and domains.
A Whois client connects to one of several central
servers and requests directory information for a person or
persons. It can usually give you a phone number and an
e-mail address.
SocketBasics:
A socket is a connection between two hosts. It can
perform seven basic operations.
1.Connect to a remote machine.
2.Send data
40
8/8/2019 Core Java Notes
41/68
3.Receive data
4.Close a connection
5.Bind a port
6.Listen for incoming data
7.Accept connections from remote machines on the bound
port.
Javas Socket class, which is used by both clients and
servers, has methods that correspond to the first four of these
operations. The last three are needed only by servers which
wait for clients to connect to them. They are implemented by
the ServerSocket class.
Socket class is used to perform client side TCP
operations.
ServerSocket class contain every thing you need to write
servers in Java.
URL: is called as Uniform Resource Locator and is a
reference or an address to a resource on the internet.
A URL has two main components.
1. Protocol Identifier 2. Resource name.
Eg: The following is an example of a URL which addresses
41
8/8/2019 Core Java Notes
42/68
the java web site hosted by SunMicroSystem .
http://java.sun.com.
Protocol Identifier is http
Resource name is java.sun.com
URL Connection: it is a general purpose class for accessing
the attributes of a remote resource. Once you make a
connection to a remote server, you can use URLConnection
to inspect the prosperities of the remote object before
actually transporting it locally.
TCP (Transmission Control Protocol)
It is a connection based protocol that provides a reliable
flow of data between two computer, this is analogous to
making phone call. It provides point-to-point channel for
application that require reliable communication HTTP, FTP,
Telnet etc., are TCP protocols.
UDP (User Datagram protocol)
It is a connection less oriented protocol. It sends
independent packets of data from one computer to another
with no guarantees about arrival.This is analogous to sending
a letter through the postal service
42
8/8/2019 Core Java Notes
43/68
8/8/2019 Core Java Notes
44/68
AppletAn Applet is a Java program which runs from a Java
enabled web browser.
It also runs by using an appletviewer which is a tool fromjdk(Java Development Kit)
Applet is a class in java.applet package.
Writing an Applet program:
We have to import two packages to write an Applet
Program.Those packages arejava.awt andjava.applet
There is no main() method in an Applet program.It has
an init() method where the execution of the Applet
begins.
We have to write an tag in order to see the
output of an Applet Program.
tag contains three mandatory attributes
namely code,width and height
We can use an tag in the same Java file where
your Applet program is written by commenting it.We
can also separately use this tag in a html file.Applet Architecture :
Applet is a window based program which runs by using
a Java compatible browser or an appletviewer. Its
architecture is different from a console based application
programs.
Applets are event driven.That is why we have to import
java.awt package also to write Applet programming. All
44
8/8/2019 Core Java Notes
45/68
Applets runs in a window. They have init() method instead of
main() as in console based programs.
Life cycle of an Applet:
There are four stages in the life cycle of an
Applet.These life cycle methods will be automatically
called by the container or browser where the Applet is
running.
The four life cycle methods are:
(i)init()
(ii)start()
(iii)stop()(iv)destroy()
init():
This is the first method called when an Applet is
initialized.This method is called exactly once.During this
method initialization of the Applet will generally be done.
start():
This is the next method called immediately called after the
init() method.This method will be called one or more
number of times.
stop():
This method is called when an Applet moves from one
page to another page.This method will also be called one
or more number of times.
destroy():
This is the last method called by an Applet.This method is
used to relieve the memory resources used by the
Applet.This method will also be called exactly once.
Applet Skeleton :
45
8/8/2019 Core Java Notes
46/68
There are five methods defiend in the skeleton of an
Applet. They are :
(i)init()
(ii)start()
(iii)stop()
(iv)destroy()
(v)paint()
The first four methods are also called life cycle methods
of an Applet.
paint() method is called when an Applets window must be
restored. In this method we can display any thing on the
Applet window.
This method is called when each time Applets output is
redrawn.
Note :
There are three interfaces in java.applet package.They
are AppletContext, AudioClip and AppletStub
AppletContext :
AppletContext is an interface that lets you get information
from the Applets execution environment.
The context of the currently executing Applet is obtained by
46
8/8/2019 Core Java Notes
47/68
a call to the getAppletContext() method defined in Applet
class.
showDocument()
Within an Applet,once you have obtained the Applets
context,you can bring another document into view by calling
showDocument() method. This method has no return values
and throws no exception if it fails.
Writing a SimpleApplet Program:
/*Writing SimpleApplet Program which displays a
message on the Applet window*/
import java.awt.*;
import java.applet.*;
/**/
public class SimpleApplet extends Applet{
public void paint(Graphics g)
{
g.drawString(Welcome to Applets,100,200);
}
}
Passing Parameters to Applets :
We can send parameters to Applet from a HTML file using
tag.A tag contains name and value as a
pair and by giving name we can get the value associated with
47
8/8/2019 Core Java Notes
48/68
that name.
getParameter() of Applet class is used to retrieve the value of
a given name in the tag.
/*Program in which a HTML file passes parameters to an
Applet and those values are displayed in the Applet
Window.*/
import java.awt.*;
import java.applet.*;
/*
*/
public class ParamApplet extends Applet
{
Public void paint(Graphics g)
{
String s=getParameter(Company1);
g.drawString(s,200,300);
}
}
Explanation:
The output of the above program in an Applet window
48
8/8/2019 Core Java Notes
49/68
is Infosys
Note :
There are three interfaces in java.applet package.They
are AppletContext, AudioClip and AppletStub
AppletContext :
AppletContext is an interface that lets you get information
from the Applets execution environment.
The context of the currently executing Applet is obtained by
a call to the getAppletContext() method defined in Applet
class.
showDocument()
Within an Applet,once you have obtained the Applets
context,you can bring another document into view by calling
showDocument() method. This method has no return values
and throws no exception if it fails.
*********** E N D *********
49
8/8/2019 Core Java Notes
50/68
Event Handling
In AWT except Label component all other
components have Listeners.
Event Handling is the technique in which a given component
registers with a Listener and this Listener Handles the event
fired by that Component.
Event Handling Models:
Event Handling models are of two typesThey are :
Hierarchical Event Model
Delegation Event Model
Hierarchical Event Model:
In this type of model, the presentation logic and
business logic are not clearly separated from each other. This
method is now out dated.
Delegation Event Model :
In this type of model, the presentation logic and
business logic are clearly separated from each other.
Hence both presentation and Business logic are independent
of each other and the changes made in one logic has no effect
on other logic.
Event:
An event is an object that describes a state change in a
source.
An Action performed on a component is an Event.Some of
the activities that cause events to be generated are pressing
50
8/8/2019 Core Java Notes
51/68
a button,entering a character in a text field,selecting an
item in a choice,double clicking an item in a list,clicking
the mouse etc..
Event Source:
The Component on which the event has occurred is calledthe Event Source object.
Event class :
It is the class which is generated by the component
when Event Handling is done.
Suppose when a Button component is clicked,it generated
ActionEvent class.There are many types of Event classes available in
java.awt.event package.Some of the Event classes are:
Event ClassesActionEvent class is occurred
(i)When U click a button an Action Event occurs.(ii)Double clicking a List Item.
(iii)When U click a Menu Item.Adjustment Event class is occurred
When a Scrollbar is manipulatedTextEvent class is occurred
When U change the contents of the Text field or Textarea.
Item Event class is occurred
Generated when a check box or list item is clicked.It
also occurs when a choice selection is made.ComponentEvent class is occurred
Generated when a component ishidden,moved,resized,or becomes visible
ContainerEvent class is occurred
51
8/8/2019 Core Java Notes
52/68
When U Add a Component or Remove a Componentfrom a Container
FocusEvent class is occurred
When a component is receiving the focus and losingfocus.
WindowEvent class is occurred
Generated when a window isactivated,closed,deactivated,deiconified,iconified,
opened,or quitKeyEvent class is occurred
Generated when input is received from keyboard
MouseEvent class is occurredGenerated when the mouse is
dragged,moved,clicked,pressed,or released.It alsogenerated when the mouse enters or exits acomponent
Event Listener interface :
It is the listener which is registered with a given
component when an event occurs.
Suppose when a Button is clicked, ActionListener is
registered with it and the corresponding method of this
ActionListener interface to be implemented is
actionPerformed() method
Adapter Class:
An Adapter Class is a class that already implement all the
methods in its corresponding interface.
An Adapter class provides an empty implementation of allmethods in an event listener interface.Adapter classes are
used when only some of the events are to be received and
processed that are handled by a particular listener interface.
For example,MouseMotionAdapter class has two
methods.mouseDragged() and mouseMoved().The signatures
52
8/8/2019 Core Java Notes
53/68
of these empty methods are defined in the
MouseMotionListener interface.If only mouse dragged
events are to be performed then simply extend
MouseMotionAdapter and implement mouseDragged().The
empty implementation of mouseMoved() would handle the
mouse motion events.
Commonly used Adapter classes injava.awt.event package
and the interfaces are:
MouseAdapter class and the corresponding Listener
interface is MouseListener
MouseMotionAdapter class and the corresponding Listener
interface is MouseMotionListenerWindowAdapter class and the corresponding Listener
interface is WindowListener
********* E N D **********
53
8/8/2019 Core Java Notes
54/68
Module IV
AWT
AWT , Abstract Window Toolkit in Java is used to
write GUI programs.Today most of the front ends are
using Graphical User Interface(GUI) programming due to
many benefits such as user friendly,attractive,uses
different colors,uses many pictures,uses images,simulates
real world components etcJava provides powerful GUI programming by
using AWT.
The super class of all AWT components is Component.The
sub class of Component is Container.
Container has two sub classes namely Window and Panel
Window:
Window is the top level class which sits directlyon the desktop.It has again two sub classes namely Frame
and Dialog.
Frame:
It is the sub class of Window.A Frame contains
title,background,foreground,other controls like
minimize,maximize etc
Most of the AWT Programs are using a Frame window as
their container.The default Layout Manager of a Frame Window is a
BorderLayout.
The two important methods used in a Frame class are
void setSize(int width,int height)
54
8/8/2019 Core Java Notes
55/68
8/8/2019 Core Java Notes
56/68
8/8/2019 Core Java Notes
57/68
Font(String s,int style,int size)
Where s is the name of the Font like
TimesRoman,Sanserif,Monospaced etc
Where style is BOLD,ITALIC,PLAIN or combination
of styles and size is the size of Font
Eg:
Font f1=new Font(TimesRoman,Font.BOLD,40);
Font f2=new Font(Monospaced,Font.ITALIC,70);
Where f1,f2 are different objects of class Font
//Program working with Graphics by using Color and
Font classes.
import java.awt.*;
import java.applet.*;
/**/
public class NameApplet extends Applet
{
public void paint(Graphics g)
{
Font f=new Font(TimesRoman,Font.BOLD,50);
g.setFont(f);
Color c=new Color(100,200,60);
g.setColor(c);
g.drawString(Working with Graphics,100,200);
}}
Controls used in AWT:
There are many controls used in AWT.
Some of the important controls used in AWT are
57
8/8/2019 Core Java Notes
58/68
Label
Button
Checkbox
Choice
List
TextField
TextArea
Except Label Component all other Components
have listeners.
Layout Managers :
It is essential to align the components properly in a
given Container.Alignment of Components is verydifficult .This difficulty is avoided by using a proper Layout
Manager.
There are many types of Layout managers used in
AWT.Some of the important Layout Managers are
(i)BorderLayout
(ii)FlowLayout
(iii)GridLayout
(iv)CardLayout
(v)GridbagLayout
Reflection:Reflection is the ability of a program to analyze itself. The
java.lang.reflect package provides the ability to obtain
information about the fields,constructors,methods, and
modifiers of a class.
Reflection is used to determine dynamically the
characteristics of a component
Remote Method Invocation(RMI) :
58
8/8/2019 Core Java Notes
59/68
Remote method invocation(RMI) is a distributed
application developed in Java.By using RMI, we can invoke
the method available in a remote machine.\
In RMI we have two machines where one machine acts
as a Server and another machine acts as a Client.
To run an RMI application, we have to start RMIRegistry
and we are using rmic compiler to create stubs and skeleton.
**************** E N D ********
59
8/8/2019 Core Java Notes
60/68
Swing Swing is an extension of AWT components in Java. Eventhough Java is platform independent language AWT
components are platform dependent.Hence the look and feelof AWT Components varies from one operating system to
other. Swing components are platform independent and hencelook and feel of these components is same on all operating
systems.In addition Swing includes have more features such
as TabbedPanes,Trees,Tables etc
In Swing the visible components starts with J and thesuper class of all components is JComponent.
Some of the important Components in Swing are
JLabel
JButton
JCheckBox
JRadioButton
JCombobox
JListJScrollPane
JTextField
JPassword
JTextArea
JOptionPane
JTable
JTree
JTabbedPane
NOTE:
We have to import java.awt and javax.swing package to write
Swing programs
All the above Swing Components extends JApplet.
60
8/8/2019 Core Java Notes
61/68
The main difference between Applet and JApplet is,in Applet
we are directly adding components to the Applet where as in
JApplet we are adding components to the ContentPane.
JApplet:Swing version of Applet.All swing visible
components extends JApplet
Icons and Labels:
InSwing,icons are encapsulated by the ImageIcon class.Two
of its constructors are
ImageIcon(String filename) where filename is the name of
the image
ImageIcon(URL url) where url is the location of the image.
JLabel:
We can create an object of a JLabel component by using the
constructor
JLabel() which is an empty constructor
JLabel(String s) where s is the name of the label
JTextField :
We can create an object of a TextField in swing by using the
constrcuctors
JTextField(int width) where width is the width of the text
field
JTextField(String s) where s is a String displayed in the text
61
8/8/2019 Core Java Notes
62/68
field.
JButton :
We can create an object of a Button in swing by using the
constructors
JButton() where it creates a button without any name
JButton(String s) where it creates a button where s is its
name
JComboBox :
It is similar to Choice in AWT.
We can create an object of a JComboBox by using its
default constructor.
JComboBox()
We can add item to the combo box by using
addItem(Object obj) method
TabbedPane :
It is a component that appears as a group of folders in a file
cabinet.Each folder has a title.When a user selects a folder,
its contents become visible.Only one of the folder is selected
at a time.Tabbed panes are generally used for configuration
options.
We can create an object of a Tabbed Pane by using the class
62
8/8/2019 Core Java Notes
63/68
8/8/2019 Core Java Notes
64/68
JDBC(Java Data Base Connectivity)
Jdbc is a technology used to connect a Java program to any
data base.
We have to import java.sql package for writing JDBC
programs in Java
Types of Drivers used in JDBC :
There are four types of drivers supplied by Sun
Micro Systems to connect a Java Program to any data
base.
They are :
Type I:
JDBC-ODBC Bridge Driver
Type II
Native protocol partly Java Driver
Type III
Net protocol pure Java Driver
Type IV
Native protocol pure Java Driver
Above all Jdbc-Odbc Bridge Driver is the
64
8/8/2019 Core Java Notes
65/68
simplest Driver used to connect to any data base.
Steps in writing a JDBC program:
The following steps are followed while writing a JDBC
program.
Step 1:
Loading the driver.The statement used for this step is
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
Step 2:Getting the Connection object
Connection
con=DriverManager.getConnection(jdbc:odbc:dsn,scott,
tiger); which is used to connect to Oracle data base
Step 3:Creating the Statement object
Statement st=con.createStatement();
Step 4:
Using the sql statements
int i=st.executeUpdate(CREATE TABLE ECEStudent(rnonumber,name varchar(10)));
/*Writng a JDBC program which is used to create a table
65
8/8/2019 Core Java Notes
66/68
8/8/2019 Core Java Notes
67/68
catch(Exception e)
{
System.out.println(Error is +e);
}
}
}
**************** E N D ***********
67
8/8/2019 Core Java Notes
68/68