Java Basics-Part 2
2000 West Park Drive
Westborough MA 01581 USA
Phone: 508 389 7300 Fax: 508 366 9901
The entire contents of this document are subject to copyright with all rights reserved. All copyrightable text and graphics, the selection, arrangement and presentation
of all information and the overall design of the document are the sole and exclusive property of Virtusa.
Copyright 2014 Virtusa Corporation. All rights reserved
Module Overview
Purpose:
The following module hierarchy presents the technical modules required to build the basic IT skills and
acquaints you with relevant technology basics.
The current module Java Basics2(highlight in red) underwrites the usage of Multithreading,
Collections and Input/output in Java Programming and will enable you to enhance ones coding skills in
multithreaded applications, collections and file handling.
Modules
OS &
UNIX
SE UML
SQL
SQL1
Java
Basics
PLSQL
SQL2
PLSQL 1
PLSQL2
Java
Basics1
* Recommended duration to complete Java Basics2 module: 24 hours
2
Adv. JAVA
Java
Basics2
HTML
CSS
Java
Script
Module Objectives
By the end of this module, you will be able to:
Collections Framework:
Define Java Collections API and their usage in real time applications
Implement Collection Implementation classes i.e. List, Set, Queue and Map
Sorting in Collections and use the Utility classes (i.e. Collections and Arrays)
Multithreading:
Define the use of Multithreading and a Thread lifecycle in a Java application
Write and Execute Multithreaded Java programs
Use Thread Synchronization and Inter-thread communication in a Thread-safe
application
IO Streams:
Define Standard Input and Output Stream classes and use them in a Java application
Define File Input and Output Stream classes and use them for data storage and
retrieval
Implement Object Serialization and Deserialization
Collections Framework
Define Java Collections API and their usage in real time applications
What is Collection?
A collection is a group of data manipulate as a single object.
Collection
Usage of Collections in Java
Collections in java is a framework that provides an
architecture to store and manipulate the group of objects.
All the operations that you perform on a data such as
searching, sorting, insertion, manipulation, deletion etc.
can be performed by Java Collections.
List, Queue, Set interfaces extends Collection interface.
ArrayList, PriorityQueue and HashSet class implements the
List, Queue and Set interface respectively.
extends
List
implements
extends
Queue
implements
ArrayList
extends
Set
implements
Priority
Queue
Collection Hierarchy in Java
Reference http://www.javatpoint.com/collections-in-java
HashSet
Collections Framework
Implement ArrayList in Java Collections
What is ArrayList?
ArrayList is a variable-length array of object
references.
Usage of List:
The ArrayList class extends AbstractList and
implements the List interface. ArrayList supports
dynamic arrays that can grow as needed.
In Java, standard arrays are of a fixed length.
After arrays are created, they cannot grow or
shrink, which means that you must know in
advance how many elements an array will hold.
To handle this situation, the collections
framework defines ArrayList.
Reference http://www.javatpoint.com/collections-in-java
Collection
Set
List
extends
SortedSet
Queue
implements
ArrayList
List in Collection Framework
Collections Framework
Implement HashSet in Java Collections
What is HashSet?
HashSet is a collection variable-length array of
object references.
Usage of HashSet
HashSet extends AbstractSet and implements
the Set interface. It creates a collection that uses a
hash table for storage.
A hash table stores information by using a
mechanism called hashing.
In hashing, the informational content of a key is
used to determine a unique value, called its hash
code.
The advantage of hashing is that it allows the
execution time of basic operations, such as add(
), contains( ), remove( ), and size( ), to remain
constant even for large sets.
Reference http://www.javatpoint.com/collections-in-java
Collection
Framework
Abstract
Collection
Set Interface
implements
AbstractSet
extends
HashSet
HashSet in Collection Framework
Collections Framework
Implement HashMap in Java Collections
What is HashMap?
<<interface>>
Map
The HashMap class uses a hash table
to implement the Map interface.
extends
<<interface>>
SortedMap
Usage of HashMap
HashMap implements Map and
extends AbstractMap. It does not
add any methods of its own.
A hash map does not guarantee
the order of its elements.
The order in which elements are
added to a hash map is not
necessarily the order in which
they are read by an iterator.
implements
<<class>>
Hashtable
implements implements
<<class>>
Linked
HashMap
implements
<<class>>
Hash
Map
HashMap in Collection Framework
Reference http://www.javatpoint.com/collections-in-java
<<class>>
Tree Map
Collections Framework
Implement Comparable and Comparator in Java Collections
What is Comparable interface?
Comparable interface is used to order the Collection objects.
Usage of Comparable interface
This interface is found in java.lang package and contains only one
method named compareTo(Object).It provide only single sorting
sequence i.e. you can sort the elements on based on single data
member only.
<<interface>>
Java.lang.Comparable
compareTo(object)
equals(object1,object2)
What is Comparator interface?
Comparator interface is used to order the Collection objects.
Usage of Comparator interface
This interface is found in java.util package and contains 2
methods compare(Object obj1,Object obj2) and equals(Object
element).
It provides multiple sorting sequence i.e. you can sort the
elements based on any data member.
Reference
<<interface>>
Java..lang.Comparator
compare(object1,object2)
equals(object1,object2)
Comparable and Comparator in
Collection framework
http://www.javatpoint.com/Comparable-interface-in-collection-framework
http://www.javatpoint.com/Comparator-interface-in-collection-framework
Multithreading
Implement Multithreading in Java
What is Multithreading?
Multithreading in java is a process of executing
multiple threads simultaneously.
Thread is basically a lightweight sub-process, a
smallest unit of processing.
Usage of Multithreading
Java Multithreading is mostly used in games,
animation etc.
Advantage of Java Multithreading
User can perform multiple operations at same
time.
Threads are independent so it doesn't affect
other threads if exception occur in a single thread.
Thread has a Lifecycle from new state to dead
state
Reference
Thread
step 1
newly
created
Runnable
step 3
step 4
Running
step 5
step 2
Blocked
Start
thread
http://www.javatpoint.com/multithreading-in-java
http://www.javatpoint.com/life-cycle-of-a-thread
step 6
Dead
Thread Lifecycle
Multithreading
Creating Threads in Java
How to create thread
There are two ways to create a thread:
By extending Thread class
By implementing Runnable interface
java.lang.Object
java.lang.Runnable
Usage of Thread class:
Thread class provide constructors and
methods to create and perform operations
on a thread.
Thread class extends Object class and
implements Runnable interface.
extends
implements
java.lang.Thread
Usage of Runnable interface:
The Runnable interface should be
implemented by any class whose instances
are intended to be executed by a thread.
Runnable interface have only one method
named run().
public void run(): is used to perform action
for a thread.
Reference
10
http://www.javatpoint.com/creating-thread
Thread class and Runnable interface
Multithreading
Thread Synchronization in java
What is Synchronization?
Synchronization in java is the capability of
control the access of multiple threads to any
shared resource.
Java Synchronization is better option where
we want to allow only one thread to access
the shared resource.
Main Thread
(JVM starts this thread)
Worker Thread1
(Started by You-t1))
Perform
count task
Worker Thread
(Started by you-t2)
Perform
count task
Why use Synchronization?
The synchronization is mainly used to
To prevent thread interference.
To prevent consistency problem.
Thread Synchronization
Reference
11
http://www.javatpoint.com/synchronization-in-java
Input/output Stream in Java
IO Stream in java
What is a Stream?
A stream is a sequence of data. In Java a stream is
composed of bytes. It's called a stream because it's
like a stream of water that continues to flow.
Three streams are created for us automatically:
1) System.out: standard output stream
2) System.in: standard input stream
3) System.err: standard error
Usage of Stream:
Java encapsulates Stream under java.io package. Java
defines two types of streams:
1. Byte Stream: It provides a convenient means for
handling input and output of byte.
2. Character Stream: It provides a convenient means
for handling input and output of characters.
Reference
12
http://www.javatpoint.com/java-io
Output Stream
Program
Device
Input Stream
Program
Device
IO Stream in Java
Input/output Stream in Java
OutputStream in java
What is OutputStream?
The Java.io.OutputStream class is the superclass
of all classes representing an output stream of
bytes.
Applications that need to define a subclass of
OutputStream must always provide at least a
method that writes one byte of output.
Usage of OutputStream
OutputStream output = new
FileOutputStream("c:\\data\\output-text.txt");
array
file
destination 2
Reference
13
destination 3
destination 1
Java
Application
while(moreData) {
int data = getMoreData();
output.write(data);
}
output.close();
socket
http://tutorials.jenkov.com/java-io/outputstream.html
destination
series of bytes
1100110100, 1100100100
Output Stream in Java
Input/output Stream in Java
InputStream in java
What is InputStream?
The Java.io.InputStream class is the superclass of
all classes representing an input stream of bytes.
Applications that need to define a subclass of
InputStream must always provide a method that
returns the next byte of input.
Usage of InputStream
InputStream input = new FileInputStream("c:\\data\\inputtext.txt");
int data = input.read();
while(data != -1) {
//do something with data...
doSomethingWithData(data);
data = input.read();
}
input.close();
Reference
14
array
file
socket
destination 1 destination 2
destination 3
Source
http://tutorials.jenkov.com/java-io/fileinputstream.html
Java
Application
series of bytes
1100110100, 1100100100
Input Stream in Java
Input/output Stream in Java
Serialization and Deserialization in java
What is Serialization?
Serialization is a process of converting an object into a
sequence of bytes which can be persisted to a disk or
database or can be sent through streams.
What is Deserialization?
The reverse process of creating object from sequence of
bytes is called deserialization.
Java Serializable Interface
java.io.Serializable is a marker interface and has no
fields or methods to implement.
Serialization process is implemented by
ObjectInputStream and ObjectOutputStream, so all we
need is a wrapper over them to either save it to file or
send it over the network.
Reference
15
Object
Serialization
Stream
of Bytes
File
DB
Stream
of Bytes
Deserialization
Object
http://www.studytonight.com/java/serialization-and-deserialization.php
Memory
Additional References
To explore more on the subject, refer the below links and books:
Links:
Collection Frame Work
http://docs.oracle.com/javase/tutorial/collections/index.html
http://tutorials.jenkov.com/java-collections/index.html
Multi threading
http://docs.oracle.com/javase/tutorial/essential/concurrency/
http://tutorials.jenkov.com/java-concurrency/index.html
IO streams
http://docs.oracle.com/javase/tutorial/essential/io/
http://tutorials.jenkov.com/java-io/file.html
Books:
Head First Java
Java Complete Reference
16
Self Check?
Instructions to write Self Evaluation Sheet:
For self evaluation, document all the solution statements, programs and the descriptions in the
Module Self Evaluation Sheet.
Open the below excel sheet, refer to Java Basics 2 sheet, write down the solutions for all
questions, save a local copy in your machine and share the updated sheet with your mentor.
17
Assignment
Refer Assignment Document for this module to proceed with Lab Assignment
Do submit the Solutions for the given assignment and refer the Participant
guide for submission procedure.
18
Queries?
Document all your queries related to the module Java Basics 2 in Q & A Sheet,
and share it with your Program Manager/Mentor for clarifications and solution
statements.
19
Module Summary
Now that you have completed this module, you will be
able to:
20
Define Collections API and its usage in Java
Write a Java program with CRUD operations
Explain Multithreading in Java
Write a multithread java program with concurrent actions
Write and Read a stream of data using files
Write and Read a Character set using files
Serialize and De-serialize the object using files
Thank You
Thanks!
21