Articles by "Example"
Showing posts with label Example. Show all posts
Java Notes For Java Beginner

To execute the java program in multitasking way, this concept is called as multi-threading.
      Multi-threading is used to overcome the idle time of CPU.

What is the procedure to create thread? And how it is execute?.
Inherit the java.lang.Thread class in user defined class. so our class becomes thread class. override the public void run() method thread class in our class. Create the object of our class. This is the new born stage of thread. Active this object using start() method of thread class. It will implicitly calls the overrides run() method.

Note : the program execution and time sharing to the threads are totally depends upon local operating system and the processor.

class A extends Thread
{
 public void run()
 {
 for(int i=1;i<=50;i++);
 System.out.println("i is "+i);
 }
}
class B extends Thread
{
 public void run()
 {
 for(int j=1;j<=50;j++);
 System.out.println("j is "+j);
 }
 
 public static void main(String args[])
 {
 A a1=new A();
 B b1=new B();
 
 a1.start();
 b1.start();
 
 for(int k=1;k<=50;k++)
 System.out.println("k is "+k)
 }
}
Another procedure to create and execute the Threads.       Implements the java.lang.Runable interface into user defined class, override it's only one method public void run() in our class. Still this is not the thread object, because our class is not extending the thread class.       So create the separate object of java.lang.Thread class and assign the user defined object of this thread object call the start() method using thread class object.       It will be implicitly calls the override run() method of respective object classes.
class AA extends object implements runnable
{
 public void run()
 {
 for(int i=1;i<=50;i++);
 System.out.println("i is "+i);
 }
}
class BB implements runnable
{
 public void run()
 {
 for(int j=1;j<=50;j++);
 System.out.println("j is "+j);
 }
 
 public static void main(String args[])
 {
 AA a1=new AA();
 BB b1=new BB();
 
 Thread f1=new Thread(a1);
 Thread f2=new Thread(b1);
 
 t1.start();
 t2.start();
 }
}

Thread controlling methods:

Methods which are used to manage the execution controlling of threads at running position.

1) sleep()

This method is used to interrupt the running thread for the given the interval in milliseconds. this interrupted thread will completing the time interval. This method throws interval. This method throws Interrupted Exception so we have to handle it at calling time.
class A extends Thread
{
 public void run()
 {
 for(int j=1;j<=50;j++);
 {
  try{
   if(j==15)
   thread.sleep(500);
  }
  catch(Exception e)
  {}
 System.out.println("j is "+j);
 }
 }
}
class B extends Thread
{
 public void run()
 {
 for(int i=1;i<=50;i++);
 System.out.println("i is "+i);
 }
 
 public static void main(String args[])
 {
 A a1=new A();
 B b1=new B();
 
 a1.start();
 b1.start();
 }
}

2) setPriority()

This method is used to set the execution of threads. It is just a request to local operating system. There are three type of priority:
  1. Minimum priority => 1
  2. Normal priority => 5
  3. Maximum priority => 10
A a1=new A();
B b1=new B();
C c1=new C();

a1.setPriority(10);
b1.setPriority(7);
c1.setPriority(5);

a1.start();
b1.start();
c1.start();

3) join()

This method is used to join or connect or connect one thread to other, so that the other thread will complete it's execution and normal goes into dead stage.
What is the procedure to kill any thread ?.
Use stop() method to kill the thread abnormally, but it is deprecated from java library. and it's replacement method join().
Write a program to join one thread to another using join() method.
class D extends Thread
{
 public D extends Thread
 {
  for(int i=1;i<=5000;i++)
  System.out.println("i is "+i);
 }
}
class E extends Thread
{
 D d1;
 E(D d1) //pass the reference from
 {
  this.d1=d1;
 }
 public void run()
 {
 for(int j=1;j<=50;j++)
  {
   try{
    if(j==15)
    d1.join();
   }
   catch(Exception e);
   {}
   
   System.out.println("j is "+j);
  }
 }
 
 public static void main(String args[])
 {
  D d1=new D();
  E e1=new E()d1; //pass reference to constructor
  
  d1.start();
  e1.start();
 }
}

Synchronization :

To execute the thread based program in process way, this concept is called as synchronization.
Keyword "synchronized" is used to define such methods.
class Test
{
 Synchronized public void fun1(String args[])
 {
  System.out.println(" [ Hello ");
  try
  {
   Thread.sleep(1000);
  }
  catch(Exception e1)
  {}
  System.out.println(" [ "+msg);
  try
  {
   Thread.sleep(1000);
  }
  catch(Exception e)
  {}
  System.out.println(" ] world ] ");
 }
}
class AB extends Thread
{
 Test t1;
 AB(Test t1)
 {
  this.t1=t1;
 }
 
 public void run()
 {
  t1.fun1("java");
 }
}
class BC extends Thread
{
 Test t1;
 BC(Test t1)
 {
  this.t1=t1;
 }
 
 public void run()
 {
  t1.fun1("C++");
 }
 
 public static void main(String args[])
 {
  Test t1=new Test();
  
  AB a1=new AB(t1);
  BC b1=new BC(t1);
  
  a1.start();
  b1.start();
 }
}
Java Notes For Java Beginner
Inner classes

Inner classes :

To define one class into another, this process is called as inner classes.

There are four type of inner classes
1) Member inner class.
2) Static inner class.
3) Local inner class.
4) Anonymous inner class.


Member inner class :

A class which is defined as a member of some outer class is called as member inner class.

Write a program to define the member in inner class.
class outer
{
 int x=10;
 void fun1()
 {
  System.out.println("Hello outer class method");
 }
 class inner
 {
  int y=20;
  void fun2()
  {
   System.out.println("Hello inner class method");
  }
 } //inner class end
 
 public static void main(String args[])
 {
  outer a1=new outer();
  System.out.println("a1.x");
  a1.fun1();
  
  //a1.fun2();error
  //Inner il=new Inner();error
  
  outer.Inner i2=new Outer().new Inner();
  System.out.println(i2.y);
  
  //il.fun1();error
 }
} //outer class end

Static inner class :

Inner classes can be static we can instantiate this class directly or by the outer class name.
Write a program to define the static inner class.
class outer
{
 static int x=10;
 void fun1()
 {
  System.out.println("Hello outer class method");
 }
 static class inner
 {
  int y=20;
  void fun2()
  {
   System.out.println("Hello inner class method");
  }
 } //inner class end
 
 public static void main(String args[])
 {
  outer a1=new outer();
  System.out.println("X is "+x);
  System.out.println("X is "+a1.x);
  a1.fun1();
  
  Inner i=new Inner();
  System.out.println("Y is "+i.y);
  i.fun2();
 // OR
  outer.Inner il=new outer.inner();
  System.out.println("Y is "+il.y);
  il.fun2();
 }
} //outer class end

Local inner class :

A class which is defined in method body of outer class, this is called as local inner class. The scope and accessibility of this class is limited up to the method in which it is defined.
Write a program to define the local inner class.
class outer1
{
 int y=20;
 void fun1()
 {
  System.out.println("Enter into method");
  
  class local
  {
   int x=50;
   void fun2()
   {
    System.out.println("Hello local class method");
   }
  };
  
 local L1=new local();
 System.out.println("X is "+L1.x);
 L1.fun2();
 System.out.println("Exit from method");
 } //fun1

 public static void main(String args[])
 {
  outer1 a1=new outer1();
  System.out.println("Y is "+a1.y);
  a1.fun1();
 }
} //outer class end

Anonymous inner class :

A local inner class, which does not have name and implements the outside interface, is called as anonymous inner class.
Write a program to define the anonymous inner class.
interface xyz
{
 public void fun1();
 public void fun2();
}
class test
{
 public xyz getxyz1()
 {
  xyz x1=new xyz()
  {
   public void fun1()
   {
    System.out.println("Hello first class fun1");
   }
   public void fun2()
   {
    System.out.println("Hello first class fun2");
   }
  };
 return(x1);
 } //getxyz1
 
 public xyz getxyz2()
 {
  xyz x2= new xyz()
  {
   public void fun1()
   {
    System.out.println("Hello second class fun1");
   }
   public void fun2()
   {
    System.out.println("Hello second class fun2");
   }
  };
 return(x2);
 } //getxyz2
 public static void main(String args[])
 {
  Test t1=new Test();
  xyz x3=t1.getxyz1();
  xyz x4=t1.getxyz2();
  
  x3.fun1();
  x3.fun2();
  
  x4.fun1();
  x4.fun2();
 }
}


class AB
{
 {
  System.out.println("Non static block");
 }
 static
 {
  System.out.println("static block");
 }
 
 AB()
 {
  System.out.println("Constructor block");
 }
 
 fun1()
 {
  System.out.println("Method block");
 }
 
 public static void main(String args[])
 {
  System.out.println("Main block");
  
  AB a1=new AB();
  a1.fun1();
  
  AB a2=new AB();
 }
}

static block
Main block
Constructor block
Method block

Non static block
constructor block
Java Notes For Java Beginner
Abstract And Final Class

Abstract class

  • A partially implemented and partially unimplemented class, is called as abstract class.
  • Definition : A class which have at least one abstract method, is called as abstract class explicitly.
  • Keyword abstract is used to declare this class explicitly, Abstract class cannot be instantiated because it may have abstract method.

Write a program to define abstract class execution.
abstract class Abs1
{
 public void fun1()
 {
  System.out.println("Hello abstract class method");
 }
 abstract public void fun2();
}

class Abs extends Abs1
{
 public void fun2()
 {
  System.out.println("Hello fun2 sub class method");
 }
 
 public static void main(String args[])
 {
  Abs a1 = new Abs();
   a1.fun1();
   a1.fun2();
  Abs1 a2 = new Abs();
   a1.fun1();
   a1.fun2();
 }
}



Abstract class can created in 3 ways:
1) Declare abstract method in class.
2) Declare keyword 'abstract' with class.
3) Do not implement the interface completely.

Final class:

  • A class which can Inherit others but cannot be inherited by other is called final class.
  • Keyword "final" is used to declare final class explicitly.
  • final class is the last class of inheritance chain.
Write a program implement final class execution.
final class fin extends object
{
 public void fun1()
 {
  System.out.println("Hello final class method");
 }
}
class fun1
{
 public void fun2()
 {
  System.out.println("Hello sub class method");
 }
 public static void main(String args[])
 {
  fin1 f1=new fin1();
  //f1.fun1();
  f1.fun2();
  fun f2=new fun();
  f2.fun();
 }
}


Difference between abstract and final class.
1) Abstract class cannot be instantiated.
2) Abstract class should be inherited in some other class.
3) Abstract class may have abstract methods.
4) Super class reference and sub class object concept is followed by abstract.
5) Abstract keyword is used to declare this class
1) The object creation process of final class is compulsory.
2) final class cannot be inherited.
3) final class doesnot have abstract method.
4) this concept is not followed by final class.

5) final keyword is used to declare this class.


Note : The class can be either abstract or final.


abstract
final
static
  • class
  • variables
  • methods
  • constructor
Java Notes For Java Beginner

We can create the reference of super class and assign the sub class object to it. The execution behavior of this reference variable is depends upon the super class. But the execution is like basic interface.

Super class reference & sub class object
class A
|
♦-- Fun1, Fun2, FunX
|

class B
|
♦-- Fun2, FunB, FunN
|

class C
|
♦-- Fun1, FunX, Fun3
|

class D
|
♦-- FunN, FunB, Fun3
|

D d1 = new D();
d1.fun1(); //C
d1.fun2(); //B
d1.funN(); //D

C c1 = new C();
c1.funN();
c1.fun1();
c1.fun2();

A a1 = new D();
a1.fun1(); //C
a1.fun2(); //B

//a1.funN(); error
a1.funX(); //C

B b1=new C();
b1.funX(); //C
b1.funb(); //B

D d1=new A(); //Note possible
The sub class reference and super class object cannot is not possible because this object doesn't fulfill the context requirement of sub class refernece.


Write a program of dynamic polymorphism.

class AA
{
 void AA()
 {
  System.out.println("Hello class AA method");
 }
}
class BB extends AA
{
 void BB()
 {
  System.out.println("Hello class BB method");
 }
}
class CC extends BB
{
 void fun1()
 {
  System.out.println("Hello sub class CC method");
 }
 
 public static void main(String args[])
 {
  int n=args.lenth;
  
  if(n>0)
  {
   AA.a1;
   int a=Integer.parseInt(args[0]);
   switch(a);
   {
    case 1:{
       d=new AA();
       break;
        }
    case 2:{
       a1=new BB();
       break;
        }
    case 3:{
       a1=new CC();
       break;
        }
    default:{
       System.out.println("Invalid Arguments");
       a=new AA();
       break;
      }
   }
  a1.fun();
  }
  else
  {
   System.out.println("Please enter arguments");
  }
 }
}
Java Notes For Java Beginner

Primitive data types:


There are four primitive data types in JAVA.


Interger - byte, short, int, long
Real Number - float, double
Character - char
Boolean - boolean


Write a program to print by default value of all the primitives..
class Type
{
 byte a;
 short b;
 int c;
 long d;
 float e;
 double f;
 char g;
 boolean h;
 
 public static void main(String args[])
 {
 Type t1 = new Type();
 
 Syste.out.println("byte default value is "+t1.a);
 Syste.out.println("short default value is "+t1.b);
 Syste.out.println("int default value is "+t1.c);
 Syste.out.println("long default value is "+t1.d);
 Syste.out.println("float default value is "+t1.e);
 Syste.out.println("double default value is "+t1.f);
 Syste.out.println("char default value is "+t1.g);
 Syste.out.println("boolean default value is "+t1.h);
 }
}
Java Notes For Java Beginner

Access specifiers

Java have four access specifiers.
  • public :
    • The keyword which is used a access specifier whose data can be accessible in same class, other class, other program, other folder, other colon and even other machine.
    • Java follows client-server architecture, so main() method should be public.
  • private :
    • The stronger access specified which restricts the data to be come out of class.
    • Private data can not be accessible even through it's class object.
  • protected :
    • The partial public and partial private access specifier.
    • It follows public property as the data can be come out of the class but only in inheritance.
    • It private property can not be accessible through class object.
  • default :
    • It is not keyword.
    • It works same as public up-to one working folder.
    • Otherwise it becomes private.


Static

Static keyword is used to load the main method into primary memory by JVM[Java Virtual Machine].

void

This keyword is used as a return type of method is not going on return any value.

main

A flag which is used as indicator of starting point of program for compiler and inter-printer.
Java Notes For Java Beginner
String : A built in class, whose object is used to store the set of characters, is called as string.

Example :
String S1=new String("Hello");
or
String S1="Hello";


String manipulation methods:

  1. length() :- This method is used to return the number of characters of a given string.
  2. trim() :-  This method is used to trim or remove the white spaces from Right Hand Side and Left Hand Side of given string.
  3. toUpperCase() :- This method is used to convert the given string in Upper case.
  4. toLowerCase() :- This method is used to convert the given string in Lower case. 
  5. equals() :- This method is used to compare two string according to there ASCII value for equality.
    [It returns true if both the string are same & otherwise return false]
  6. CompareTo() :- This method is also used to compare two string according to ASCII values.
    [It's return type is Integer]
    Example:
    int i=s1.compareTo(s2);

    if it return > 0 value then s2>s1
    if it return < 0 value then s1>s2
    if it return = 0 value then s1=s2

  7. CompareToIgnoreCase() :- It work is same as above method with ignoring the case sensitivity.


Write a program to implement all the methods of string class.

class str
{
 public static void main(String args[])
 
 {
  String s1="Good morning";
  System.out.println(s1);
  
  String s2=s1.trim();
  System.out.println(s2);
  
  System.out.println("length of s1="+s1.length());
  System.out.println("length of s2="+s2.length());
  
  String s3=s2.toUpperCase();
  String s4=s2.toUpperCase();
  System.out.println("S3= "+s3);
  System.out.println("S4= "+s4);
  
  if(s3.equals(s4))
  System.out.println("Both the string are same");
  else
  System.out.println("Both the string are not same");
  
  int i=s3.compareToIgnoreCase(s4);
   if(i<0 s4="" system.out.println="">s3");
   else if(i>0)
   System.out.println("s3>s4");
   else if(i==0)
   System.out.println("s3 = s4"); 
 }
}


Note : String is a native or peer class, so the changes occurred in same other location.

To perform the changes on same location, we have to follow the StringBuffer class.

It dynamically increment or decrements the size of String object.



StringBuffer class methods

  1. append(String) :- This method is used to join or append the new string in previous string.
  2. insert(index, string) :- This method is  used to insert the new string on the specified index of previous string.
  3. setCharAt(index, char) :- This method set or replace the specified index character with the new character.
  4. reverse() :- This method is used to convert the given string in reverse.


Write a program to implement all the methods of stringBuffer class.

class str1
{
 public static void main(String args[])
 {
  StringBuffer sb=new StringBuffer("Hello morning");
  System.out.println(sb);
  
  sb.append("Bye");
  System.out.println(sb);
  
  sb.insert(13, " ");
  System.out.println(sb);
  
  sb.insert(6, "Good");
  System.out.println(sb);
  
  sb.insert(10, " ")
  System.out.println(sb);
  
  sb.setCharAt(10,"_");
  System.out.println(sb);
  
  
  System.out.println(sb.reverse());
 }
}

Java Notes For Java Beginner

Static keyword is used to load the class data into primary memory first to the object. As it is directly loaded into memory, it can be accessible directly.

Note : Static data is shareable to all the objects of same class.

Write a program to access static & non-static data of class.
class class

{
    int x; //non-static
    static int y; //static
    public static void main (String args[])
    {
        c c1=new c();               //New object created [1st]
        system.out.println(c1.x);   //called using c1 object
        system.out.println(c1.y);   //called using c1 object
        system.out.println(c.y);    //called using class
        system.out.println(x);      //directly called
 
        c1.x++;                     //Operation performed using c1 object [Value becomes x=1]
        c1.y++;                     //Operation performed using c1 object [Value becomes y=1]
       
        c c2=new c();               //New object created [2nd]
        system.out.println(c2.x);   //called using c2 object
        system.out.println(c2.y);   //called using c2 object
    }
}


Output:
           0
           0
           0
           0
           0
           1

Static data can be accessible by three ways.

  1. Using class object.
  2. Using class name.
  3. Directly.

Note : Non-static data can be accessible only through it's class object.

System.out.println() //Statement

System is a built in class and out is static field of it. The combination of this two will send the data from editor to keyboard memory. This memory is the space reserved on primary memory for every java application. The println() method of print stream class sends the data from keyboard memory to console.

PrintStream class have two methods

1> println(): This method send the corsor to the next line after printing the data.

Example:
class D
{
    public static void main(String args[])
    {
        System.out.println("\t\t Hello\t\t\t");
        System.out.println("How Are You?");
        System.out.println("Bye...");
    }
}

Output:
         Hello
    How Are You?
    Bye...

2> print(): It remains cursor on the same line after printing.


Example:
class add
{
    public static void main(String args[])
    {
        int a,b,c;
        a=10;
        b=20;
        c=a+b;
       
        System.out.println(C);
        System.out.println("Addition is "+c);
        System.out.println("Addition of "+a" and "+b" is "+c);
        System.out.println(a+" + "+b+" = "+c);
    }
}

Output:
    30
    Addition is 30
    Addition of 10 and 20 is 30
    10 + 20 = 30
   
Note : + sign is used as separator in system.out.println statement...