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   ...

Everything you need to know about ShellShock.

Shellshock was a security threat that was identified by Stéphane Chazelas on 12 September 2014 and was disclosed and announced to the public on 24 th September 2014 with the fix ready for distribution. It was assigned the identifier as CVE-2014-6271 . By the way, this is another security bug with cool logo after Heartbleed. 1. What is Shellshock? Shellshock is a name given to a vulnerability in Bash which allows an attacker to execute remote commands on vulnerable system. Bash is a command-line interpreter available on most of the operating systems like Apple’s OSx, windows and present on many versions of Linux. Bash also acts as a parser for the functions given to it.  2. Why is it harmful? Shellshock is significantly harmful for the servers connected to internet. Since, it lets attacker to escalate their privileges and potentially they can gain access to root. This gives access to the attacker as if they are the actual user and they can perform any...