Are Arrays Passed by Value or by Reference in Java?
Passing Arrays in Java: Value vs. Reference
Unlike primitive types, arrays in Java aren't primitive nor objects. This raises the question: are they passed by value or by reference in Java?
Understanding Value and Reference Passing
In Java, everything is passed by value. This means that a copy of the actual value is stored in the receiving variable. For primitives, like integers or strings, this simply duplicates the value. However, for objects and arrays, it's a bit more complex.
Passing Arrays: Reference Only
While arrays aren't true objects, they are still treated as references. Therefore, when an array is passed to a method, only the reference to the array is actually passed, not the array itself. This implies that any changes made to the content of the array will be reflected in the original array.
Changing Array Content vs. Reference
Modifying the array within a method does affect the original array due to the reference being passed. However, changing the reference itself, such as assigning it to a new array, will not alter the reference in the original method. This is because the reference itself is a value that is passed by value.
Example
The following example illustrates this behavior:
public static void changeContent(int[] arr) { arr[0] = 10; // Modifies the array's content } public static void changeRef(int[] arr) { arr = new int[2]; // Changes the reference arr[0] = 15; } public static void main(String[] args) { int[] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Prints 10 (content changed) changeRef(arr); System.out.println(arr[0]); // Prints 10 (reference not changed) }
In this case, the changeContent() method modifies the array's content, affecting the original array. However, the changeRef() method alters the reference itself, which does not affect the original array.
The above is the detailed content of Are Arrays Passed by Value or by Reference in Java?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Troubleshooting and solutions to the company's security software that causes some applications to not function properly. Many companies will deploy security software in order to ensure internal network security. ...

Field mapping processing in system docking often encounters a difficult problem when performing system docking: how to effectively map the interface fields of system A...

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

Start Spring using IntelliJIDEAUltimate version...

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

When using TKMyBatis for database queries, how to gracefully get entity class variable names to build query conditions is a common problem. This article will pin...
