This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Jeff P Please note that JavaRanch has very few rules but the one we enforce with vigor is our naming standard (what would a Java programmer be without naming standards ) Please see this page: http://www.javaranch.com/name.jsp Please adjust your display name to meet our requirements. Thanks! And enjoy your visits to the Ranch.
Java performs shallow copies by default. Suppose you have an object, say, Thingamajig, with an instance member object called Thingy. Every Thingamajig object of course has a reference to its Thingy. You can make as many references as you like to the same Thingamajig object:
Both object references t1 and t2 point to the same object, not duplicate objects. Furthermore, both t1 and t2 also have access to the same Thingy object. This is shallow copying. Deep copying happens when you create identical objects with the same state. If I make a deep copy of the object Thingamajig referred to by t1, I must make a separate instance of its Thingy object, as well as any other objects that the Thingy object itself may have internally, and so on recursively. Here's a sample code;