Java Arrays: Reference vs Clone Explained

🔹 Java Arrays: Reference vs Clone If you’ve ever seen your original array change unexpectedly… this is why 👇 🧠 1. Arrays are Reference Types int[] nums = {1, 2, 3}; 👉 nums stores a reference (address), not actual data nums ─────► [1, 2, 3] 🔴 2. Assignment copies reference (NOT array) int[] arr2 = nums; nums ─────► [1, 2, 3] arr2 ──────┘ 👉 Both point to SAME array arr2[0] = 99; System.out.println(nums[0]); // 99 ❗ 🔁 3. Method calls modify original array void change(int[] arr) { arr[0] = 50; } change(nums); 👉 Output: nums[0] = 50 Because 👉 same reference is passed 🟢 4. clone() creates a NEW array int[] copy = nums.clone(); nums ─────► [1, 2, 3] copy ─────► [1, 2, 3] 👉 Different objects in memory copy[0] = 99; System.out.println(nums[0]); // 1 ✅ System.out.println(copy[0]); // 99 ⚖️ 5. Same values ≠ Same reference int[] arr1 = {1, 2}; int[] arr2 = {1, 2}; System.out.println(arr1 == arr2); // false ❌ System.out.println(Arrays.equals(arr1, arr2)); // true ✅ arr1 ─────► [1, 2] arr2 ─────► [1, 2] 🔥 6. When are references SAME? int[] arr2 = arr1; System.out.println(arr1 == arr2); // true ✅ 🎯 7. Golden Rules ✔ Array variable = reference, not actual data ✔ = copies reference ✔ clone() creates new array ✔ == → compares reference ✔ Arrays.equals() → compares values 🚀 One-line takeaway 👉 Same values don’t mean same memory. Always clone if you want a safe copy. #Java #Programming #DSA #JavaBasics #CodingInterview #Developers #Learning #TechNotes

To view or add a comment, sign in

Explore content categories