CSE1007-Java Programming
Java Basics
Dr. Rajarajeswari S
Associate Professor
School of Computer Science and Engineering
VIT - Chennai
Dr. Rajarajeswari S CSE1007-Java Programming 1/ 84
Contents
What is Java and Java Platform with its types
History of Java and its Versions
Java Features and its Components
C++ Verses Java
First Java Program
JVM, JRE, JDK
Java Identifiers, Reserved Words, Variables
Java Data types, Operators, Examples
Type Casting
Java Numbers, Characters, Stgrings
Java Arrays
Java Methods
Dr. Rajarajeswari S CSE1007-Java Programming 2/ 84
What is Java
Java is a popular programming language.
JAVA was developed by Sun Microsystems Inc in the year 1991,
It is owned by Oracle, and more than 3 billion devices run Java.
It was developed by James Gosling and Patrick Naughton.
Java is a Open Source, High level, Robust, Object-oriented and Secure
programming language.
Platform: Any hardware or software environment in which a program
runs, is known as a platform. Since Java has a runtime environment (JRE)
and API, it is called a platform.
Java works on different platforms (Windows, Mac, Linux, Raspberry Pi,
etc.)
Dr. Rajarajeswari S CSE1007-Java Programming 3/ 84
Applications...
There are many devices where Java is currently used and are as follows:
Desktop Applications such as acrobat reader, media player, antivirus, etc.
Web Applications such as irctc.co.in, javatpoint.com, etc.
Enterprise Applications such as banking applications.
Mobile
Embedded System
Smart Card
Robotics
Games, etc.
Dr. Rajarajeswari S CSE1007-Java Programming 4/ 84
Java Applications and Platforms
There are 4 types of applications that can be created using Java programming:
Standalone Application
Web Applications
Enterprise Application
Mobile Application
There are 4 Platforms or Editions of Java:
Java SE (Java Standard Edition) : It includes Java programming APIs
such as java.lang, java.io, java.net, java.util, java.sql, java.math etc. It
includes core topics like OOPs, String, Regex, Exception, Inner classes,
Multithreading, I/O Stream, Networking, AWT, Swing, Reflection,
Collection, etc.
Java EE (Java Enterprise Edition) : It is built on the top of the Java SE
platform. It includes topics like Servlet, JSP, Web Services, EJB, JPA, etc.
Java ME (Java Micro Edition) : used to develop mobile applications.
JavaFX : used to develop rich internet applications
Dr. Rajarajeswari S CSE1007-Java Programming 5/ 84
Features of Java I
1 Simple : is very easy to learn, its syntax is simple, clean and easy.
2 Object-Oriented : Everything in Java is an object. OOPs is a methodology
that simplifies software development and maintenance by providing some
rules(Object, Class, Inheritance, Polymorphism, Abstraction,
Encapsulation).
3 Platform independent : it facilitates you to carry the Java bytecode to any
platform.
4 Secured : can develop virus-free systems because of
No explicit pointer
Java Programs run inside a virtual machine sandbox
5 Robust :
It uses strong memory management.
There is a lack of pointers that avoids security problems.
There is automatic garbage collection in java which runs on the Java
Virtual Machine to get rid of objects which are not being used by a Java
application anymore.
There are exception handling and the type checking mechanism in Java.
Dr. Rajarajeswari S CSE1007-Java Programming 6/ 84
Features of Java II
6 Architecture neutral : there are no implementation dependent.
7 High Performance : Java is faster than other traditional interpreted
programming languages because Java bytecode is "close" to native code.
8 Multithreaded : A thread is like a separate program, executing
concurrently.
9 Distributed : it facilitates users to create distributed applications in Java
using RMI and EJB.
10 Dynamic : Classes are loaded on demand and also supports functions from
its native languages, i.e., C and C++.
Dr. Rajarajeswari S CSE1007-Java Programming 7/ 84
C++ Verses Java
Comparison Index C++ Java
Platform Dependent Independent.
Application/Window/
Mainly used for System programming. Web-based/Mobile
programming.
System/Applications
Design Goal Network Computing.
programming.
Goto statement Yes No
Multiple inheritance Yes interfaces in java.
Operator Overloading Yes No
Pointers Yes No
Compiler and Interpreter Compiler Both
Call by Value and
Yes Only Call by Value
Call by reference
Dr. Rajarajeswari S CSE1007-Java Programming 8/ 84
C++ Verses Java
Comparison Index C++ Java
Structure and Union Yes No
Thread Support No Yes
Documentation comment No Yes
Virtual Keyword Yes No
unsigned right shift >>> No Yes
Inheritance Tree Yes Single
Hardware Nearer Far
Object-oriented Partially Fully
Dr. Rajarajeswari S CSE1007-Java Programming 9/ 84
First Java Program
/* FileName : "HelloWorld.java". */
class HelloWorld
{
// Your program begins with a call to main().
public static void main(String args[]) {
System.out.println("Hello, World");
}
}
The basic understanding of the code:
1 Class definition : uses the keyword class to declare a new class. HelloWorld is an
identifier and is the name of the class.
2 main() : Starting Point, every application must contain.
3 public: JVM can execute the method from anywhere.
4 static: Main method is to be called without object.
5 void: The main method doesn’t return anything.
6 String[]: command line arguments
7 System.out.println() is used to print statement.
Here, System is a class, out is the object of PrintStream class, println() is the
method of PrintStream class
Dr. Rajarajeswari S CSE1007-Java Programming 10/ 84
Modifications in Java Program
1. By changing the sequence of the modifiers,
method prototype is not changed in Java
static public void main(String args[])
2. The subscript notation in Java array can be used after type,
before the variable or after the variable.
public static void main(String[] args)
public static void main(String []args)
public static void main(String args[])
3. You can provide var-args support to the main method
by passing 3 ellipses (dots)
public static void main(String... args)
4. Having a semicolon at the end of class is optional in Java.
Dr. Rajarajeswari S CSE1007-Java Programming 11/ 84
Valid/Invalid main() Signatures
Valid java main method signature
public static void main(String[] args)
public static void main(String []args)
public static void main(String args[])
public static void main(String... args)
static public void main(String[] args)
public static final void main(String[] args)
final public static void main(String[] args)
final strictfp public static void main(String[] args)
Invalid java main method signature
public void main(String[] args)
static void main(String[] args)
public void static main(String[] args)
abstract public static void main(String[] args)
Dr. Rajarajeswari S CSE1007-Java Programming 12/ 84
JVM - Java Virtual Machine
JVM (Java Virtual Machine) is an abstract machine.
It is called a virtual machine because it doesn’t physically exist.
It is a specification that provides a runtime environment in which Java
bytecode can be executed.
It can also run those programs which are written in other languages and
compiled to Java bytecode.
JVMs are available for many hardware and software platforms.
The JVM performs the following main tasks:
Loads code
Verifies code
Executes code
Provides runtime environment
Dr. Rajarajeswari S CSE1007-Java Programming 13/ 84
JRE - Java Runtime Environment
JRE is an acronym for Java Runtime Environment.
It is also written as Java RTE.
The Java Runtime Environment is a set of software tools which are used
for developing Java applications.
It physically exists and contains a set of libraries + other files that JVM
uses at runtime.
The implementation of JVM is also actively released by other companies
besides Sun Micro Systems.
Dr. Rajarajeswari S CSE1007-Java Programming 14/ 84
JDK - Java Development Kit
It is a software development environment which is used to develop Java
applications and applets.
It physically exists and contains JRE + development tools.
Dr. Rajarajeswari S CSE1007-Java Programming 15/ 84
Java Comments
Comments can be used to explain Java code, and to make it more
readable.
It can also be used to prevent execution when testing alternative code.
1. Single Line Comment
// This is a comment
System.out.println("Hello World");
System.out.println("Hello World"); // This is a comment
2. Multi Line Comment
/* The code below will print the words Hello World
to the screen, and it is amazing */
System.out.println("Hello World");
Dr. Rajarajeswari S CSE1007-Java Programming 16/ 84
Java Identifiers
They are used for identification purposes.
It is can be a class name, method name, variable name, or label.
For example :
public class Test{
public static void main(String[] args){
int a = 20;
}
}
In the above java code, we have 5 identifiers namely :
Test : class name.
main : method name.
String : predefined class name.
args : variable name.
a : variable name.
Dr. Rajarajeswari S CSE1007-Java Programming 17/ 84
Rules to define Identifiers
There are certain rules for defining a valid java identifier. These rules must be
followed, otherwise we get compile-time error
The only allowed characters for identifiers are all alphanumeric
characters([A-Z],[a-z],[0-9]), $(dollar sign) and _ (underscore).
For example “Deepu@” is not a valid java identifier as it contain ‘@’
special character.
Identifiers should not start with digits([0-9]).
For example “123Deepu” is a not a valid java identifier.
Java identifiers are case-sensitive.
There is no limit on the length of the identifier but it is advisable to use
an optimum length of 4 – 15 letters only.
Reserved Words can’t be used as an identifier.
For example “int while = 20;” is an invalid statement as while is a
reserved word. There are 53 reserved words in Java.
Dr. Rajarajeswari S CSE1007-Java Programming 18/ 84
Valid - Invalid Identifiers
Examples of valid identifiers :
MyVariable, MYVARIABLE
myvariable, x
i, x1, i1,
_myvariable, $myvariable
sum_of_array, Deepu123
Examples of invalid identifiers :
My Variable // contains a space
123Deepu // Begins with a digit
a+c // + sign is not an alphanumeric character
variable-2 // hyphen is not an alphanumeric character
sum_&_difference// ampersand is not an alphanumeric character
Dr. Rajarajeswari S CSE1007-Java Programming 19/ 84
Java Reserved Words
Any programming language reserves some words to represent
functionalities defined by that language.
Types of Reserve Words
keywords(50) - define functionalities and
literals(3) - define a value.
abstract assert boolean break byte case
catch char class const continue default
double do else enum extends false
final finally float for goto if
implements import instanceof int interface long
native new null package private protected
public return short static strictfp super
switch synchronized this throw throws transient
true try void volatile while
Dr. Rajarajeswari S CSE1007-Java Programming 20/ 84
Variables in Java
It is a name given to a memory location. It is the basic unit of storage in a
program.
The value stored in a variable can be changed during program execution.
A variable is only a name given to a memory location, all the operations
done on the variable effects that memory location.
In Java, all the variables must be declared before use.
Examples :
float simpleInterest; //Declaring
int time = 10, speed = 20; //Declaring and Initializing
char var='h'; //Declaring and Initializing
Dr. Rajarajeswari S CSE1007-Java Programming 21/ 84
Types of Java Variables
Static : is declared as static and can create a single copy of static variable
and share among all the instances of the class.
Memory allocation for static variable happens only once when the class is
loaded in the memory.
Instance : declared inside the class but outside the body of the method.
Local : declared inside the body of the method and the other methods in
the class aren’t even aware that the variable exists.
Dr. Rajarajeswari S CSE1007-Java Programming 22/ 84
Examples....!
class A{
int data=50; //instance variable
static int m=100; //static variable
void method(){
int n=90; //local variable
}
}
Java Variable Example: Add Two Numbers
class Simple{
public static void main(String[] args){
int a=10;
int b=10;
int c=a+b;
System.out.println(c);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 23/ 84
Java Data types
Dr. Rajarajeswari S CSE1007-Java Programming 24/ 84
Operators in Java
Java provides many types of operators which can be used according to the
need. They are classified based on the functionality they provide. Some of the
types are:
Arithmetic Operators : +, -, *, /,
Unary Operators : +, -, ++, –, !
Assignment Operator : =, +=, -=, *=, /=,
Relational Operators : >, <, <=, >=, ==, !=
Logical Operators : &&, ||
Ternary Operator : ?:
Shift Operators : >>, <<, >>>
Bitwise Operators : &, |
and soon...
Dr. Rajarajeswari S CSE1007-Java Programming 25/ 84
Examples of Operators
Table: Arithmetic and Assignment Operators
Operator Name Description Example
+ Addition Adds together two values x+y
- Subtraction Subtracts one value from another x-y
* Multiplication Multiplies two values x*y
/ Division Divides one value by another x/y
% Modulus Returns the division remainder x%y
++ Increment Increases the value of a variable by 1 ++x
−− Decrement Decreases the value of a variable by 1 −−x
Operator Example Same As
Operator Example Same As
= x=5 x=5
&= x &= 3 x=x&3
+= x += 3 x=x+3
|= x |= 3 x=x|3
-= x -= 3 x=x-3
^= x ^= 3 x = x ^3
*= x *= 3 x=x*3
>>= x >>= 3 x = x >>3
/= x /= 3 x=x/3
<<= x <<= 3 x = x <<3
%= x %= 3 x=x%3
Dr. Rajarajeswari S CSE1007-Java Programming 26/ 84
Examples of Operators
Table: Relational Operators
Operator Name Example
== Equal to x == y
!= Not equal x != y
> Greater than x >y
< Less than x <y
>= Greater than or equal to x >= y
<= Less than or equal to x <= y
Table: Logical Operator
Operator Name Description Example
Returns true
&& Logical and x <5 && x <10
if both statements are true
Returns true
|| Logical or x <5 || x <4
if one of the statements is true
Reverse the result,
! Logical not !(x <5 && x <10)
returns false if the result is true
Dr. Rajarajeswari S CSE1007-Java Programming 27/ 84
Examles of Operators
Table: Bitwise Operators
Operator Example Same as Result Decimal
& 5&1 0101 & 0001 0001 1
| 5|1 0101 | 0001 0101 5
∼ ∼5 ∼0101 1010 10
^ 5 ^1 0101 ^0001 0100 4
<< 9 <<1 1001 <<1 0010 2
>> 9 >>1 1001 >>1 1100 12
>>> 9 >>>1 1001 >>>1 0100 4
Dr. Rajarajeswari S CSE1007-Java Programming 28/ 84
Type Casting in Java
Type casting is when you assign a value of one primitive data type to another
type and are of two types in Java.
Widening Casting (automatically) : converting a smaller to a larger type.
Narrowing Casting (manually) : converting a larger to a smaller size type.
Widening Casting :
byte -> short -> char -> int -> long -> float -> double
Narrowing Casting :
double -> float -> long -> int -> char -> short -> byte
Dr. Rajarajeswari S CSE1007-Java Programming 29/ 84
Examples
// Widening Casting
public class Main {
public static void main(String[] args) {
int myInt = 9;
double myDouble = myInt; // Automatic casting: int to double
System.out.println(myInt); // Outputs 9
System.out.println(myDouble); // Outputs 9.0
}
}
// Narrowing Casting
public class Main {
public static void main(String[] args) {
double myDouble = 9.78;
int myInt = (int) myDouble; // Manual casting: double to int
System.out.println(myDouble); // Outputs 9.78
System.out.println(myInt); // Outputs 9
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 30/ 84
Reading from Console
There are three different ways for reading input from the user in the command
line environment(console).
Using Buffered Reader Class : is a classical java method, used by wrapping
the System.in (standard input stream) in an InputStreamReader which is
wrapped in a BufferedReader (efficient).
Using Scanner Class : is used to parse primitive types and strings using
regular expressions. (nextInt(), nextFloat(), . . . ).
Using Console Class : it can be used for reading password-like input
without echoing the characters entered by the user; the format string
syntax can also be used (like System.out.printf()).
Dr. Rajarajeswari S CSE1007-Java Programming 31/ 84
BufferReader Example
// Java program to demonstrate BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args) throws IOException
{
//Enter data using BufferReader
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
// Reading data using readLine
String name = reader.readLine();
// Printing the read line
System.out.println(name);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 32/ 84
Scanner Example
// Java program to demonstrate working of Scanner in Java
import java.util.Scanner;
class GetInputFromUser
{
public static void main(String args[])
{
// Using Scanner for Getting Input from User
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println("You entered string "+s);
int a = in.nextInt();
System.out.println("You entered integer "+a);
float b = in.nextFloat();
System.out.println("You entered float "+b);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 33/ 84
Console Example
// Java program to demonstrate working of System.console()
// Note that this program does not work on IDEs as
// System.console() may require console
public class Sample
{
public static void main(String[] args)
{
// Using Console to input data from user
String name = System.console().readLine();
System.out.println(name);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 34/ 84
Flow Control
Decision Making in programming is similar to decision making in real life.
In programming also we face some situations where we want a certain
block of code to be executed when some condition is fulfilled.
A programming language uses control statements to control the flow of
execution of program based on certain conditions.
These are used to cause the flow of execution to advance and branch
based on changes to the state of a program.
Sr.No. Statement & Description
if statement : consists of a boolean expression followed by one
1
or more statements.
if...else statement : can be followed by an optional else statement,
2
which executes when the boolean expression is false.
nested if statement : can use one if or else if statement inside another
3
if or else if statement(s).
switch statement : allows a variable to be tested for equality against a
4
list of values.
Dr. Rajarajeswari S CSE1007-Java Programming 35/ 84
Example - if
// Java program to illustrate If statement
class IfDemo
{
public static void main(String args[])
{
int i = 10;
if (i > 15)
System.out.println("10 is less than 15");
// This statement will be executed
// as if considers one statement by default
System.out.println("I am Not in if");
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 36/ 84
Example - if-else
// Java program to illustrate if-else statement
class IfElseDemo
{
public static void main(String args[])
{
int i = 10;
if (i < 15)
System.out.println("i is smaller than 15");
else
System.out.println("i is greater than 15");
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 37/ 84
Example - nested if
// Java program to illustrate nested-if statement
class NestedIfDemo {
public static void main(String args[]) {
int i = 10;
if (i == 10) {
// First if statement
if (i < 15)
System.out.println("i is smaller than 15");
// Second if statement
if (i < 12)
System.out.println("i is smaller than 12 too");
else
System.out.println("i is greater than 15");
}
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 38/ 84
Example - if-else-if Ladder
// Java program to illustrate if-else-if ladder
class ifelseifDemo
{
public static void main(String args[])
{
int i = 20;
if (i == 10)
System.out.println("i is 10");
else if (i == 15)
System.out.println("i is 15");
else if (i == 20)
System.out.println("i is 20");
else
System.out.println("i is not present");
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 39/ 84
Example - switch
// Java program to illustrate switch-case
class SwitchCaseDemo
{
public static void main(String args[])
{
int i = 9;
switch (i) {
case 0:
System.out.println("i is zero.");
break;
case 1:
System.out.println("i is one.");
break;
case 2:
System.out.println("i is two.");
break;
default: System.out.println("i is greater than 2.");
}
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 40/ 84
jump, break, and continue statements
Java supports three jump statement: break, continue and return. These three
statements transfer control to other part of the program.
1 jump : is used for
Terminate a sequence in a switch statement (discussed above).
To exit a loop.
Used as a “civilized” form of goto.
2 break : can force immediate termination of a loop, bypassing the
conditional expression and any remaining code in the body of the loop.
3 continue : Sometimes it is useful to force an early iteration of a loop.
4 return : is used to explicitly return from a method and transfer program
control back to the caller of the method.
Dr. Rajarajeswari S CSE1007-Java Programming 41/ 84
Example - break
// Java program to illustrate using break to exit a loop
class BreakLoopDemo
{
public static void main(String args[])
{
// Initially loop is set to run from 0-9
for (int i = 0; i < 10; i++)
{
// terminate loop when i is 5.
if (i == 5)
break;
System.out.println("i: " + i);
}
System.out.println("Loop complete.");
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 42/ 84
Example - goto
// Java program to illustrate using break with goto
class BreakLabelDemo {
public static void main(String args[]) {
boolean t = true;
first: { // label first
second: { // label second
third: { // label third
// Before break
System.out.println("Before the break statement");
// break will take the control out of second label
if (t) break second;
System.out.println("This won't execute.");
}
System.out.println("This won't execute.");
}
System.out.println("This is after second block.");
}
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 43/ 84
Example - continue
// Java program to illustrate using continue in an if statement
class ContinueDemo
{
public static void main(String args[])
{
for (int i = 0; i < 10; i++)
{
// If the number is even
// skip and continue
if (i%2 == 0)
continue;
// If number is odd, print it
System.out.print(i + " ");
}
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 44/ 84
Example - return
// Java program to illustrate using return
class Return
{
public static void main(String args[])
{
boolean t = true;
System.out.println("Before the return.");
if (t)
return;
// Compiler will bypass every statement
// after return
System.out.println("This won't execute.");
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 45/ 84
Loops in Java
Looping in programming languages is a feature which facilitates the
execution of a set of instructions/functions repeatedly while some
condition evaluates to true.
Java provides three ways for executing the loops.
While all the ways provide similar basic functionality, they differ in their
syntax and condition checking time.
Sr.No. Loop & Description
while loop : Repeats a statement or group of statements
1 while a given condition is true.
It tests the condition before executing the loop body.
for loop : Execute a sequence of statements multiple times and
2
abbreviates the code that manages the loop variable.
do...while loop : Like a while statement, except that it tests
3
the condition at the end of the loop body.
Dr. Rajarajeswari S CSE1007-Java Programming 46/ 84
Loops .....
while loop
for loop
do..while loop
Dr. Rajarajeswari S CSE1007-Java Programming 47/ 84
Loops .....
Dr. Rajarajeswari S CSE1007-Java Programming 48/ 84
Example - while
// Java program to illustrate while loop
class whileLoopDemo
{
public static void main(String args[])
{
int x = 1;
// Exit when x becomes greater than 4
while (x <= 4)
{
System.out.println("Value of x:" + x);
// Increment the value of x for
// next iteration
x++;
}
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 49/ 84
Example - for
// Java program to illustrate for loop.
class forLoopDemo
{
public static void main(String args[])
{
// for loop begins when x=2
// and runs till x <=4
for (int x = 2; x <= 4; x++)
System.out.println("Value of x:" + x);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 50/ 84
Example - do...while
// Java program to illustrate do-while loop
class dowhileloopDemo
{
public static void main(String args[])
{
int x = 21;
do
{
// The line will be printed even
// if the condition is false
System.out.println("Value of x:" + x);
x++;
}
while (x < 20);
}
}
Dr. Rajarajeswari S CSE1007-Java Programming 51/ 84