String trim() ............................................................................................
152
static String valueOf(primitive data type x) ............................................ 153
Java Arrays .......................................................................... 156
Declaring Array Variables: ..................................................................... 156
Example: ............................................................................................... 156
Creating Arrays:..................................................................................... 156
Example: ............................................................................................... 157
Processing Arrays: ................................................................................ 157
Example: ............................................................................................... 157
The foreach Loops:................................................................................ 158
Example: ............................................................................................... 158
Passing Arrays to Methods: ................................................................... 158
Returning an Array from a Method: ....................................................... 159
The Arrays Class: .................................................................................. 159
Java Date and Time ............................................................. 160
Getting Current Date & Time ................................................................. 161
Date Comparison:.................................................................................. 161
Date Formatting using SimpleDateFormat: ........................................... 161
Simple DateFormat format codes: ......................................................... 162
Date Formatting using printf: ................................................................. 162
Date and Time Conversion Characters: ................................................ 164
Parsing Strings into Dates: .................................................................... 165
Sleeping for a While: ............................................................................. 165
Measuring Elapsed Time: ...................................................................... 166
GregorianCalendar Class: ..................................................................... 166
Example: ............................................................................................... 168
Java Regular Expressions.................................................... 170
Capturing Groups: ................................................................................. 170
Example: ............................................................................................... 171
Regular Expression Syntax: .................................................................. 171
Methods of the Matcher Class: .............................................................. 172
Index Methods: ...................................................................................... 172
Study Methods:...................................................................................... 173
Replacement Methods: .......................................................................... 173
The start and end Methods: ................................................................... 173
The matches and lookingAt Methods: ................................................... 174
The replaceFirst and replaceAll Methods: ............................................. 175
The appendReplacement and appendTail Methods: ............................. 175
PatternSyntaxException Class Methods: ............................................... 176
TUTORIALS POINT
Simply Easy Learning
Java Methods ....................................................................... 177
Creating Method: ................................................................................... 177
Example: ............................................................................................... 178
Method Calling:...................................................................................... 178
Example: ............................................................................................... 178
The void Keyword: ................................................................................. 179
Example: ............................................................................................... 179
Passing Parameters by Value: .............................................................. 179
Example: ............................................................................................... 179
Method Overloading: ............................................................................. 180
Using Command-Line Arguments:......................................................... 181
Example: ............................................................................................... 181
The Constructors: .................................................................................. 182
Example: ............................................................................................... 182
Example: ............................................................................................... 182
Variable Arguments(var-args):............................................................... 183
Example: ............................................................................................... 183
The finalize( ) Method: ........................................................................... 184
Java Streams, Files and I/O ................................................. 185
Byte Streams ......................................................................................... 185
Character Streams ................................................................................ 186
Standard Streams.................................................................................. 187
Reading and Writing Files: .................................................................... 188
FileInputStream: .................................................................................... 188
ByteArrayInputStream ........................................................................... 189
Example: ............................................................................................... 189
DataInputStream ................................................................................... 190
Example: ............................................................................................... 191
FileOutputStream: ................................................................................. 192
ByteArrayOutputStream ........................................................................ 192
Example: ............................................................................................... 193
DataOutputStream................................................................................. 194
Example: ............................................................................................... 194
Example: ............................................................................................... 195
File Navigation and I/O: ......................................................................... 196
File Class ............................................................................................... 196
Example: ............................................................................................... 198
FileReader Class ................................................................................... 199
Example: ............................................................................................... 200
TUTORIALS POINT
Simply Easy Learning
FileWriter Class ..................................................................................... 200
Example: ............................................................................................... 201
Directories in Java: ................................................................................ 202
Creating Directories: .............................................................................. 202
Listing Directories: ................................................................................. 202
Java Exceptions ................................................................... 204
Exception Hierarchy: ............................................................................. 204
Exceptions Methods: ............................................................................. 206
Catching Exceptions: ............................................................................. 206
Example: ............................................................................................... 207
Multiple catch Blocks: ............................................................................ 207
Example: ............................................................................................... 207
The throws/throw Keywords: ................................................................. 208
The finally Keyword ............................................................................... 208
Example: ............................................................................................... 209
Declaring you own Exception: ............................................................... 209
Example: ............................................................................................... 210
Common Exceptions: ............................................................................ 211
Java Inheritance ................................................................... 213
IS-A Relationship: .................................................................................. 213
Example: ............................................................................................... 214
Example: ............................................................................................... 214
The instanceof Keyword: ....................................................................... 214
HAS-A relationship: ............................................................................... 215
Java Overriding .................................................................... 216
Example: ............................................................................................... 216
Rules for method overriding:.................................................................. 217
Using the super keyword: ...................................................................... 218
Java Polymorphism .............................................................. 219
Example: ............................................................................................... 219
Virtual Methods:..................................................................................... 220
Java Abstraction .................................................................. 223
Abstract Class: ...................................................................................... 223
Extending Abstract Class: ..................................................................... 224
Abstract Methods:.................................................................................. 225
Java Encapsulation .............................................................. 227
Example: ............................................................................................... 227
Benefits of Encapsulation: ..................................................................... 228
Java Interfaces ..................................................................... 229
TUTORIALS POINT
Simply Easy Learning
Declaring Interfaces: .............................................................................. 230
Example: ............................................................................................... 230
Example: ............................................................................................... 230
Implementing Interfaces: ....................................................................... 230
Extending Interfaces: ............................................................................. 231
Extending Multiple Interfaces:................................................................ 232
Tagging Interfaces: ................................................................................ 232
Java Packages ..................................................................... 233
Creating a package: .............................................................................. 233
Example: ............................................................................................... 233
The import Keyword: ............................................................................. 234
Example: ............................................................................................... 234
The Directory Structure of Packages: .................................................... 235
Set CLASSPATH System Variable: ....................................................... 236
Java Data Structures ............................................................ 238
The Enumeration: .................................................................................. 238
Example: ............................................................................................... 239
The BitSet .............................................................................................. 239
Example: ............................................................................................... 241
The Vector ............................................................................................. 242
Example: ............................................................................................... 245
The Stack .............................................................................................. 246
Example: ............................................................................................... 246
The Dictionary ....................................................................................... 247
Map Interface......................................................................................... 248
Example: ............................................................................................... 249
The Hashtable ....................................................................................... 250
Example: ............................................................................................... 251
The Properties ....................................................................................... 252
Example: ............................................................................................... 253
Java Collections ................................................................... 255
The Collection Interfaces: ...................................................................... 255
The Collection Classes: ......................................................................... 256
The Collection Algorithms: ..................................................................... 257
How to use an Iterator? ......................................................................... 258
Using Java Iterator ................................................................................ 258
The Methods Declared by Iterator: ........................................................ 258
The Methods Declared by ListIterator: ................................................... 259
Example: ............................................................................................... 259
TUTORIALS POINT
Simply Easy Learning
How to use a Comparator? .................................................................... 260
Using Java Comparator ......................................................................... 260
The compare Method: ........................................................................... 260
The equals Method: ............................................................................... 261
Example: ............................................................................................... 261
Summary: .............................................................................................. 262
Java Generics ...................................................................... 263
Generic Methods: .................................................................................. 263
Example: ............................................................................................... 263
Bounded Type Parameters: ................................................................... 264
Example: ............................................................................................... 264
Generic Classes: ................................................................................... 265
Example: ............................................................................................... 265
Java Serialization ................................................................. 267
Serializing an Object: ............................................................................. 268
Deserializing an Object: ......................................................................... 268
Java Networking................................................................... 270
Url Processing ....................................................................................... 270
URL Class Methods:.............................................................................. 271
Example: ............................................................................................... 271
URLConnections Class Methods: .......................................................... 272
Example: ............................................................................................... 273
Socket Programming: ............................................................................ 274
ServerSocket Class Methods: ............................................................... 275
Socket Class Methods: .......................................................................... 276
InetAddress Class Methods: .................................................................. 277
Socket Client Example: ......................................................................... 277
Socket Server Example: ........................................................................ 278
Java Sending E-mail ............................................................ 280
Send a Simple E-mail: ........................................................................... 280
Send an HTML E-mail: .......................................................................... 281
Send Attachment in E-mail: ................................................................... 283
User Authentication Part: ....................................................................... 284
Java Multithreading .............................................................. 285
Life Cycle of a Thread: .......................................................................... 285
Thread Priorities: ................................................................................... 286
Create Thread by Implementing Runnable Interface: ............................ 286
STEP 1: ................................................................................................. 286
STEP 2: ................................................................................................. 286
TUTORIALS POINT
Simply Easy Learning
STEP 3 .................................................................................................. 286
Example: ............................................................................................... 287
Create Thread by Extending Thread Class: .......................................... 288
STEP 1 .................................................................................................. 288
STEP 2 .................................................................................................. 288
Example: ............................................................................................... 288
Thread Methods: ................................................................................... 289
Example: ............................................................................................... 290
Major Java Multithreading Concepts: .................................................... 292
What is Thread synchronization? .......................................................... 292
Multithreading example without Synchronization: .................................. 292
Multithreading example with Synchronization: ....................................... 294
Handling threads inter communication .................................................. 295
Example: ............................................................................................... 296
Handling threads deadlock .................................................................... 297
Example: ............................................................................................... 297
Deadlock Solution Example: .................................................................. 298
Major thread operatios........................................................................... 299
Example: ............................................................................................... 299
Java Applet Basics ............................................................... 302
Life Cycle of an Applet: .......................................................................... 302
A "Hello, World" Applet: ......................................................................... 303
The Applet CLASS: ............................................................................... 303
Invoking an Applet: ................................................................................ 304
Getting Applet Parameters: ................................................................... 305
Specifying Applet Parameters: .............................................................. 306
Application Conversion to Applets: ........................................................ 306
Event Handling: ..................................................................................... 307
Displaying Images: ................................................................................ 308
Playing Audio:........................................................................................ 309
Java Documentation ............................................................ 311
What is Javadoc? .................................................................................. 311
The javadoc Tags: ................................................................................. 312
Example: ............................................................................................... 313
Java Library Classes ............................................................ 315
TUTORIALS POINT
Simply Easy Learning
1
CHAPTER
Java Overview
J ava programming language was originally developed by Sun Microsystems which was initiated by James
Gosling and released in 1995 as core component of Sun Microsystems’ Java platform (Java 1.0 [J2SE]).
As of December 2008, the latest release of the Java Standard Edition is 6 (J2SE). With the advancement of Java
and its widespread popularity, multiple configurations were built to suite various types of platforms. Ex: J2EE for
Enterprise Applications, J2ME for Mobile Applications.
Sun Microsystems has renamed the new J2 versions as Java SE, Java EE and Java ME, respectively. Java is
guaranteed to be Write Once, Run Anywhere.
Java is:
Object Oriented: In Java, everything is an Object. Java can be easily extended since it is based on the
Object model.
Platform independent: Unlike many other programming languages including C and C++, when Java is
compiled, it is not compiled into platform specific machine, rather into platform independent byte code.
This byte code is distributed over the web and interpreted by virtual Machine (JVM) on whichever platform
it is being run.
Simple:Java is designed to be easy to learn. If you understand the basic concept of OOP,Java would be
easy to master.
Secure: With Java's secure feature, it enables to develop virus-free, tamper-free systems. Authentication
techniques are based on public-key encryption.
Architectural-neutral:Java compiler generates an architecture-neutral object file format, which makes
the compiled code to be executable on many processors, with the presence of Java runtime system.
Portable: Being architectural-neutral and having no implementation dependent aspects of the
specification makes Java portable. Compiler inJava is written in ANSI C with a clean portability boundary
which is a POSIX subset.
Robust:Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time
error checking and runtime checking.
Multithreaded: With Java's multithreaded feature, it is possible to write programs that can do many tasks
simultaneously. This design feature allows developers to construct smoothly running interactive
applications.
TUTORIALS POINT
Simply Easy Learning
Interpreted:Java byte code is translated on the fly to native machine instructions and is not stored
anywhere. The development process is more rapid and analytical since the linking is an incremental and
lightweight process.
High Performance: With the use of Just-In-Time compilers, Java enables high performance.
Distributed:Java is designed for the distributed environment of the internet.
Dynamic: Java is considered to be more dynamic than C or C++ since it is designed to adapt to an
evolving environment. Java programs can carry extensive amount of run-time information that can be
used to verify and resolve accesses to objects on run-time.
History of Java:
James Gosling initiated the Java language project in June 1991 for use in one of his many set-top box projects.
The language, initially called Oak after an oak tree that stood outside Gosling's office, also went by the name
Green and ended up later being renamed as Java, from a list of random words.
Sun released the first public implementation as Java 1.0 in 1995. It promised Write Once, Run
Anywhere (WORA), providing no-cost run-times on popular platforms.
On 13 November 2006, Sun released much of Java as free and open source software under the terms of the GNU
General Public License (GPL).
On 8 May 2007, Sun finished the process, making all of Java's core code free and open-source, aside from a small
portion of code to which Sun did not hold the copyright.
Tools you will need:
For performing the examples discussed in this tutorial, you will need a Pentium 200-MHz computer with a minimum
of 64 MB of RAM (128 MB of RAM recommended).
You also will need the following softwares:
Linux 7.1 or Windows 95/98/2000/XP operating system.
Java JDK 5
Microsoft Notepad or any other text editor
This tutorial will provide the necessary skills to create GUI, networking, and Web applications using Java.
What is Next?
Next chapter will guide you to where you can obtain Java and its documentation. Finally, it instructs you on how to
install Java and prepare an environment to develop Java applications.
TUTORIALS POINT
Simply Easy Learning
2
CHAPTER
Java Environment Setup
B efore we proceed further, it is important that we set up the Java environment correctly. This section
guides you on how to download and set up Java on your machine. Please follow the following steps to set up the
environment.
Java SE is freely available from the link Download Java. So you download a version based on your operating
system.
Follow the instructions to download Java and run the .exe to install Java on your machine. Once you installed Java
on your machine, you would need to set environment variables to point to correct installation directories:
Setting up the path for windows 2000/XP:
Assuming you have installed Java in c:\Program Files\java\jdk directory:
Right-click on 'My Computer' and select 'Properties'.
Click on the 'Environment variables' button under the 'Advanced' tab.
Now, alter the 'Path' variable so that it also contains the path to the Java executable. Example, if the path is
currently set to 'C:\WINDOWS\SYSTEM32', then change your path to read
'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.
Setting up the path for windows 95/98/ME:
Assuming you have installed Java in c:\Program Files\java\jdk directory:
Edit the 'C:\[Link]' file and add the following line at the end:
'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'
Setting up the path for Linux, UNIX, Solaris, FreeBSD:
Environment variable PATH should be set to point to where the Java binaries have been installed. Refer to your
shell documentation if you have trouble doing this.
Example, if you use bash as your shell, then you would add the following line to the end of your '.bashrc: export
PATH=/path/to/java:$PATH'
TUTORIALS POINT
Simply Easy Learning
Popular Java Editors:
To write your Java programs, you will need a text editor. There are even more sophisticated IDEs available in the
market. But for now, you can consider one of the following:
Notepad: On Windows machine, you can use any simple text editor like Notepad (Recommended for this
tutorial), TextPad.
Netbeans:Is a Java IDE that is open-source and free which can be downloaded
from[Link]
Eclipse: Is also a Java IDE developed by the eclipse open-source community and can be downloaded
from [Link]
What is Next?
Next chapter will teach you how to write and run your first Java program and some of the important basic syntaxes
in Java needed for developing applications.
TUTORIALS POINT
Simply Easy Learning
3
CHAPTER
Java Basic Syntax
W hen we consider a Java program, it can be defined as a collection of objects that communicate via
invoking each other's methods. Let us now briefly look into what do class, object, methods and instance variables
mean.
Object - Objects have states and behaviors. Example: A dog has states-color, name, breed as well as
behaviors -wagging, barking, eating. An object is an instance of a class.
Class - A class can be defined as a template/blue print that describes the behaviors/states that object of its
type support.
Methods - A method is basically a behavior. A class can contain many methods. It is in methods where the
logics are written, data is manipulated and all the actions are executed.
Instance Variables - Each object has its unique set of instance variables. An object's state is created by the
values assigned to these instance variables.
First Java Program:
Let us look at a simple code that would print the words Hello World.
public class MyFirstJavaProgram{
/* This is my first java program.
* This will print 'Hello World' as the output
*/
public static void main(String[]args){
[Link]("Hello World");// prints Hello World
}
}
Let's look at how to save the file, compile and run the program. Please follow the steps given below:
Open notepad and add the code as above.
Save the file as: [Link].
Open a command prompt window and go o the directory where you saved the class. Assume it's C:\.
Type ' javac [Link] ' and press enter to compile your code. If there are no errors in your
code, the command prompt will take you to the next line(Assumption : The path variable is set).
TUTORIALS POINT
Simply Easy Learning