Multiple choice technology programming languages

package testing; public class SimpleClone implements Cloneable { int number = 100; int[] intArray = new int[10]; public SimpleClone() { int number = 100; for (int i = 0; i < intArray.length; i++) { intArray[i] = number; number++; } } public static void main(String[] args) { SimpleClone testclone1 = new SimpleClone(); SimpleClone testclone2; try { testclone2 = (SimpleClone) testclone1.clone(); testclone1.intArray[0] = 1200; testclone2.intArray[0] = 1400; testclone1.number = 1200; System.out.print(" testclone1 intArray[0] = " + testclone1.intArray[0]); System.out.print(" testclone1one2 intArray[0] = " + testclone2.intArray[0]); System.out.print(" testclone1 value of number = " + testclone1.number); System.out.print(" testclone2 value of number = " + testclone2.number); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

  1. testclone1 intArray[0] = 1400 testclone1one2 intArray[0] = 1400 testclone1 value of number = 1200 testclone2 value of number = 100

  2. testclone1 intArray[0] = 1200 testclone1one2 intArray[0] = 1400 testclone1 value of number = 1200 testclone2 value of number = 100

  3. testclone1 intArray[0] = 1400 testclone1one2 intArray[0] = 1400 testclone1 value of number = 1200 testclone2 value of number = 1200

  4. Compiler Error

Reveal answer Fill a bubble to check yourself
A Correct answer
Explanation

Object.clone() performs shallow copy. Primitive 'number' is copied (testclone1.number=1200 doesn't affect testclone2.number which stays 100). But 'intArray' is a reference, so both objects share the same array. When testclone2.intArray[0]=1400 executes, it overwrites the earlier testclone1.intArray[0]=1200 assignment. Both objects now have intArray[0]=1400 because they reference the same array.