Java Programming
(J2EE LC)
Day 3
Session Plan
Day 3
– Java Class Libraries
– Collection Framework
– Exception Handling
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 2
Technologies Ltd Version 1.00
Standard Java Packages
java.lang
– Contains classes that form the basis of the design of the programming language of Java.
– You don’t need to explicitly import this package. It is always imported for you.
– The String class, System class, Thread class, Wrapper classes etc, belong to this package.
java.io
– Input/Output operations in Java is handled by the java.io package.
java.util
– Contains classes and interfaces that provide additional utility.
– Example : creating lists, calendar, date etc.
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 3
Technologies Ltd Version 1.00
Standard Java Packages
java.net
– This package provides classes and interfaces for TCP/IP network programming.
java.awt
– This package is useful to create GUI applications.
java.applet
– This package consists of classes that you need, to write programs to add more
features to a web page.
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 4
Technologies Ltd Version 1.00
Object class Compares two object
references
Part of java.lang package
It is the superclass of all classes
Returns the Class to
which the object
belongs
Object
boolean equals(Object)
Class getClass() Represents an unique
ID for the object
int hashCode()
String toString()
Representsana string
Represents unique
message withobject
ID for the name of
the class that describe
the object
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 5
Technologies Ltd Version 1.00
String class revisited
Present in java.lang package
An object of the String class represents a fixed length, immutable sequence of
characters
Has overridden equals( ) method of the Object class that should be used to
compare the actual string values
Lot of other methods are available which are for the manipulation of characters
of the string.
You can refer to JavaDocs for the detailed list of methods
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 6
Technologies Ltd Version 1.00
StringBuffer class
Present in java.lang package
The prime difference between String and StringBuffer class is that the
StringBuffer represents a string that can be dynamically modified.
String Buffer's capacity could be dynamically increased even though its initial
capacity is specified
Whenever string manipulation like appending, inserting etc is required, this
class should be used
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 7
Technologies Ltd Version 1.00
Wrapper Classes (1 of 2)
There are many generic methods that take in Objects and not primitive data
types as parameters.
We need some mechanism to convert the primitive data type to Objects to use
these generic methods
The wrapper classes in java.lang package help us to do this
To create a Wrapper class object
int primitiveInt = 500;
Integer wrapperInt = new Integer(primitiveInt);
Integer(primitiveInt);
int value = wrapperInt.intValue();
wrapperInt.intValue(); //gives back the primitive data
type int
Wrapper Class -> True Object Oriented implementation of the primitive data
types
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 8
Technologies Ltd Version 1.00
Wrapper Classes (2 of 2)
Data Type Wrapper Class Data Type Wrapper Class
boolean Boolean byte Byte
char Character short Short
long Long int Integer
float Float double Double
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 9
Technologies Ltd Version 1.00
Working with date and time
The java.util package has two important classes Date and GregorianCalendar
GregorianCalendar is a subclass of the abstract class Calendar
Formatting of date in a particular way is possible using the DateFormat class
present in java.text package
You can refer to JavaDocs for the detailed list of methods present in these
classes
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 10
Technologies Ltd Version 1.00
Collections Framework
When do we use the Collection classes?
– When flexibility is required in terms of growing and shrinking in size
– When sequence matters
– When no duplicates are to be allowed
– When a value is to be referred to using a key
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 11
Technologies Ltd Version 1.00
Collections Framework
All collection classes in the Java API implement any one of the three interfaces
– List, Set, Map
List – A collection of objects where the element present at a particular
index is known
Set – A collection that doesn’t allow duplicates
Map – A collection that provides a key-value capability
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 12
Technologies Ltd Version 1.00
Collections Framework
KEY
Collection
extends
(interface)
implements
Set List
(interface) (interface)
SortedSet
(interface)
ArrayList LinkedList Vector
TreeSet LinkedHashSet HashSet
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 13
Technologies Ltd Version 1.00
Collections Framework
KEY
extends
Map
implements
(interface)
SortedMap
(interface)
TreeMap HashMap LinkedHashMap Hashtable
Properties
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 14
Technologies Ltd Version 1.00
Collections Framework
The Collection interface provides important methods which are implemented
by the implementing classes in their own way
– add()
– remove()
– isEmpty()
– size()
– contains()
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 15
Technologies Ltd Version 1.00
Collections Framework
The Map interface similarly provides important methods which are
implemented by the implementing classes in their own way
– clear()
– get()
– containsKey()
– isEmpty()
– size()
– put()
– remove()
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 16
Technologies Ltd Version 1.00
Collections Framework
Enumeration and Iterator interface provides capability to iterate through a collection in a
standard manner independent of implementation
– ArrayList or LinkedList could both be traversed in a similar way
New implementations should preferably use Iterator
Enumeration has methods like
– hasMoreElements () to check for the existence of elements in the collection
– nextElement () to retrieve the next element
Iterator has similar methods like the Enumeration and an additional method to optionally
remove the last element returned by the Iterator
– hasNext()
– next()
– remove()
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 17
Technologies Ltd Version 1.00
Collections Framework
StringTokenizer class is an implementation of Enumeration interface
It helps to split a string into tokens based on a delimiter character
– hasMoreTokens() returns a boolean based on whether more tokens are to be
returned
– nextToken() returns the next token
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 18
Technologies Ltd Version 1.00
Exception Handling in Java (1 of 3)
int i = 5/0;
What happens when the above code is executed ?
Exception is thrown (an object is thrown)
How to recover from this ? (handle it !)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 19
Technologies Ltd Version 1.00
Exception Handling in Java (2 of 3)
An Exception is a run-time error
It is an event that occurs during the execution of a program that disrupts the
normal flow of instructions.
Exception Handler is a set of instructions that handles an exception
The Java programming language provides a mechanism to help programs
report and handle errors
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 20
Technologies Ltd Version 1.00
Exception Handling in Java (3 of 3)
When an error occurs, the program throws an exception
The exception object that is thrown contains information about the exception,
including its type and the state of the program when the error occurred.
The runtime environment attempts to find the Exception Handler
The exception handler can attempt to recover from the error or, if it determines
that the error is unrecoverable, provide a gentle exit from the program.
Helpful in separating the execution code from the error handler
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 21
Technologies Ltd Version 1.00
Exception Handling in Java (Contd…)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 22
Technologies Ltd Version 1.00
Exception Handling in Java (Contd…)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 23
Technologies Ltd Version 1.00
The Hierarchy
Object
Throwable
Error Exception
…. …. Runtime Exception …..
….. ……
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 24
Technologies Ltd Version 1.00
Exceptions and Errors
Exceptions are situations within the control of an application, that it should try
to handle
Errors indicate serious problems and abnormal conditions that most
applications should not try to handle
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 25
Technologies Ltd Version 1.00
Try – Catch - Finally
try {
………
………
………
} catch (exceptionType name) {
………
………
………
} finally {
………
………
………
}
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 26
Technologies Ltd Version 1.00
Try – Catch – Finally- (Contd..)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 27
Technologies Ltd Version 1.00
Try – Catch – Finally- (Contd..)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 28
Technologies Ltd Version 1.00
Try – Catch – Finally- (Contd..)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 29
Technologies Ltd Version 1.00
Finally Block
The finally statement is associated with a try statement and identifies a block of
statements that are executed regardless of whether or not an exception occurs
within the try block.
Defines the code that is executed always
In the normal execution it is executed after the try block
When an exception occurs, it is executed after the handler if any or before
propagation as the case may be
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 30
Technologies Ltd Version 1.00
Finally Block-(Contd…)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 31
Technologies Ltd Version 1.00
Finally Block- (Contd…)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 32
Technologies Ltd Version 1.00
Throwing Exceptions
Use the throw clause to throw an exception
Exceptions in Java are compulsorily of type Throwable
If you attempt to throw an object that is not throwable, the compiler refuses to
compile your program
Can also be used to re-throw an exception
public void read() throws IOException{
IOException{
// Some code that causes IO Exception
throw new IOException();
IOException();
}
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 33
Technologies Ltd Version 1.00
Throwing Exceptions
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 34
Technologies Ltd Version 1.00
Throws
The throws keyword is used along with the declaration of a method that can
throw an exception.
When defining a method you must include a throws clause to declare those
exceptions that might be thrown but is not caught in the method.
This tells other methods
“ If you call me, you must handle these exceptions that I throw”.
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 35
Technologies Ltd Version 1.00
User defined exceptions
We can create our own exception objects, which can be thrown using the throw
keyword
Create a class which extends the Exception class [this is our user-defined
exception class, that we want to throw]
Create an instance of the user-defined exception class.
Use the throw keyword to throw the instance created.
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 36
Technologies Ltd Version 1.00
User defined exceptions-(Contd..)
Please find more explanation of the previous slide in the notes page
(This slide is intentionally left blank)
ER/CORP/CRS/LA10/003
Copyright © 2005, Infosys 37
Technologies Ltd Version 1.00