Skip to main content

Deep Cloning In Java

I have already mentioned about cloning in my previous post and also the types of cloning in java i.e.

1. Shallow cloning and

2. Deep cloning

We have already seen what is shallow cloning, how to use it and the example to demonstrate it in my previous post you can read about it here.

In this post we will discuss about deep cloning in java.

Deep cloning basically refers to creating an exact copy of an object that means if we have a object


class Person()

{
 String name;
 Address address;
//rest of the code
}


class Address ()
{
 String state;
 String city;
//rest of the code
}

Now if I create a deep clone of the object "Person" then it will also create a new object of the "Address" and not a reference. Just to verify you can try making changes to the new "Address" object and then see if you still having the same value in the main object. That will be different if not then something is wrong.


For creating a Deep clone you can use either of the below given method :


1. (MyObject) SerializationUtils.clone(myObject);

2. Use Copy Construction 

1. SerializationUtils clone method show performance issue while creating a clone.

2. Copy constructor is basically a constructor in which you pass the object to be copied and the method copies the data from sent object to new object.


You May also find it interesting :

Shallow Cloning
Java Uses both compiler and interpreter





Comments

Popular posts from this blog

Carnivorous Island from "Life of PI"

Yann Martel described about an floating carnivorous Island for symbolizing that something seemingly good in life can turn out to be harmful, so we should keep going with our journey of life... About the carnivorous Island from movie. In the movie 'Life of PI' after PI struggles to live in the pacific with the Bengal tiger suddenly one morning Pi  found himself at a Island. After spending so many days in the middle of the sea he found himself very lucky to find a Island. After spending some time he thought might be this was the end of his suffering and he can spend rest of his life at that island. He makes h is bed on a tree and sleeps there, in the middle of the night he wakes up and find that there were dead fish in the fresh water where he took swim in the day time. While trying to understand the mystery he plucks a fruit from the same tree and peel it off and finds a human tooth inside that fruit and then he realize that it was an carnivorous Island. The...

Create Table in Liquibase

For creating table using liquibase you can use below code and add it in your liquibase file. <createTable tableName=“employee”>      <column name="id" type="int">      <constraints primaryKey="true" nullable="false"/>   </column>      <column name="first_name" type="varchar(255)"/>   <column name="last_name" type="varchar(255)"/>   <column name="username" type="varchar(255)">      <constraints unique="true" nullable="false"/>   </column> </createTable> The use is pretty simple it's the way it looks : Tag: <createTable></createTable> This is an opening/ending tag for creating a table. These tags will enclose column sub tags which will define columns for the table. Attribute:   tableName : Name of the table which you want to create. (This is a mandatory   ...

liquibase.exception.LockException: Could not acquire change log lock. Currently locked by...

liquibase.exception.LockException: Could not acquire change log lock. Currently locked by... Solution : Open your database and find the table named 'Databasechangeloglock', check the content of the Locked column. If it is set to '1' in that case the above exception will be thrown. Try setting it to '0' and set content of the 'LOCKGRANT' and 'LOCKEDBY' to (null). You might find this interesting. http://apdynamicviews.blogspot.in/2012/08/how-databasechangeloglock-and.html