Cloning in java with example

Cloning: Cloning is a technology to obtain exact copy of a plant, a bird an animal or a human being. This cloning technology available now.

Cloning in java: Obtaining the exact copy of an existing object is called as cloning.

There are two types of cloning
          ·Shallow Cloning: In this type of cloning any modifications to the original object will also modify the cloned object.
          ·Deep Cloning: In this type of cloning any modifications in the original object will not modify the cloned object.
         
          Deep cloning or copy can be achieved through serialization. This may be fast to code but will have performance implications.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.javatbrains.cloning;

class Employee implements Cloneable {
     int id;
     String name;

     Employee(int id, String name) {
          this.id= id;
          this.name= name;
     }

     void display() {
          System.out.println("Id = "+ id);
          System.out.println("Name = "+ name);
     }

     Employee myClone() throws CloneNotSupportedException {
          System.out.println("This is cloning method");
          return(Employee) super.clone();
     }
}

public class CloneDemo {

     public static void main(String[] args) throws CloneNotSupportedException {
          // Create an object naturally
          Employee emp = new Employee(10, "JavaTBrains");
          emp.display();
          // Create another object by cloning
          Employee emp1 = emp.myClone();
          emp1.display();
     }

}
OutPut:
     Id = 10
     Name = JavaTBrains
     This is cloning method
     Id = 10
     Name = JavaTBrains

Which method is used in cloning?
          By using clone() method of java.lang.Object class.
         ·Implementing Cloneable interface will not have any methods. Cloneable interface is a marker interface.
         ·clone() method is Object class. Object is the super class.
         ·By writing the implements Cloneable the programmer is indicating that class's objects are cloneable.
         ·An interface without any methods is called marker interface or tagging interface. It specifies or indicates a special purpose for the class objects.
         ·Marker interface just tell the compiler to that the objects of the classes implementing the interfaces with no defined methods need to be treated differently.

·Ex: Cloneable, Serializable

          Do not use Serialization if you do not have to. A common use of Serialization is to use it to send an object over the network or if the state of an object needs to be persisted to a flat file or a database.

          The objects stored in HTTP session should be serializable to support in-memory replication of sessions to achieve scalability. Objects are passed in RMI(Remote Method Invocation) across network using serialization.

What is the difference between Observable and Observer?
         
          Observable is a class is used to create subclasses that other parts of our program can observe. When an object of such a subclass undergoes a change, Observing classes are notified. Observing classes must implement the Observer interface. It will have more methods than Observer interface.
         
          An Observer is an interface which is useful for observing Observable object, and must implement the Observer interface. This interface will define only one method i.e. void update(Observable obs, Object arg). Here, obs is the object being observed, and arg is the value passed by notifyObservers(). The update() method is called when a change in the observed object take place.

Do you know?

Comments

Popular posts from this blog

how to count the page views by using JSP

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException

Multithreading in java with example