Java Lab Manual r20 Updated
Java Lab Manual r20 Updated
2020 – 21
L T P C
II Year – II Semester
0 0 3 1.5
JAVA PROGRAMMING LAB
Course Objectives:
The aim of this lab is to
Course Outcomes:
By the end of the course student will be able to write java program for
Evaluate default value of all primitive data type, Operations, Expressions, Control-
flow, Strings
Determine Class, Objects, Methods, Inheritance, Exception, Runtime Polymorphism,
User defined Exception handling mechanism
Illustrating simple inheritance, multi-level inheritance, Exception handling
mechanism
Construct Threads, Event Handling, implement packages, developing applets
Exercise - 1 (Basics)
a) Write a JAVA program to display default value of all primitive data type of JAVA
b) Write a java program that display the roots of a quadratic equation ax2+bx=0. Calculate the
discriminate D and basing on value of D, describe the nature of root.
c) Five Bikers Compete in a race such that they drive at a constant speed which may or may
not be the same as the other. To qualify the race, the speed of a racer must be more than the
average speed of all 5 racers. Take as input the speed of each racer and print back the speed
of qualifying racers.
Exercise - 2 (Operations, Expressions, Control-flow, Strings)
a) Write a JAVA program to search for an element in a given list of elements using binary
search mechanism.
b) Write a JAVA program to sort for an element in a given list of elements using bubble sort
c) Write a JAVA program to sort for an element in a given list of elements using merge sort.
a) Write a JAVA program to implement class mechanism. Create a class, methods and invoke
them inside main method.
c) Write a java program for abstract class to find areas of different shapes
Exercise - 6 (Inheritance - Continued)
b) Write a JAVA program to implement Interface. What kind of Inheritance can be achieved?
Exercise - 7 (Exception)
b) Write a Case study on run time polymorphism, inheritance that implements in above
problem
Exercise – 9 (User defined Exception)
a) Write a JAVA program that creates threads by extending Thread class .First thread display
“Good Morning “every 1 sec, the second thread displays “Hello “every 2 seconds and the
third display “Welcome” every 3 seconds ,(Repeat the same by implementing Runnable)
R-20 Syllabus for CSE, JNTUK w. e. f. 2020 – 21
b) Write a case study on thread Synchronization after solving the above producer consumer
problem
Exercise – 12 (Packages)
b) Write a case study on including in class path in your os environment of your package.
c) Write a JAVA program that import and use the defined your package in the previous
Problem
Exercise - 13 (Applet)
a) Write a JAVA program that display the x and y position of the cursor movement using
Mouse.
b) Write a JAVA program that identifies key-up key-down event user entering text in a
Applet.
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 1 (Basics)
a) Displaying default value of all primitive data types
Aim: To write a JAVA program to display default value of all primitive data type of JAVA
Program:
class defaultdemo
{
static byte b;
static short s;
static int i;
static long l;
static float f;
static double d;
static char c;
static boolean bl;
public static void main(String[] args)
{
System.out.println("The default values of primitive data typesare:");
System.out.println("Byte :"+b);
System.out.println("Short :"+s);
System.out.println("Int :"+i);
System.out.println("Long :"+l);
System.out.println("Float :"+f);
System.out.println("Double :"+d);
System.out.println("Char :"+c);
System.out.println("Boolean :"+bl);
}
}
Output:
The default values of primitive data types are:
Byte :0
Short :0
Int :0
Long :0
Float :0.0
Double :0.0
Char :
Boolean :false
Page 1
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
Aim: To write a java program that display the roots of a quadratic equation ax2+bx=0. Calculate
the discriminate D and basing on value of D, describe the nature of root.
Program:
import java.util.*;
class quadraticdemo
{
public static void main(String[] args)
{
int a, b, c;
double r1, r2, D;
Scanner s = new Scanner(System.in);
System.out.println("Given quadratic equation:ax^2 + bx +
c"); System.out.print("Enter a:"); a = s.nextInt();
System.out.print("Enter b:");
b = s.nextInt();
System.out.print("Enter c:");
c = s.nextInt();
D = b * b - 4 * a * c;
if(D > 0)
{
System.out.println("Roots are real and unequal");
r1 = ( - b + Math.sqrt(D))/(2*a);
r2 = (-b - Math.sqrt(D))/(2*a);
System.out.println("First root is:"+r1);
System.out.println("Second root is:"+r2);
}
else if(D == 0)
{
System.out.println("Roots are real and equal");
r1 = (-b+Math.sqrt(D))/(2*a);
System.out.println("Root:"+r1);
}
else
{
System.out.println("Roots are imaginary");
}
}
}
Output:
Given quadratic equation:ax^2 + bx + c
Enter a:2
Enter b:3
Enter c:1
Roots are real and unequal
First root is:-0.5
Second root is:-1.0
Page 2
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by : G.Mahesh CSE
c) Bike Race
Aim: Five Bikers Compete in a race such that they drive at a constant speed which may or may
not be the same as the other. To qualify the race, the speed of a racer must be more than the
average speed of all 5 racers. Take as input the speed of each racer and print back the speed of
qualifying racers.
Program:
import java.util.*;
class racedemo
{
public static void main(String[] args)
{
float s1,s2,s3,s4,s5,average;
Scanner s = new Scanner(System.in);
System.out.println("Enter speed of first racer:");
s1 = s.nextFloat();
System.out.println("Enter speed of second racer:");
s2 = s.nextFloat();
System.out.println("Enter speed of third racer:");
s3 = s.nextFloat();
System.out.println("Enter speed of fourth racer:");
s4 = s.nextFloat();
System.out.println("Enter speed of fifth racer:");
s5 = s.nextFloat();
average=(s1+s2+s3+s4+s5)/5;
if(s1>average)
System.out.println("First racer is qualify racer:");
else if(s2>average)
System.out.println("Second racer is qualify
racer:"); else if(s3>average)
System.out.println("Third racer is qualify racer:");
else if(s4>average)
System.out.println("Fourth racer is qualify
racer:"); else if(s5>average)
System.out.println("Fifth racer is qualify racer:");
}
}
Output:
Enter speed of first racer:
4.5
Enter speed of second racer:
6.7
Enter speed of third racer:
3.8
Enter speed of fourth racer:
5.3
Enter speed of fifth racer:
4.9
Second racer is qualify racer:
Page 3
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
We can send some input values (arguments) at run time to the String args[] of the
main method . These arguments are called command line arguments. These
command line arguments are passed at the command prompt.
In System.out.println("Welcome"); statement
is the output stream.
println() method display the output in different lines. If we use print() method it display the output
in the same line
Page 4
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
import java.util.Scanner;
class binarysearchdemo
{
public static void main(String args[])
{
int n, i, num,first, last, middle;
int a[ ]=new int[20];
Scanner s = new Scanner(System.in);
System.out.println("Enter total number of
elements:"); n = s.nextInt(); System.out.println("Enter
elements in sorted order:"); for (i = 0; i < n; i++)
a[i] = s.nextInt();
System.out.println("Enter the search value:");
num = s.nextInt();
first = 0;
last = n - 1;
middle = (first + last)/2;
while( first <= last )
{
if ( a[middle] < num )
first = middle + 1;
else if ( a[middle] == num )
{
System.out.println("number found");
break;
}
else
{
last = middle - 1;
}
middle = (first + last)/2;
}
if ( first > last )
System.out.println( " Number is not found");
}
}
Output:
Enter total number of elements:
5
Enter elements:
24689
Enter the search value:
8
number found
Page 5
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
b) Bubble sort
Aim: To write a JAVA program to sort for an element in a given list of elements using bubble sort
Program:
import java.util.Scanner;
class bubbledemo
{
public static void main(String args[])
{
int n, i,j, temp;
int a[ ]=new int[20];
Scanner s = new Scanner(System.in);
System.out.println("Enter total number of
elements:"); n = s.nextInt();
System.out.println("Enter elements:");
for (i = 0; i < n; i++)
a[i] = s.nextInt();
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("The sorted elements are:");
for(i=0;i<n;i++)
System.out.print("\t"+a[i]);
}
}
Output:
Enter total number of elements:
10
Enter elements:
3257689140
The sorted elements are:
0 1 2 3 4 5 6 7 8 9
Page 6
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
c) Merge sort:
Aim: To write a JAVA program to sort for an element in a given list of elements using merge sort
Program:
import java.util.*;
class mergedemo
{
public static void main(String args[])
{
int n1,n2,i,j,k;
int a[ ]=new int[20];
int b[ ]=new int[20];
int c[ ]=new int[20];
Scanner s = new Scanner(System.in);
System.out.println("Enter number of elements in first
array:"); n1 = s.nextInt();
System.out.println("Enter sorted elements of first
array:"); for (i = 0; i < n1; i++)
a[i] = s.nextInt();
System.out.println("Enter number of elements in second
array:"); n2 = s.nextInt();
System.out.println("Enter sorted elements of second
array:"); for (j = 0; j < n2; j++)
b[j] = s.nextInt();
i = 0;
j = 0;
k = 0;
while((i < n1) && (j <n2))
{
if(a[i] > b[j])
c[k++] = b[j++];
else
c[k++] = a[i++];
}
while(i < n1)
c[k++] = a[i++];
while(j < n2)
c[k++] = b[j++];
System.out.println("After merging the elements are:\n");
for(i = 0; i < (n1 + n2); i++)
System.out.print("\t"+c[i]);
}
}
Output:
Enter number of elements in first array:
6
Enter elements of first array:
8912131518
Enter number of elements in second array:
5
Enter elements of second array:
67101120
After merging the elements are:
6 7 8 9 10 11 12 13 15 18 20
Page 7
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
d) Implementing StringBuffer
Aim: To write a JAVA program using StringBuffer to delete, remove character
Program:
class stringbufferdemo
{
public static void main(String[] args)
{
StringBuffer sb1 = new StringBuffer("Hello
World"); sb1.delete(0,6);
System.out.println(sb1);
StringBuffer sb2 = new StringBuffer("Some Content");
System.out.println(sb2);
sb2.delete(0, sb2.length());
System.out.println(sb2);
StringBuffer sb3 = new StringBuffer("Hello World");
sb3.deleteCharAt(0);
System.out.println(sb3);
}
}
Output:
World
Some Content
ello World
Page 8
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Page 9
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE int area()
int area()
{
return l*b;
}
}
class methoddemo
{
public static void main(String args[])
{
A a1=new A();
int r=a1.area();
System.out.println("The area is: "+r);
}
}
Output:
The area is:200
Page 10
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
b) Implementing Constructor
Aim: To write a JAVA program to implement constructor
Programs:
(i) A constructor with no parameters:
class A
{
int l,b;
A()
{
l=10;
b=20;
}
int area()
{
return l*b;
}
}
class constructordemo
{
public static void main(String args[])
{
A a1=new A();
int r=a1.area();
System.out.println("The area is: "+r);
}
}
Output:
The area is:200
(ii) A constructor with parameters
class A
{
int l,b;
A(int u,int v)
{
l=u;
b=v;
}
int area()
{
return l*b;
}
}
class constructordemo
{
public static void main(String args[])
{
A a1=new A(10,20);
int r=a1.area();
System.out.println("The area is: "+r);
}
}
Output:
The area is:200
Page 11
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 4 (Methods)
a) Constructor Overloading
Aim: To write a JAVA program to implement constructor overloading
Program:
class A
{
int l,b;
A()
{
l=10;
b=20;
}
A(int u,int v)
{
l=u;
b=v;
}
int area()
{
return l*b;
}
}
class overconstructdemo
{
public static void main(String args[])
{
A a1=new A();
int r1=a1.area();
System.out.println("The area is: "+r1);
A a2=new A(30,40);
int r2=a2.area();
System.out.println("The area is: "+r2);
}
}
Output:
The area is: 200
The area is: 1200
Page 12
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
b) Method Overloading
Program:
class A
{
int l=10,b=20;
int area()
{
return l*b;
}
int area(int l,int b)
{
return l*b;
}
}
class overmethoddemo
{
public static void main(String args[])
{
A a1=new A();
int r1=a1.area();
System.out.println("The area is: "+r1);
int r2=a1.area(5,20);
System.out.println("The area is: "+r2);
}
}
Output:
The area is: 200
The area is: 100
Page 13
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 5 (Inheritance)
a)Implementing Single Inheritance
Program:
class A
{
A()
{
System.out.println("Inside A's Constructor");
}
}
class B extends A
{
B()
{
System.out.println("Inside B's Constructor");
}
}
class singledemo
{
public static void main(String args[])
{
B b1=new B();
}
}
Output:
Inside A's Constructor
Inside B's Constructor
Page 14
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
class A
{
A()
{
System.out.println("Inside A's Constructor");
}
}
class B extends A
{
B()
{
System.out.println("Inside B's Constructor");
}
}
class C extends B
{
C()
{
System.out.println("Inside C's Constructor");
}
}
class multidemo
{
public static void main(String args[])
{
C c1=new C();
}
}
Output:
Inside A's Constructor
Inside B's Constructor
Inside C's Constructor
Page 15
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
c) Abstract Class
Aim: To write a java program for abstract class to find areas of different shapes
Program:
Output:
The area of rectangle is: 31.25
The area of triangle is: 13.65
The area of square is: 26.0
Page 16
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Programs:
(i) Using super to call super class constructor (Without parameters)
class A
{
int l,b;
A()
{
l=10;
b=20;
}
}
class B extends A
{
int h;
B()
{
super();
h=30;
}
int volume()
{
return l*b*h;
}
}
class superdemo
{
public static void main(String args[])
{
B b1=new B();
int r=b1.volume();
System.out.println("The vol. is: "+r);
}
}
Output:
The vol. is:6000
Page 17
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
class B extends A
{
int h;
B(int u,int v,int w)
{
super(u,v);
h=w;
}
int volume()
{
return l*b*h;
}
}
class superdemo
{
public static void main(String args[])
{
B b1=new B(30,20,30);
int r=b1.volume();
System.out.println("The vol. is: "+r);
}
}
Output:
The vol. is:18000
Page 18
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
b) Implementing interface
Aim: To write a JAVA program to implement Interface.
Programs:
(i) First form of interface implementation
interface A
{
void display();
}
class B implements A
{
public void display()
{
System.out.println("B's method");
}
}
class C extends B
{
public void callme()
{
System.out.println("C's method");
}
}
class interfacedemo
{
public static void main(String args[])
{
C c1=new C();
c1.display();
c1.callme();
}
}
Output:
B's method
C's method
Page 19
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
class B extends A implements E
{
public void display()
{
System.out.println("This is in display method");
}
public void show()
{
System.out.println("This is in show method");
}
}
class C extends B
{
void call()
{
System.out.println("This is in call method");
}
}
class interfacedemo
{
public static void main(String args[])
{
C c1=new C();
c1.display();
c1.show();
c1.callme();
c1.call();
}
}
Output:
This is in display method
This is in show method
This is in callme method
This is in call method
(iii) Third form of interface
implementation interface A
{
void display();
}
class B implements A
{
public void display()
{
System.out.println("This is in B's method");
}
}
class C implements A
{
public void display()
{
System.out.println("This is C's method");
}
}
class interfacedemo
{
Page 20
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
{
B b1=new B();
C c1=new C();
b1.display();
c1.display();
}
}
Output:
This is in B's method
This is C's method
(iv) Fourth form of interface implementation
interface A
{
void display();
}
interface B
{
void callme();
}
interface C extends A,B
{
void call();
}
class D implements C
{
public void display()
{
System.out.println("interface A");
}
public void callme()
{
System.out.println("interface B");
}
public void call()
{
System.out.println("interface C");
}
}
class interfacedemo
{
public static void main(String args[])
{
D d1=new D();
d1.display();
d1.callme();
d1.call();
}
}
Output:
interface A
interface B
interface C
Page 21
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 7 (Exception)
a) Exception handling mechanism
Aim: To write a JAVA program that describes exception handling mechanism
Program:
Usage of Exception Handling:
class trydemo
{
public static void main(String args[])
{
try
{
int a=10,b=0;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException e)
{
System.out.println(e);
}
System.out.println("After the catch statement");
}
}
Output:
java.lang.ArithmeticException: / by zero
After the catch statement
Page 22
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
class multitrydemo
{
public static void main(String args[])
{
try
{
int a=10,b=5;
int c=a/b;
int d[]={0,1};
System.out.println(d[10]);
System.out.println(c);
}
catch(ArithmeticException e)
{
System.out.println(e);
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println(e);
}
System.out.println("After the catch statement");
}
}
Output:
java.lang.ArrayIndexOutOfBoundsException: 10
After the catch statement
Page 23
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
class A
{
void display()
{
System.out.println("Inside A class");
}
}
class B extends A
{
void display()
{
System.out.println("Inside B class");
}
}
class C extends A
{
void display()
{
System.out.println("Inside C class");
}
}
class runtimedemo
{
public static void main(String args[])
{
A a1=new A();
B b1=new B();
C c1=new C();
A ref;
ref=c1;
ref.display();
ref=b1;
ref.display();
ref=a1;
ref.display();
}
}
Output:
Inside C class
Inside B class
Inside A class
Page 24
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
When an overridden method is called through a superclass reference, Java determines which
version(superclass/subclasses) of that method is to be executed based upon the type of the
object being referred to at the time the call occurs. Thus, this determination is made at run time.
At run-time, it depends on the type of the object being referred to (not the type of the reference
variable) that determines which version of an overridden method will be executed
A superclass reference variable can refer to a subclass object. This is also known as
upcasting. Java uses this fact to resolve calls to overridden methods at run time.
Upcasting
SuperClass obj=new SubClass
SuperClass
extends
SubClass
Therefore, if a superclass contains a method that is overridden by a subclass, then when different
types of objects are referred to through a superclass reference variable, different versions of the
method are executed. Here is an example that illustrates dynamic method dispatch:
Consider a scenario, Bank is a class that provides method to get the rate of interest. But, rate of
interest may differ according to banks. For example, SBI, ICICI and AXIS banks are providing 8.4%,
7.3% and 9.7% rate of interest
Bank
getRateOfInterest():float
extends
Page 25
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
class throwdemo
{
public static void main(String args[])
{
try
{
throw new NullPointerException("demo");
}
catch(NullPointerException e)
{
System.out.println(e);
}
}
}
Output:
java.lang.NullPointerException: demo
Page 26
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
b) creation of illustrating finally
Aim: To write a JAVA program for creation of Illustrating finally
Program(i):
class finallydemo
{
public static void main(String args[])
{
try
{
int a=10,b=0;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException e)
{
System.out.println(e);
}
finally
{
System.out.println("This is inside finally block");
}
}
}
Output:
java.lang.ArithmeticException: / by zero
This is inside finally block
Program(ii):
class finallydemo
{
public static void main(String args[])
{
try
{
int a=10,b=5;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException e)
{
System.out.println(e);
}
finally
{
System.out.println("This is inside finally block");
}
}
}
Output:
2
This is inside finally block
Page 27
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Programs:
Output:
java.lang.ArithmeticException: / by zero
(ii)NullPointer Exception
class nullpointerdemo
{
public static void main(String args[])
{
try
{
String a = null;
System.out.println(a.charAt(0));
}
catch(NullPointerException e)
{
System.out.println(e);
}
}
}
Output:
java.lang.NullPointerException
(iii)StringIndexOutOfBound Exception
class stringbounddemo
{
public static void main(String args[])
{
try
{
Page 28
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
String a = "This is like chipping
"; char c = a.charAt(24);
System.out.println(c);
}
catch(StringIndexOutOfBoundsException e)
{
System.out.println(e);
}
}
}
Output:
java.lang.StringIndexOutOfBoundsException: String index out of range: 24
(iv)FileNotFound Exception
import java.io.*;
class filenotfounddemo
{
public static void main(String args[])
{
try
{
File file = new File("E://file.txt");
FileReader fr = new FileReader(file);
}
catch (FileNotFoundException e)
{
System.out.println(e);
}
}
}
Output:
java.io.FileNotFoundException: E:\file.txt (The system cannot find the file specified)
(v)NumberFormat Exception
class numberformatdemo
{
public static void main(String args[])
{
try
{
int num = Integer.parseInt ("akki") ;
System.out.println(num);
}
catch(NumberFormatException e)
{
System.out.println(e);
}
}
}
Output:
java.lang.NumberFormatException: For input string: "akki"
Page 29
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
(vi)ArrayIndexOutOfBounds Exception
class arraybounddemo
{
public static void main(String args[])
{
try
{
int a[] = new int[5];
a[6] = 9;
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println (e);
}
}
}
Output:
java.lang.ArrayIndexOutOfBoundsException: 6
Page 30
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
Output:
A: demo
Page 31
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise – 10 (Threads)
a)Extending Thread class
Aim: To write a JAVA program that creates threads by extending Thread class .First thread display
“Good Morning “every 1 sec, the second thread displays “Hello “every 2 seconds and the third
display “Welcome” every 3 seconds ,(Repeat the same by implementing Runnable)
Programs:
(i) Creating multiple threads using Thread class
class A extends Thread
{
public void run()
{
try
{
for(int i=1;i<=10;i++)
{
sleep(1000);
System.out.println("good morning");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class B extends Thread
{
public void run()
{
try
{
for(int j=1;j<=10;j++)
{
sleep(2000);
System.out.println("hello");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class C extends Thread
{
public void run()
{
try
{
Page 32
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE for(int
for(int k=1;k<=10;k++)
{
sleep(3000);
System.out.println("welcome");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class threaddemo
{
public static void main(String args[])
{
A a1=new A();
B b1=new B();
C c1=new C();
a1.start();
b1.start();
c1.start();
}
}
Output:
good morning
hello
good morning
good morning
welcome
hello
good morning
good morning
hello
good morning
welcome
good morning
hello
good morning
good morning
welcome
hello
good morning
hello
welcome
hello
welcome
hello
hello
welcome
hello
welcome
welcome
welcome
welcome
Page 33
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Page 34
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
}
}
class runnabledemo
{
public static void main(String args[])
{
A a1=new A();
B b1=new B();
C c1=new C();
Thread t1=new Thread(a1);
Thread t2=new Thread(b1);
Thread t3=new Thread(c1);
t1.start();
t2.start();
t3.start();
}
}
Output:
good morning
good morning
hello
good morning
welcome
good morning
hello
good morning
good morning
welcome
hello
good morning
good morning
hello
good morning
welcome
good morning
hello
welcome
hello
hello
welcome
hello
welcome
hello
hello
welcome
welcome
welcome
welcome
Page 35
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Program:
Page 36
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class isalivedemo
{
public static void main(String args[])
{
A a1=new A();
B b1=new B();
C c1=new C();
a1.start();
b1.start();
c1.start();
System.out.println(a1.isAlive());
System.out.println(b1.isAlive());
System.out.println(c1.isAlive());
try
{
a1.join();
b1.join();
c1.join();
}
catch(InterruptedException e)
{
System.out.println(e);
}
System.out.println(a1.isAlive());
System.out.println(b1.isAlive());
System.out.println(c1.isAlive());
}
}
Output:
true good morning
true hello
true welcome
good morning hello
good morning hello
hello welcome
good morning hello
welcome welcome
good morning hello
hello hello
good morning welcome
good morning welcome
welcome welcome
hello welcome
good morning false
good morning false
hello false
good morning
welcome
Page 37
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
Program:
Output:
daemon thread work
user thread work
user thread work
Page 38
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 11 (Threads continuity)
a)Producer-Consumer problem
Aim: Write a JAVA program Producer
Consumer Problem Program:
class A
{
int n;
boolean b=false;
synchronized int get()
{
if(!b)
try
{
wait();
}
catch(Exception e)
{
System.out.println(e);
}
System.out.println("Got:"+n);
b=false;
notify();
return n;
}
synchronized void put(int n)
{
if(b)
try
{
wait();
}
catch(Exception e)
{
System.out.println(e);
}
this.n=n;
b=true;
System.out.println("Put:"+n);
notify();
}
}
class producer implements Runnable
{
A a1; Thread
t1; producer(A
a1)
{
this.a1=a1;
t1=new Thread(this);
t1.start();
}
public void run()
{
Page 39
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
for(int i=1;i<=10;i++)
{
a1.put(i);
}
}
}
Aim: To write a case study on thread Synchronization after solving the above producer
consumer problem
Things to remember:
1. We can use wait() and notify() method to implement inter-thread communication in Java. Not just
one or two threads but multiple threads can communicate to each other by using these methods.
2. Always call wait(), notify() and notifyAll() methods from synchronized method or
synchronized block otherwise JVM will throw IllegalMonitorStateException.
3. Always call wait and notify method from a loop and never from if() block, because loop test
waiting condition before and after sleeping and handles notification even if waiting for the
condition is not changed.
4. Always call wait in shared object e.g. shared queue in this example.
5. Prefer notifyAll() over notify() method due to reasons given in this article
Page 41
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise – 12 (Packages)
a) Illustration of class path
Aim: To write a JAVA program illustrate class path
import java.net.URL;
import java.net.URLClassLoader;
public class App
{
public static void main(String[] args)
{
ClassLoader sysClassLoader = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)sysClassLoader).getURLs();
for(int i=0; i< urls.length; i++)
{
System.out.println(urls[i].getFile());
}
}
}
Output:
E:/java%20work/
Page 42
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Environment Variables
OK Cancel
In System Properties click Advanced and then click Environment Variables.
It displays the following “Environment Variables” dialog.
Environment Variables
System Variables
New
OK Cancel
In Environment Variables click New in System variables.
It displays the following “New System Variable” dialog box.
Page 43
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
variable name:
variable value:
OK Cancel
Step-4:
Now type variable name as a path and then variable value
as c:\Program Files\java\jdk1.5.0_10\bin;
New System Variable
OK Cancel
Step-5:
Click OK
Page 44
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Aim: To write a JAVA program that import and use the defined your package in the
previous Problem
Output:
10
20
Page 45
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Exercise - 13 (Applet)
a) Paint like Paint Brush in Applet
Aim: To write a JAVA program to paint like paint brush in applet.
Program:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//<applet code="paintdemo" width="800" height="500"></applet> public
class paintdemo extends Applet implements MouseMotionListener {
int w, h;
Image i;
Graphics g1;
public void init()
{
w = getSize().width; h = getSize().height;
i = createImage( w, h );
g1 = i.getGraphics();
g1.setColor( Color.white ); g1.fillRect( 0, 0, w, h ); g1.setColor( Color.red
); i = createImage( w, h );
g1 = i.getGraphics();
g1.setColor( Color.white ); g1.fillRect( 0, 0, w, h ); g1.setColor( Color.blue
); addMouseMotionListener( this );
}
public void mouseMoved( MouseEvent e ) { }
public void mouseDragged( MouseEvent me )
{
int x = me.getX(); int y = me.getY();
g1.fillOval(x-10,y-10,20,20);
repaint();
me.consume();
}
public void update( Graphics g )
{
g.drawImage( i, 0, 0, this );
}
public void paint( Graphics g )
{
update(g);
}
}
Output:
Page 46
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
Page 47
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
while(b)
{
wait();
}
}
}
repaint();
thr.sleep(1000);
}
}
catch(Exception e)
{
System.out.println(e);
}
}
void drawHand(double angle, int radius, Graphics grp)
{
angle-=0.5*Math.PI;
int a=(int)(radius*Math.cos(angle)); int b=(int)(radius*Math.sin(angle));
grp.drawLine(wt/2,ht/2,wt/2+a,ht/2+b);
}
void drawWedge(double angle,int radius, Graphics grp)
{
angle-=0.5*Math.PI;
int a=(int)(radius*Math.cos(angle)); int
b=(int)(radius*Math.sin(angle)); angle+=2*Math.PI/3;
int a2=(int)(5*Math.cos(angle)); int
b2=(int)(5*Math.sin(angle)); angle+=2*Math.PI/3;
int a3=(int)(5*Math.cos(angle)); int b3=(int)(5*Math.sin(angle));
grp.drawLine(wt/2+a2, ht/2+b2,wt/2+a,ht/2+b);
grp.drawLine(wt/2+a3, ht/2+b3,wt/2+a,ht/2+b);
grp.drawLine(wt/2+a2, ht/2+b2,wt/2+a3,ht/2+b3);
}
public void paint(Graphics grp)
{
grp.setColor(Color.gray);
drawWedge(2*Math.PI*h/12,wt/5,grp); drawWedge(2*Math.PI*m/60,wt/3,grp);
drawHand(2*Math.PI*s/60,wt/2,grp);
}
}
Output:
Page 48
II B.Tech II Sem CSE Java Lab Manual (R20)Prepared by: G.Mahesh CSE
c) Display Analog Clock using Applet
Aim: To write a JAVA program to create different shapes and fill colors using Applet
Program:
import java.awt.*;
import java.applet.*;
//<applet code="graphicsdemo" width="400"
height="400"></applet> public class graphicsdemo extends Applet {
Output:
Page 49
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
}
public void mouseDragged(MouseEvent me)
{
x=me.getX();
y=me.getY();
s1="Mouse Dragged";
repaint();
}
public void mouseMoved(MouseEvent me)
{
x=me.getX();
y=me.getY();
s1="Mouse Moved";
repaint();
}
public void paint(Graphics g)
{
g.drawString(s1,x,y);
}
}
Output:
Page 51
II B.Tech II Sem CSE Java Lab Manual (R20) Prepared by: G.Mahesh CSE
b) Key-up and Key-down event
Aim: To write a JAVA program that identifies key-up key-down event user entering text in
a Applet.
Program:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
//<applet code="keyevent" width=450 height=300></applet>
public class keyevent extends Applet implements
KeyListener {
String s1=" ";
int x,y;
public void init()
{
addKeyListener(this);
requestFocus();
}
public void keyPressed(KeyEvent ke)
{
x=100;
y=200;
s1= "key pressed ";
repaint();
}
public void keyReleased(KeyEvent ke)
{
x=100;
y=400;
s1= "key Released ";
repaint();
}
public void keyTyped(KeyEvent ke)
{
s1=s1+ke.getKeyChar();
repaint();
}
public void paint(Graphics g)
{
g.drawString(s1,x,y);
}
}
Output:
Page 52