II Year – II Semester L T P C
0 0 3 2
JAVA PROGRAMMING LAB
(JNTUK Syllabus)
Exercise - 1
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.
Exercise - 2
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 using StringBufferto delete, remove character.
Exercise - 3
a). Write a JAVA program to implement class mechanism. – Create a class, methods and invoke them inside main method.
b). Write a JAVA program implement method overloading.
c). Write a JAVA program to implement constructor.
d). Write a JAVA program to implement constructor overloading.
Exercise - 4
a). Write a JAVA program to implement Single Inheritance
b). Write a JAVA program to implement multi level Inheritance
c). Write a java program for abstract class to find areas of different shapes
Exercise - 5
a). Write a JAVA program give example for “super” keyword.
b). Write a JAVA program to implement Interface. What kind of Inheritance can be achieved?
c). Write a JAVA program that implements Runtime polymorphism
Exercise - 6
a).Write a JAVA program that describes exception handling mechanism b).Write a JAVA program Illustrating Multiple catch clauses
c). Write a JAVA program for creation of Java Built-in Exceptions d).Write a JAVA program for creation of User Defined Exception
Exercise – 7
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)
b). Write a program illustrating isAlive and join ()
c). Write a Program illustrating Daemon Threads
d).Write a JAVA program Producer Consumer Problem
Exercise –8
a). Write a JAVA program that import and use the user defined package
b). Without writing any code build a GUI that display text in label and image in an ImageView(use JavaFX)
c).Build a TipCalculator app using several JavaFX components and learn how to respond to user interactions with the GUI
Exercise – 9
a). Write a java program that connects to a database using JDBC
b)Write a java program to connect to a database using JDBC and insert values into it.
c) Write a java program to connect to a database using JDBC and delete values from it.
-------------------------------------------------
Exercise - 1
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 types are:"); 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
b) Roots of a quadratic equation
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)
{
}
else
{
}
}
}
System.out.println("Roots are real and equal"); r1 = (-b+Math.sqrt(D))/(2*a); System.out.println("Root:"+r1);
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
Exercise - 2
Implementation of Binary search mechanism
Aim: To write a JAVA program to search for an element in a given list of elements using binary search mechanism
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 )
{
}
else
{
}
System.out.println("number found"); break;
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:
2 4 6 8 9
Enter the search value: 8
number found
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:
3 2 5 7 6 8 9 1 4 0
The sorted elements are:
0 1 2 3 4 5 6 7 8 9
c). Implementing String Buffer
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
Exercise - 3
a) Implement class mechanism
Aim: To write a JAVA program to implement class mechanism. – Create a class, methods and invoke them inside main method
Programs:
1.no return type and without
parameter-list:
class A
{
int l=10,b=20; void display()
{
System.out.println(l); System.out.println(b);
}
}
class methoddemo
{
public static void main(String args[])
{
}
}
Output:
10
20
A a1=new A(); a1.display();
2.no return type and with parameter-list:
class A
{
void display(int l,int b)
{
System.out.println(l); System.out.println(b);
}
}
class methoddemo
{
public static void main(String args[])
{
A a1=new A(); a1.display(10,20);
}
}
Output:
10
20
3. return type and without parameter-list
class A
{
int l=10,b=20;
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
4.return type and with parameter-list:
class A
{
int area(int l,int b)
{
return l*b;
}
}
class methoddemo
{
public static void main(String args[])
{
A a1=new A();
int r=a1.area(10,20); System.out.println(“The area is:”+r);
}
}
Output:
The area is:200
b).Method Overloading
Aim: To write a JAVA program implement
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
c).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
d).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
Exercise -4
a)Implementing Single Inheritance
Aim: To write a JAVA program to implement 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
b)
Multi level Inheritance Aim: To write a
JAVA program to implement multi level 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 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
c) Abstract Class
Aim: To write a java program for abstract class to find areas of different shapes
Program:
abstract class shape
{
abstract double area();
}
class rectangle extends shape
{
double l=12.5,b=2.5; double area()
{
return l*b;
}
}
class triangle extends shape
{
double b=4.2,h=6.5; double area()
{
return 0.5*b*h;
}
}
class square extends shape
{
double s=6.5; double area()
{
return 4*s;
}
}
class shapedemo
{
public static void main(String[] args)
{
rectangle r1=new rectangle(); triangle t1=new triangle(); square s1=new square();
System.out.println("The area of rectangle is: "+r1.area()); System.out.println("The area of triangle is: "+t1.area()); System.out.println("The area of square is: "+s1.area());
}
}
Output:
The area of rectangle is: 31.25 The area of triangle is: 13.65 The area of square is: 26.0
Exercise – 5
a) super keyword implementation
Aim: Write a JAVA program give example for “super” keyword
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
(ii) Using super to call super class constructor (With parameters)
class A
{
int l,b;
A(int u,int v)
{
l=u; b=v;
}
}
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
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
(ii) Second form of interface implementation
interface D
{
void display();
}
interface E extends D
{
void show();
}
class A
{
void callme()
{
System.out.println("This is in callme method");
}
}
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
{
public static void main(String args[])
{
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
b) Runtime Polymorphism
Program:
Aim: To write a JAVA program that implements Runtime polymorphism
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
Case study on Runtime Polymorphism
Aim: To write a Case study on run time polymorphism, inheritance that implements in above problem
Dynamic method dispatch is the mechanism by which a call to an overridden method is resolved at run time, rather than compile time.
§ 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
|
extends
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:
The example is given by
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 |
||||||
|
|
|
|
||||
SBI |
|
ICICI |
|
AXIS |
|||
|
|
|
|||||
getRateOfInterest():float |
getRateOfInterest():float |
getRateOfInterest():float |
|||||
Exercise - 6
Exercise -6
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
b) Illustrating multiple catch classes
Program:
Aim: To write a JAVA program Illustrating Multiple catch clauses 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
c).creation of Java Built-in-Exceptions
Aim: To write a JAVA program for creation of Java Built-in
Exceptions Programs:
(i) Arithmetic exception
class arithmeticdemo
{
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);
}
}
}
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
{
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"
(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
d).creation of User Defined
Exception
Aim: To write a
JAVA program for creation of User Defined Exception Program:
class A extends Exception
{
A(String s1)
{
super(s1);
}
}
class owndemo
{
public static void main(String args[])
{
try
{
}
throw new A("demo ");
catch(Exception e)
{
System.out.println(e);
}
}
}
Output:
A: demo
Exercise –7
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
{
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
(ii) Creating multiple threads using Runnable interface
class A implements Runnable
{
public void run()
{
try
{
for(int i=1;i<=10;i++)
{
Thread.sleep(1000); System.out.println("good morning");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class B implements Runnable
{
public void run()
{
try
{
for(int j=1;j<=10;j++)
{
Thread.sleep(2000); System.out.println("hello");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class C implements Runnable
{
public void run()
{
try
{
for(int k=1;k<=10;k++)
{
Thread.sleep(3000); System.out.println("welcome");
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
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
(b)Implementing isAlive() and join()
Aim: To write a program illustrating isAlive and join ()
Program:
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
{
for(int k=1;k<=10;k++)
{
sleep(3000); System.out.println("welcome");
}
}
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 true true
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 false false false
C).Implementation of Daemon Threads
Aim: To write a Program illustrating Daemon Threads
Program:
class A extends Thread
{
public void run()
{
if(Thread.currentThread().isDaemon()) System.out.println("daemon thread work"); else
System.out.println("user thread work");
}
}
class daemondemo
{
public static void main(String[] args)
{
A a1=new A(); A a2=new A(); A a3=new A();
a1.setDaemon(true); a1.start();
a2.start();
a3.start();
}
}
Output:
daemon thread work user thread work user thread work
d)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()
{
for(int i=1;i<=10;i++)
{
a1.put(i);
}
}
}
class consumer implements Runnable
{
A a1;
Thread t1; consumer(A a1)
{
this.a1=a1;
t1=new Thread(this); t1.start();
}
public void run()
{
for(int j=1;j<=10;j++)
{
a1.get();
}
}
}
class interdemo
{
public static void main(String args[])
{
A a1=new A();
producer p1=new producer(a1); consumer c1=new consumer(a1);
}
}
Output: Put:1 Got:1 Put:2 Got:2 Put:3 Got:3 Put:4 Got:4 Put:5 Got:5 Put:6 Got:6 Put:7 Got:7 Put:8 Got:8 Put:9 Got:9 Put:10 Got:10
Case study on thread synchronization
Aim: To write a case study on thread Synchronization after solving the above producer consumer problem
A case study on thread synchronization after solving producer consumer problem:
v
We can use wait, notify
and notifyAll methods to communicate between threads in Java.
v For example, if we have two
threads running in your program e.g.Producer and Consumer then producer thread can communicate to the
consumer that it can start consuming now because there are items to consume
in the queue.
v Similarly, a consumer thread
can tell the producer that it can also start putting items now because there is
some space in the queue,
which is created as a result
of consumption.
v
A thread can use wait() method to pause and do nothing
depending upon some condition.
v For
example, in the producer-consumer problem, producer
thread should wait if the queue is full and consumer
thread should wait if the queue is
empty.
v If some
thread is waiting for some condition to become true, we can use notify and notifyAll
methods to inform them that
condition is now changed and they can wake up.
v Both notify() and
notifyAll() method sends a notification but notify sends the notification to
only one of the waiting thread, no
guarantee which thread will receive notification and notifyAll() sends the notification to all threads.
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
Exercise-8
a)Creating and importing a package
Aim: To write a JAVA program that import and use the defined your package in the previous Problem
(i) Creating a package:
Steps:
1. First declare the name of the package using package keyword
Example: package mypack;
2.
Type the following
program under this package statement. In package : class ,data, methods all are public
package mypack; public class box
{
public int l=10,b=20; public void display()
{
System.out.println(l); System.out.println(b);
}
}
3. Create sub directory with a name same that of package
name under the current working
directory by as follows. d:\>md mypack
4. Under this subdirectory store the above program with a file name “box.java”.
(ii)
importing a package:
Steps:
1. packages can be accessed by
using the import statement General
form: import pack1[.pack2].(classname/*); Example: import java.io.*;
Here pack1 is name of top level package and pack2 is name of sub package
2. Type the following program
under the current
working directory and save the program with a file name
“example.java”.
import mypack.box; class packagedemo
{
public static void main(String args[])
{
box b1=new box(); b1.display();
}
}
3. Now compile
the above program in the current working directory d:\ javac packagedemo.java
4. Execute the above program in
current working directory java packagedemo
Output:
10
20
SOLUTINON FOR package DEMO:
E:\rvs>
E:\rvs>MD MYPACK
MYPACK dir created
E:\rvs>CD MYPACK
Open notepad and edit box.java as following
package mypack;
public class box{
public int l=10,b=20;
public void display(){
System.out.println(l);
System.out.println(b);
}
}
compile box.java
E:\rvs\mypack>javac box.java
E:\rvs\mypack>dir
24-10-2024 10:46 <DIR> .
24-10-2024 10:46 <DIR> ..
24-10-2024 10:46 442 box.class
24-10-2024 10:46 165 box.java
12-03-2024 09:16 <DIR> mypack
2 File(s) 607 bytes
3 Dir(s) 346,772,185,088 bytes free
E:\rvs\mypack>cd..
E:\rvs>
Open notepad and edit packagedemo.java as following
import mypack.box;
class packagedemo{
public static void main(String [] args){
box b1=new box();
b1.display();
}
}
compile packagedemo.java
E:\rvs>javac packagedemo.java
interpret packagedemo
E:\rvs>java packagedemo
10
20
b)Build a GUI that display text in label and image in an ImageView
Aim: build a GUI that display
text in label and image in an
ImageView (use JavaFX)
Program:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class TextExample extends
Application{
@Override
public void start(Stage primaryStage) throws
Exception {
//
TODO Auto-generated method stub
Text
text = new Text();
text.setText("Hello !! Welcome to JavaTPoint");
StackPane root = new StackPane();
Scene
scene = new Scene(root,300,400);
root.getChildren().add(text);
primaryStage.setScene(scene);
primaryStage.setTitle("Text Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
c) Build a Tip Calculator app using several JavaFX components
Aim:
Build a Tip
Calculator app using several JavaFX components and learn how to respond to user
interactions with the GUI
Program:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.ImageInput;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class ImageExample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
Image img = new Image("https://picsum.photos/536/354");
ImageInput imginput = new ImageInput();
Rectangle rect = new Rectangle();
imginput.setSource(img);
imginput.setX(20);
imginput.setY(100);
Group root = new Group();
rect.setEffect(imginput);
root.getChildren().add(rect);
Scene scene = new Scene(root,530,500,Color.BLACK);
primaryStage.setScene(scene);
primaryStage.setTitle("ImageInput Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
import java.sql.*;
Exercise-9
a) Connecting to a database using JDBC
Aim: a java program that connects to a database using JDBC
Program:
public class odbcdriver
{
public static void main(String s[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection("jdbc:odbc:connect_ora","scott","tiger");
DatabaseMetaData dm=c.getMetaData();
System.out.println("Data Base Name :"+dm.getDatabaseProductName());
System.out.println("Versio :"+dm.getDatabaseProductVersion());
System.out.println("User Name :"+dm.getUserName());
System.out.println("Driver name :"+dm.getDriverName());
System.out.println("Driver Version :"+dm.getDriverVersion());
}
catch(Exception e)
{
System.out.println(e);
}
}
}
b)database using JDBC and insert values
Aim: a java program to connect to a database using JDBC and insert values into
it.
Program:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class odbcframe extends Frame implements ActionListener
{
TextField eno;
TextField ename;
Button next;
Button addnew;
Panel p;
static ResultSet rs;
static Connection c;
static Statement st;
public odbcframe()
{
super("The query Application:");
setLayout(new GridLayout(5,1));
eno=new TextField(20);
ename =new TextField(50);
next =new Button("Next");
addnew =new Button("AddNewRec");
p=new Panel();
add(new Label("Emp no:"));
add(eno);
add(new Label("Emp name:"));
add(ename);
add(p);
p.add(next);
p.add(addnew);
next.addActionListener(this);
addnew.addActionListener(this);
pack();
setVisible(true);
}
public static void main(String s[])
{
odbcframe obj=new odbcframe();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c=DriverManager.getConnection("jdbc:odbc:connect_ora","scott","tiger");
st=c.createStatement();
rs=st.executeQuery("select empno,ename from empdet");
rs.next();
}
catch(Exception e)
{
System.out.println("Error Inside.."+ e );
}
obj.showRecord(rs);
}
public void actionPerformed(ActionEvent event)
{
if(event.getSource()==next)
{
try
{
rs.next();
}
catch(Exception e)
{
}
showRecord(rs);
}
if(event.getSource()==addnew)
{
try
{
addRecord();
}
catch(Exception e)
{
}
}
}
public void showRecord(ResultSet rs)
{
try
{
eno.setText(rs.getString(1));
ename.setText(rs.getString(2));
}
catch(Exception e)
{
}
}
public void addRecord()
{
try
{
st.executeUpdate("insert into empdet(empno,ename) values("+Integer.parseInt(eno.getText())+",'"+ename.getText()+"')");
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
No comments:
Post a Comment